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

Top-level orchestrator; owns the mesh, materials, boundary conditions and DOF managers. More...

#include <cl_FEM_Kernel.hpp>

Public Member Functions

 Kernel (KernelParameters *aKernelParameters)
 ~Kernel ()
const KernelParametersparams ()
 expose parameter object
DofManagerdofmgr (const uint aIndex=0)
 expose a field
Materialmaterial (const string &aLabel)
 returns the material object registered under aLabel ( add_material ).
void add_material (const string aLabel, Material *aMaterial)
 manually add a material to the kernel.
void add_boundary_condition (PhysicalBoundaryCondition *aBC)
 manually add the BCs to the kernel.
Cell< PhysicalBoundaryCondition * > & boundary_conditions ()
 expose the boundary condition container
PhysicalBoundaryConditionboundary_condition (id_t aID)
 expose a boundary condition for a specific sideset ID
void compute_boundary_conditions (real aTime)
 Compute the boundary condition and update the Dofs at a given time.
const mesh::CommTablecomm_table (const uint aProc) const
const Cell< const mesh::CommTable * > & comm_tables () const
const proc_tnumber_of_procs () const
const uintfield_offset () const
 returns the number of fields that existed before Kernel was created
Meshmesh ()
 returns the mesh on the master and the submesh on other
IWGcreate_equation (const IwgType aEquationType, const ModelDimensionality aModelDimensionality=ModelDimensionality::UNDEFINED, const Vector< id_t > aBlocks={}, const Vector< id_t > aSideSets={})
void add_equation (IWG *aEquation)
 special function to add an equation that has already been created.
DofManagercreate_field (IWG *aEquation)
bool is_master () const
void claim_parameter_ownership (const bool aFlag=true)
 if this flag is set, the kernel will destroy the parameters
void set_controller (Controller *aController)
Controllercontroller ()
bool has_controller () const
 true once set_controller() has attached a Controller; callers that may legitimately run without one ask this before calling controller()
void compute_element_volumes ()
uint number_of_dof_managers () const

Detailed Description

Top-level orchestrator; owns the mesh, materials, boundary conditions and DOF managers.

See also
FEM Kernel Module Documentation

Constructor & Destructor Documentation

◆ Kernel()

belfem::fem::Kernel::Kernel ( KernelParameters * aKernelParameters)

◆ ~Kernel()

belfem::fem::Kernel::~Kernel ( )

Member Function Documentation

◆ add_boundary_condition()

void belfem::fem::Kernel::add_boundary_condition ( PhysicalBoundaryCondition * aBC)

manually add the BCs to the kernel.

The BC is now owned and destroyed by the kernel

◆ add_equation()

void belfem::fem::Kernel::add_equation ( IWG * aEquation)

special function to add an equation that has already been created.

The equation is now owned and destroyed by the kernel

◆ add_material()

void belfem::fem::Kernel::add_material ( const string aLabel,
Material * aMaterial )

manually add a material to the kernel.

The material is now owned and destroyed by the kernel

◆ boundary_condition()

PhysicalBoundaryCondition * belfem::fem::Kernel::boundary_condition ( id_t aID)
inline

expose a boundary condition for a specific sideset ID

◆ boundary_conditions()

Cell< PhysicalBoundaryCondition * > & belfem::fem::Kernel::boundary_conditions ( )
inline

expose the boundary condition container

◆ claim_parameter_ownership()

void belfem::fem::Kernel::claim_parameter_ownership ( const bool aFlag = true)

if this flag is set, the kernel will destroy the parameters

◆ comm_table()

const mesh::CommTable * belfem::fem::Kernel::comm_table ( const uint aProc) const
inline

◆ comm_tables()

const Cell< const mesh::CommTable * > & belfem::fem::Kernel::comm_tables ( ) const
inline

◆ compute_boundary_conditions()

void belfem::fem::Kernel::compute_boundary_conditions ( real aTime)

Compute the boundary condition and update the Dofs at a given time.

◆ compute_element_volumes()

void belfem::fem::Kernel::compute_element_volumes ( )

◆ controller()

Controller * belfem::fem::Kernel::controller ( )

◆ create_equation()

IWG * belfem::fem::Kernel::create_equation ( const IwgType aEquationType,
const ModelDimensionality aModelDimensionality = ModelDimensionality::UNDEFINED,
const Vector< id_t > aBlocks = {},
const Vector< id_t > aSideSets = {} )

◆ create_field()

DofManager * belfem::fem::Kernel::create_field ( IWG * aEquation)

◆ dofmgr()

DofManager * belfem::fem::Kernel::dofmgr ( const uint aIndex = 0)

expose a field

◆ field_offset()

const uint & belfem::fem::Kernel::field_offset ( ) const
inline

returns the number of fields that existed before Kernel was created

◆ has_controller()

bool belfem::fem::Kernel::has_controller ( ) const
inline

true once set_controller() has attached a Controller; callers that may legitimately run without one ask this before calling controller()

◆ is_master()

bool belfem::fem::Kernel::is_master ( ) const
inline

◆ material()

Material * belfem::fem::Kernel::material ( const string & aLabel)

returns the material object registered under aLabel ( add_material ).

Hard error if no such material exists. Called from Group::set_material( label )

◆ mesh()

Mesh * belfem::fem::Kernel::mesh ( )
inline

returns the mesh on the master and the submesh on other

Returns
the mesh (master) or the submesh (all other ranks)

◆ number_of_dof_managers()

uint belfem::fem::Kernel::number_of_dof_managers ( ) const
inline

◆ number_of_procs()

const proc_t & belfem::fem::Kernel::number_of_procs ( ) const
inline

◆ params()

const KernelParameters * belfem::fem::Kernel::params ( )

expose parameter object

◆ set_controller()

void belfem::fem::Kernel::set_controller ( Controller * aController)

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