v0.15.0
Loading...
Searching...
No Matches
Classes | Namespaces | Typedefs
BcManager.hpp File Reference

High-level boundary condition management interface. More...

#include "UnknownInterface.hpp"

Go to the source code of this file.

Classes

struct  MoFEM::BcMeshsetType< BC >
 Template specialization system for type-safe boundary condition handling. More...
 
struct  MoFEM::BcScalarMeshsetType< BC >
 Template specialization for scalar field boundary conditions. More...
 
struct  MoFEM::BcDisplacementMeshsetType< BC >
 Template specialization for displacement boundary conditions. More...
 
struct  MoFEM::BcForceMeshsetType< BC >
 Template specialization for force boundary conditions. More...
 
struct  MoFEM::BcFluxMeshsetType< BC >
 Template specialization for flux boundary conditions. More...
 
struct  MoFEM::BcNormalDisplacementMeshsetType< BC >
 Template specialization for normal displacement constraints. More...
 
struct  MoFEM::BcAnalyticalDisplacementMeshsetType< BC >
 Template specialization for analytical displacement functions. More...
 
struct  MoFEM::BcAnalyticalTractionMeshsetType< BC >
 Template specialization for analytical traction functions. More...
 
struct  MoFEM::BcPressureMeshsetType< BC >
 Template specialization for pressure boundary conditions. More...
 
struct  MoFEM::BcManager
 Boundary condition manager for finite element problem setup. More...
 
struct  MoFEM::BcManager::BCs
 Data structure storing boundary condition markers and attributes. More...
 

Namespaces

namespace  MoFEM
 implementation of Data Operators for Forces and Sources
 

Typedefs

template<CubitBC BC>
using MoFEM::BcTemperature = BcScalarMeshsetType< BC >
 Type alias for temperature boundary conditions.
 

Detailed Description

High-level boundary condition management interface.

The BcManager provides a high-level interface for applying boundary conditions to finite element problems, working in close integration with MeshsetsManager to bridge mesh-based boundary condition definitions with finite element implementations.

MeshsetsManager Integration

BcManager operates as the application layer above MeshsetsManager:

Essential vs Natural Boundary Conditions

BcManager supports both essential and natural boundary condition implementations:

Essential Boundary Conditions (Dirichlet)

Natural Boundary Conditions (Neumann)

Template Specializations

BcManager uses template specializations to handle different boundary condition types and meshset configurations in a type-safe manner:

Meshset Type Specializations

Block-Based Specializations

Data Structure Specializations

Purpose of Specializations

Type Safety and Compile-Time Checking

The template specialization system provides several critical benefits:

1. Geometric Entity Differentiation (NODESET vs SIDESET vs BLOCKSET):

2. Physics-Specific Type Safety:

3. Compile-Time Dispatch Benefits:

4. Essential vs Natural BC Implementation Patterns:

// Essential BC Pattern (DOF removal):
bc_manager.removeBlockDOFsOnEntities<BcMeshsetType<DISPLACEMENTSET>>(
"problem", "DISPLACEMENT", true, false, false);
// Natural BC Pattern (DOF marking for integration):
bc_manager.pushMarkDOFsOnEntities<BcMeshsetType<FORCESET>>(
"problem", "DISPLACEMENT", true, false);

5. BLOCKSET Specializations for Advanced Physics:

Geometry-Specific Handling

Physics-Specific Implementations

Typical Workflow

  1. Mesh Loading: MeshsetsManager discovers boundary condition meshsets
  2. BC Detection: BcManager identifies available boundary condition types
  3. Essential BCs: Remove constrained DOFs using removeBlockDOFsOnEntities()
  4. Natural BCs: Mark affected DOFs using pushMarkDOFsOnEntities()

Definition in file BcManager.hpp.