![]() |
v0.15.0 |
Add boundary conditions form block set having 6 attributes. More...
#include "users_modules/basic_finite_elements/src/DirichletBC.hpp"
Public Member Functions | |
DirichletSetFieldFromBlockWithFlags (MoFEM::Interface &m_field, const std::string &field_name, const std::string &blockset_name, Mat aij, Vec x, Vec f) | |
DirichletSetFieldFromBlockWithFlags (MoFEM::Interface &m_field, const std::string &field_name, const std::string &blockset_name) | |
![]() | |
DirichletDisplacementBc (MoFEM::Interface &m_field, const std::string &field_name, Mat Aij, Vec X, Vec F, string blockset_name="DISPLACEMENT") | |
DirichletDisplacementBc (MoFEM::Interface &m_field, const std::string &field_name, string blockset_name="DISPLACEMENT") | |
virtual MoFEMErrorCode | iNitialize () |
MoFEMErrorCode | preProcess () |
function is run at the beginning of loop | |
MoFEMErrorCode | operator() () |
function is run for every finite element | |
MoFEMErrorCode | postProcess () |
function is run at the end of loop | |
MoFEMErrorCode | getBcDataFromSetsAndBlocks (std::vector< DataFromBc > &bc_data) |
Get the Bc Data From Sets And Blocks object Use DISPLACEMENT blockset name (default) with 6 atributes: 1,2,3 are values of displacements x,y,z 4,5,6 are flags for x,y,z (0 or 1) | |
MoFEMErrorCode | getRotationBcFromBlock (std::vector< DataFromBc > &bc_data) |
Get the Rotation Bc From Block object Use ROTATION blockset name with 7 atributes: 1,2,3 are x,y,z coords of the center of rotation 4,5,6 are are angular velocities in x,y,z. | |
MoFEMErrorCode | calculateRotationForDof (VectorDouble3 &coords, DataFromBc &bc_data) |
Calculate displacements from rotation for particular dof. | |
MoFEMErrorCode | calculateRotationForDof (EntityHandle ent, DataFromBc &bc_data) |
MoFEMErrorCode | applyScaleBcData (DataFromBc &bc_data) |
![]() | |
MoFEMErrorCode | query_interface (boost::typeindex::type_index type_index, UnknownInterface **iface) const |
FEMethod ()=default | |
auto | getFEName () const |
get finite element name | |
auto | getDataDofsPtr () const |
auto | getDataVectorDofsPtr () const |
const FieldEntity_vector_view & | getDataFieldEnts () const |
boost::shared_ptr< FieldEntity_vector_view > & | getDataFieldEntsPtr () const |
auto & | getRowFieldEnts () const |
auto & | getRowFieldEntsPtr () const |
auto & | getColFieldEnts () const |
auto & | getColFieldEntsPtr () const |
auto | getRowDofsPtr () const |
auto | getColDofsPtr () const |
auto | getNumberOfNodes () const |
EntityHandle | getFEEntityHandle () const |
MoFEMErrorCode | getNodeData (const std::string field_name, VectorDouble &data, const bool reset_dofs=true) |
![]() | |
BasicMethod () | |
virtual | ~BasicMethod ()=default |
int | getNinTheLoop () const |
get number of evaluated element in the loop | |
int | getLoopSize () const |
get loop size | |
auto | getLoHiFERank () const |
Get lo and hi processor rank of iterated entities. | |
auto | getLoFERank () const |
Get upper rank in loop for iterating elements. | |
auto | getHiFERank () const |
Get upper rank in loop for iterating elements. | |
unsigned int | getFieldBitNumber (std::string field_name) const |
MoFEMErrorCode | copyBasicMethod (const BasicMethod &basic) |
Copy data from other base method to this base method. | |
boost::weak_ptr< CacheTuple > | getCacheWeakPtr () const |
Get the cache weak ptr object. | |
![]() | |
MoFEMErrorCode | query_interface (boost::typeindex::type_index type_index, UnknownInterface **iface) const |
KspMethod () | |
virtual | ~KspMethod ()=default |
MoFEMErrorCode | copyKsp (const KspMethod &ksp) |
copy data form another method | |
![]() | |
PetscData () | |
virtual | ~PetscData ()=default |
MoFEMErrorCode | copyPetscData (const PetscData &petsc_data) |
![]() | |
template<class IFACE > | |
MoFEMErrorCode | registerInterface (bool error_if_registration_failed=true) |
Register interface. | |
template<class IFACE > | |
MoFEMErrorCode | getInterface (IFACE *&iface) const |
Get interface reference to pointer of interface. | |
template<class IFACE > | |
MoFEMErrorCode | getInterface (IFACE **const iface) const |
Get interface pointer to pointer of interface. | |
template<class IFACE , typename boost::enable_if< boost::is_pointer< IFACE >, int >::type = 0> | |
IFACE | getInterface () const |
Get interface pointer to pointer of interface. | |
template<class IFACE , typename boost::enable_if< boost::is_reference< IFACE >, int >::type = 0> | |
IFACE | getInterface () const |
Get reference to interface. | |
template<class IFACE > | |
IFACE * | getInterface () const |
Function returning pointer to interface. | |
virtual | ~UnknownInterface ()=default |
![]() | |
MoFEMErrorCode | query_interface (boost::typeindex::type_index type_index, UnknownInterface **iface) const |
SnesMethod () | |
virtual | ~SnesMethod ()=default |
MoFEMErrorCode | copySnes (const SnesMethod &snes) |
Copy snes data. | |
![]() | |
MoFEMErrorCode | query_interface (boost::typeindex::type_index type_index, UnknownInterface **iface) const |
TSMethod () | |
virtual | ~TSMethod ()=default |
MoFEMErrorCode | copyTs (const TSMethod &ts) |
Copy TS solver data. | |
![]() | |
MoFEMErrorCode | query_interface (boost::typeindex::type_index type_index, UnknownInterface **iface) const |
TaoMethod () | |
virtual | ~TaoMethod ()=default |
MoFEMErrorCode | copyTao (const TaoMethod &tao) |
Copy TAO data. | |
Additional Inherited Members | |
![]() | |
enum | KSPContext { CTX_SETFUNCTION , CTX_OPERATORS , CTX_KSPNONE } |
pass information about context of KSP/DM for with finite element is computed More... | |
![]() | |
enum | DataContext { CTX_SET_NONE = 0 , CTX_SET_F = 1 << 0 , CTX_SET_A = 1 << 1 , CTX_SET_B = 1 << 2 , CTX_SET_X = 1 << 3 , CTX_SET_DX = 1 << 4 , CTX_SET_X_T = 1 << 5 , CTX_SET_X_TT = 1 << 6 , CTX_SET_TIME = 1 << 7 } |
using | Switches = std::bitset<8> |
![]() | |
enum | SNESContext { CTX_SNESSETFUNCTION , CTX_SNESSETJACOBIAN , CTX_SNESNONE } |
![]() | |
enum | TSContext { CTX_TSSETRHSFUNCTION , CTX_TSSETRHSJACOBIAN , CTX_TSSETIFUNCTION , CTX_TSSETIJACOBIAN , CTX_TSTSMONITORSET , CTX_TSNONE } |
![]() | |
enum | TAOContext { CTX_TAO_OBJECTIVE , CTX_TAO_GRADIENT , CTX_TAO_HESSIAN , CTX_TAO_NONE } |
![]() | |
static MoFEMErrorCode | getLibVersion (Version &version) |
Get library version. | |
static MoFEMErrorCode | getFileVersion (moab::Interface &moab, Version &version) |
Get database major version. | |
static MoFEMErrorCode | setFileVersion (moab::Interface &moab, Version version=Version(MoFEM_VERSION_MAJOR, MoFEM_VERSION_MINOR, MoFEM_VERSION_BUILD)) |
Get database major version. | |
static MoFEMErrorCode | getInterfaceVersion (Version &version) |
Get database major version. | |
![]() | |
MoFEM::Interface & | mField |
const std::string | fieldName |
field name to set Dirichlet BC | |
double | dIag |
diagonal value set on zeroed column and rows | |
std::map< DofIdx, FieldData > | mapZeroRows |
std::vector< int > | dofsIndices |
std::vector< double > | dofsValues |
std::vector< double > | dofsXValues |
const std::string | blocksetName |
boost::ptr_vector< MethodForForceScaling > | methodsOp |
![]() | |
std::string | feName |
Name of finite element. | |
boost::shared_ptr< const NumeredEntFiniteElement > | numeredEntFiniteElementPtr |
boost::function< bool(FEMethod *fe_method_ptr)> | exeTestHook |
Tet if element to skip element. | |
![]() | |
int | nInTheLoop |
number currently of processed method | |
int | loopSize |
local number oe methods to process | |
std::pair< int, int > | loHiFERank |
Llo and hi processor rank of iterated entities. | |
int | rAnk |
processor rank | |
int | sIze |
number of processors in communicator | |
const RefEntity_multiIndex * | refinedEntitiesPtr |
container of mofem dof entities | |
const RefElement_multiIndex * | refinedFiniteElementsPtr |
container of mofem finite element entities | |
const Problem * | problemPtr |
raw pointer to problem | |
const Field_multiIndex * | fieldsPtr |
raw pointer to fields container | |
const FieldEntity_multiIndex * | entitiesPtr |
raw pointer to container of field entities | |
const DofEntity_multiIndex * | dofsPtr |
raw pointer container of dofs | |
const FiniteElement_multiIndex * | finiteElementsPtr |
raw pointer to container finite elements | |
const EntFiniteElement_multiIndex * | finiteElementsEntitiesPtr |
const FieldEntityEntFiniteElementAdjacencyMap_multiIndex * | adjacenciesPtr |
boost::function< MoFEMErrorCode()> | preProcessHook |
Hook function for pre-processing. | |
boost::function< MoFEMErrorCode()> | postProcessHook |
Hook function for post-processing. | |
boost::function< MoFEMErrorCode()> | operatorHook |
Hook function for operator. | |
boost::movelib::unique_ptr< bool > | vecAssembleSwitch |
boost::movelib::unique_ptr< bool > | matAssembleSwitch |
boost::weak_ptr< CacheTuple > | cacheWeakPtr |
![]() | |
KSPContext | ksp_ctx |
Context. | |
KSP | ksp |
KSP solver. | |
Vec & | ksp_f |
Mat & | ksp_A |
Mat & | ksp_B |
![]() | |
Switches | data_ctx |
Vec | f |
Mat | A |
Mat | B |
Vec | x |
Vec | dx |
Vec | x_t |
Vec | x_tt |
![]() | |
SNESContext | snes_ctx |
SNES | snes |
snes solver | |
Vec & | snes_x |
state vector | |
Vec & | snes_dx |
solution update | |
Vec & | snes_f |
residual | |
Mat & | snes_A |
jacobian matrix | |
Mat & | snes_B |
preconditioner of jacobian matrix | |
![]() | |
TS | ts |
time solver | |
TSContext | ts_ctx |
PetscInt | ts_step |
time step number | |
PetscReal | ts_a |
shift for U_t (see PETSc Time Solver) | |
PetscReal | ts_aa |
shift for U_tt shift for U_tt | |
PetscReal | ts_t |
time | |
PetscReal | ts_dt |
time step size | |
Vec & | ts_u |
state vector | |
Vec & | ts_u_t |
time derivative of state vector | |
Vec & | ts_u_tt |
second time derivative of state vector | |
Vec & | ts_F |
residual vector | |
Mat & | ts_A |
Mat & | ts_B |
Preconditioner for ts_A. | |
![]() | |
TAOContext | tao_ctx |
Tao | tao |
tao solver | |
Vec & | tao_x |
Vec & | tao_f |
state vector | |
Mat & | tao_A |
gradient vector | |
Mat & | tao_B |
hessian matrix | |
![]() | |
static constexpr Switches | CtxSetNone = PetscData::Switches(CTX_SET_NONE) |
static constexpr Switches | CtxSetF = PetscData::Switches(CTX_SET_F) |
static constexpr Switches | CtxSetA = PetscData::Switches(CTX_SET_A) |
static constexpr Switches | CtxSetB = PetscData::Switches(CTX_SET_B) |
static constexpr Switches | CtxSetX = PetscData::Switches(CTX_SET_X) |
static constexpr Switches | CtxSetDX = PetscData::Switches(CTX_SET_DX) |
static constexpr Switches | CtxSetX_T = PetscData::Switches(CTX_SET_X_T) |
static constexpr Switches | CtxSetX_TT = PetscData::Switches(CTX_SET_X_TT) |
static constexpr Switches | CtxSetTime = PetscData::Switches(CTX_SET_TIME) |
Add boundary conditions form block set having 6 attributes.
First 3 values are magnitudes of dofs e.g. in x,y,z direction and next 3 are flags, respectively. If flag is false ( = 0), particular dof is not taken into account. Usage in Cubit for displacement: block 1 tri 28 32 block 1 name "DISPLACEMENT_1" block 1 attribute count 6 block 1 attribute index 1 97 # any value block 1 attribute index 2 0 block 1 attribute index 3 0 block 1 attribute index 4 0 # flag for x dir block 1 attribute index 5 1 # flag for y dir block 1 attribute index 6 1 # flag for z dir This means that we set zero displacement on y and z dir and on x set direction freely. (value 97 is irrelevant because flag for 1 value is 0 (false)) It can be usefull if we want to set boundary conditions directly to triangles e.g, since standard boundary conditions in Cubit allow only using nodeset or surface which might not work with mesh based on facet engine (e.g. STL file)
Definition at line 356 of file DirichletBC.hpp.
|
inline |
Definition at line 358 of file DirichletBC.hpp.
|
inline |
Definition at line 365 of file DirichletBC.hpp.