BELFEM 0.9.0
Berkeley Lab Finite Element Framework
Loading...
Searching...
No Matches
belfem::mesh::Topology Class Reference

Analyzes and classifies mesh topology for finite element simulations. More...

#include <cl_Topology.hpp>

Public Member Functions

 Topology (Mesh *aMesh)
 ~Topology ()
void run ()
void run_on_enriched_mesh ()
 variant of run() for a mesh that was restored from a .bfm file: the fresh path builds the maps BEFORE the enrichment factories run, so the thin-shell layer/buffer blocks and the tape/ghost sidesets must not enter the maps, and the sideset types (already final on the reloaded mesh) must not be re-detected
const Vector< id_t > & groups (const DomainType aType) const
const Vector< id_t > & phi_block_ids () const
const Vector< id_t > & non_phi_block_ids () const
const Vector< id_t > & phi_interface_ids () const
const Vector< id_t > & phi_boundary_ids () const
const Vector< id_t > & phi_periodic_ids () const
DomainType sideset_type (const DomainType aMaster, const DomainType aSlave)
DomainType sideset_type (const DomainType aMaster)
const Map< id_t, DomainType > & block_map () const
void synchronize_maps ()

Detailed Description

Analyzes and classifies mesh topology for finite element simulations.

The Topology class provides functionality to analyze mesh structures and categorize different regions based on their domain types. It identifies blocks, boundaries, and interfaces within the mesh, and is particularly useful for electromagnetic simulations where regions need to be classified as phi (electromagnetic) or non-phi domains.

Key features:

  • Categorizes mesh regions by domain type (blocks, boundaries, interfaces)
  • Identifies electromagnetic domains (phi vs non-phi blocks)
  • Detects sideset types based on neighboring block relationships
  • Manages topological mappings between mesh IDs and domain classifications

This class is essential for preprocessing meshes to determine which regions require different physics solvers or boundary conditions.

Constructor & Destructor Documentation

◆ Topology()

belfem::mesh::Topology::Topology ( Mesh * aMesh)

◆ ~Topology()

belfem::mesh::Topology::~Topology ( )

Member Function Documentation

◆ block_map()

const Map< id_t, DomainType > & belfem::mesh::Topology::block_map ( ) const
inline

◆ groups()

const Vector< id_t > & belfem::mesh::Topology::groups ( const DomainType aType) const
inline

◆ non_phi_block_ids()

const Vector< id_t > & belfem::mesh::Topology::non_phi_block_ids ( ) const
inline

◆ phi_block_ids()

const Vector< id_t > & belfem::mesh::Topology::phi_block_ids ( ) const
inline

◆ phi_boundary_ids()

const Vector< id_t > & belfem::mesh::Topology::phi_boundary_ids ( ) const
inline

◆ phi_interface_ids()

const Vector< id_t > & belfem::mesh::Topology::phi_interface_ids ( ) const
inline

◆ phi_periodic_ids()

const Vector< id_t > & belfem::mesh::Topology::phi_periodic_ids ( ) const
inline

◆ run()

void belfem::mesh::Topology::run ( )

◆ run_on_enriched_mesh()

void belfem::mesh::Topology::run_on_enriched_mesh ( )

variant of run() for a mesh that was restored from a .bfm file: the fresh path builds the maps BEFORE the enrichment factories run, so the thin-shell layer/buffer blocks and the tape/ghost sidesets must not enter the maps, and the sideset types (already final on the reloaded mesh) must not be re-detected

◆ sideset_type() [1/2]

DomainType belfem::mesh::Topology::sideset_type ( const DomainType aMaster)

◆ sideset_type() [2/2]

DomainType belfem::mesh::Topology::sideset_type ( const DomainType aMaster,
const DomainType aSlave )

◆ synchronize_maps()

void belfem::mesh::Topology::synchronize_maps ( )

The documentation for this class was generated from the following files: