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

#include <cl_FEM_PhysicalBoundaryCondition.hpp>

Collaboration diagram for belfem::fem::PhysicalBoundaryCondition:
[legend]

Public Member Functions

 PhysicalBoundaryCondition (const index_t aIndex)
 ~PhysicalBoundaryCondition ()
index_t index () const
void set_function (SourceFunction *aBCFunction)
void set_direction (real x, real y, real z)
void set_type (BoundaryConditionType aType)
void set_units (unit aUnits)
void set_amplitude_is_flux_density (const bool aFlag)
bool amplitude_is_flux_density () const
void set_domains (Vector< id_t > aDomains, const bool aIsThinShell=false)
void set_field (DofManager *aField)
void set_scale (real aScale)
realscale ()
SourceFunctionfunction ()
Vector< id_t > & domains ()
BoundaryConditionType type ()
bool is_thinshell ()
real value ()
void fix (real aValue)
Vector< real > & direction ()
unit units ()
void impose_bc (real aTime)
void set_label (const string &aLabel)
const stringlabel () const
void update_global ()

Protected Attributes

const index_t mIndex
BoundaryConditionType mType
string mLabel = ""
SourceFunctionmFunction = nullptr
real mValue = BELFEM_EPS
real mScale = 1.0
Vector< realmDirection = Vector < real >(3,0.0)
unit mUnits
bool mAmplitudeIsFluxDensity = false
Vector< id_tmDomains
bool mIsThinShell
DofManagermDofMngr = nullptr
DofmAbstractDof = nullptr

Constructor & Destructor Documentation

◆ PhysicalBoundaryCondition()

belfem::fem::PhysicalBoundaryCondition::PhysicalBoundaryCondition ( const index_t aIndex)

◆ ~PhysicalBoundaryCondition()

belfem::fem::PhysicalBoundaryCondition::~PhysicalBoundaryCondition ( )

Member Function Documentation

◆ amplitude_is_flux_density()

bool belfem::fem::PhysicalBoundaryCondition::amplitude_is_flux_density ( ) const

◆ direction()

Vector< real > & belfem::fem::PhysicalBoundaryCondition::direction ( )

◆ domains()

Vector< id_t > & belfem::fem::PhysicalBoundaryCondition::domains ( )

◆ fix()

void belfem::fem::PhysicalBoundaryCondition::fix ( real aValue)

◆ function()

SourceFunction * belfem::fem::PhysicalBoundaryCondition::function ( )

◆ impose_bc()

void belfem::fem::PhysicalBoundaryCondition::impose_bc ( real aTime)

◆ index()

index_t belfem::fem::PhysicalBoundaryCondition::index ( ) const

◆ is_thinshell()

bool belfem::fem::PhysicalBoundaryCondition::is_thinshell ( )

◆ label()

const string & belfem::fem::PhysicalBoundaryCondition::label ( ) const

◆ scale()

real & belfem::fem::PhysicalBoundaryCondition::scale ( )

◆ set_amplitude_is_flux_density()

void belfem::fem::PhysicalBoundaryCondition::set_amplitude_is_flux_density ( const bool aFlag)

◆ set_direction()

void belfem::fem::PhysicalBoundaryCondition::set_direction ( real x,
real y,
real z )

◆ set_domains()

void belfem::fem::PhysicalBoundaryCondition::set_domains ( Vector< id_t > aDomains,
const bool aIsThinShell = false )

◆ set_field()

void belfem::fem::PhysicalBoundaryCondition::set_field ( DofManager * aField)

◆ set_function()

void belfem::fem::PhysicalBoundaryCondition::set_function ( SourceFunction * aBCFunction)

◆ set_label()

void belfem::fem::PhysicalBoundaryCondition::set_label ( const string & aLabel)

set the global-variable name ( factories only; empty = no global is published for this condition )

◆ set_scale()

void belfem::fem::PhysicalBoundaryCondition::set_scale ( real aScale)

◆ set_type()

void belfem::fem::PhysicalBoundaryCondition::set_type ( BoundaryConditionType aType)

◆ set_units()

void belfem::fem::PhysicalBoundaryCondition::set_units ( unit aUnits)

◆ type()

BoundaryConditionType belfem::fem::PhysicalBoundaryCondition::type ( )

◆ units()

unit belfem::fem::PhysicalBoundaryCondition::units ( )

◆ update_global()

void belfem::fem::PhysicalBoundaryCondition::update_global ( )

write mValue into this condition's mesh global variable, if a label is set and the variable exists. The variables live on RANK 0 ONLY ( created there by the factories; Exodus and the memdump read them there ), so on workers the exists-guard makes this a no-op — for function-evaluated types called from impose_bc() on all ranks, and for circuit types written from fix() at circuit-solve time on rank 0. No worker code reads mesh globals; anyone adding such a consumer must add an explicit synch first. Deliberately a no-op before the factories have created the variables

◆ value()

real belfem::fem::PhysicalBoundaryCondition::value ( )

Member Data Documentation

◆ mAbstractDof

Dof* belfem::fem::PhysicalBoundaryCondition::mAbstractDof = nullptr
protected

◆ mAmplitudeIsFluxDensity

bool belfem::fem::PhysicalBoundaryCondition::mAmplitudeIsFluxDensity = false
protected

the deck stated the amplitude as a flux density ( tesla family ) rather than as a field strength, so mScale carries the nu0 = 1/mu0 conversion. Read by MaxwellFactory to warn about a ferro-bounded sideset, where B = mu0*H does not hold. Explicitly initialised: mUnits above is NOT, and cannot be used for this

◆ mDirection

Vector< real > belfem::fem::PhysicalBoundaryCondition::mDirection = Vector < real >(3,0.0)
protected

◆ mDofMngr

DofManager* belfem::fem::PhysicalBoundaryCondition::mDofMngr = nullptr
protected

◆ mDomains

Vector< id_t > belfem::fem::PhysicalBoundaryCondition::mDomains
protected

◆ mFunction

SourceFunction* belfem::fem::PhysicalBoundaryCondition::mFunction = nullptr
protected

◆ mIndex

const index_t belfem::fem::PhysicalBoundaryCondition::mIndex
protected

◆ mIsThinShell

bool belfem::fem::PhysicalBoundaryCondition::mIsThinShell
protected

◆ mLabel

string belfem::fem::PhysicalBoundaryCondition::mLabel = ""
protected

Exodus/global-variable name of this condition, assigned by the creating factory from the input-file group ( section header label, else type + occurrence ordinal ). Empty = this BC does not publish a global ( e.g. Bearing, which imposes no scalar )

◆ mScale

real belfem::fem::PhysicalBoundaryCondition::mScale = 1.0
protected

◆ mType

BoundaryConditionType belfem::fem::PhysicalBoundaryCondition::mType
protected

◆ mUnits

unit belfem::fem::PhysicalBoundaryCondition::mUnits
protected

◆ mValue

real belfem::fem::PhysicalBoundaryCondition::mValue = BELFEM_EPS
protected

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