![]() |
v0.15.0 |
Set Dirichlet boundary conditions on displacements by removing dofs. More...
#include "users_modules/basic_finite_elements/src/DirichletBC.hpp"
Public Member Functions | |
| DirichletDisplacementRemoveDofsBc (MoFEM::Interface &m_field, const std::string &field_name, const std::string &problem_name, string blockset_name="DISPLACEMENT", bool is_partitioned=false) | |
| MoFEMErrorCode | iNitialize () |
| virtual boost::shared_ptr< EntityMethod > | getEntMethodPtr (DataFromBc &data) |
| MoFEMErrorCode | preProcess () |
| Pre-processing function executed at loop initialization. | |
| MoFEMErrorCode | operator() () |
| Main operator function executed for each loop iteration. | |
| MoFEMErrorCode | postProcess () |
| Post-processing function executed at loop completion. | |
Public Member Functions inherited from DirichletDisplacementBc | |
| 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") | |
| 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) |
Public Member Functions inherited from MoFEM::FEMethod | |
| MoFEMErrorCode | query_interface (boost::typeindex::type_index type_index, UnknownInterface **iface) const |
| Query interface for type casting. | |
| FEMethod ()=default | |
| Default constructor. | |
| auto | getFEName () const |
| Get the name of the current finite element. | |
| auto | getDataDofsPtr () const |
| Get pointer to DOF data for the current finite element. | |
| auto | getDataVectorDofsPtr () const |
| Get pointer to vector DOF data for the current finite element. | |
| const FieldEntity_vector_view & | getDataFieldEnts () const |
| Get reference to data field entities for the current finite element. | |
| boost::shared_ptr< FieldEntity_vector_view > & | getDataFieldEntsPtr () const |
| Get shared pointer to data field entities for the current finite element. | |
| auto & | getRowFieldEnts () const |
| Get reference to row field entities for the current finite element. | |
| auto & | getRowFieldEntsPtr () const |
| Get shared pointer to row field entities for the current finite element. | |
| auto & | getColFieldEnts () const |
| Get reference to column field entities for the current finite element. | |
| auto & | getColFieldEntsPtr () const |
| Get shared pointer to column field entities for the current finite element. | |
| auto | getRowDofsPtr () const |
| Get pointer to row DOFs for the current finite element. | |
| auto | getColDofsPtr () const |
| Get pointer to column DOFs for the current finite element. | |
| auto | getNumberOfNodes () const |
| Get the number of nodes in the current finite element. | |
| EntityHandle | getFEEntityHandle () const |
| Get the entity handle of the current finite element. | |
| MoFEMErrorCode | getNodeData (const std::string field_name, VectorDouble &data, const bool reset_dofs=true) |
| Get nodal data for a specific field. | |
Public Member Functions inherited from MoFEM::BasicMethod | |
| BasicMethod () | |
| Default constructor. | |
| virtual | ~BasicMethod ()=default |
| Virtual destructor. | |
| int | getNinTheLoop () const |
| Get current loop iteration index. | |
| int | getLoopSize () const |
| Get total loop size. | |
| auto | getLoHiFERank () const |
| Get processor rank range for finite element iteration. | |
| auto | getLoFERank () const |
| Get lower processor rank for finite element iteration. | |
| auto | getHiFERank () const |
| Get upper processor rank for finite element iteration. | |
| unsigned int | getFieldBitNumber (std::string field_name) const |
| Get bit number for a specific field by name. | |
| MoFEMErrorCode | copyBasicMethod (const BasicMethod &basic) |
| Copy data from another BasicMethod instance. | |
| boost::weak_ptr< CacheTuple > | getCacheWeakPtr () const |
| Get the cache weak pointer object. | |
Public Member Functions inherited from MoFEM::KspMethod | |
| MoFEMErrorCode | query_interface (boost::typeindex::type_index type_index, UnknownInterface **iface) const |
| Query interface for type casting. | |
| KspMethod () | |
| Default constructor. | |
| virtual | ~KspMethod ()=default |
| Virtual destructor. | |
| MoFEMErrorCode | copyKsp (const KspMethod &ksp) |
| Copy data from another KSP method. | |
Public Member Functions inherited from MoFEM::PetscData | |
| PetscData () | |
| Default constructor. | |
| virtual | ~PetscData ()=default |
| Virtual destructor. | |
| MoFEMErrorCode | copyPetscData (const PetscData &petsc_data) |
| Copy PETSc data from another instance. | |
Public Member Functions inherited from MoFEM::UnknownInterface | |
| 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 |
Public Member Functions inherited from MoFEM::SnesMethod | |
| MoFEMErrorCode | query_interface (boost::typeindex::type_index type_index, UnknownInterface **iface) const |
| Query interface for type casting. | |
| SnesMethod () | |
| Default constructor. | |
| virtual | ~SnesMethod ()=default |
| Virtual destructor. | |
| MoFEMErrorCode | copySnes (const SnesMethod &snes) |
| Copy SNES data from another instance. | |
Public Member Functions inherited from MoFEM::TSMethod | |
| MoFEMErrorCode | query_interface (boost::typeindex::type_index type_index, UnknownInterface **iface) const |
| Query interface for type casting. | |
| TSMethod () | |
| Default constructor. | |
| virtual | ~TSMethod ()=default |
| Virtual destructor. | |
| MoFEMErrorCode | copyTs (const TSMethod &ts) |
| Copy TS solver data from another instance. | |
Public Member Functions inherited from MoFEM::TaoMethod | |
| MoFEMErrorCode | query_interface (boost::typeindex::type_index type_index, UnknownInterface **iface) const |
| Query interface for type casting. | |
| TaoMethod () | |
| Default constructor. | |
| virtual | ~TaoMethod ()=default |
| Virtual destructor. | |
| MoFEMErrorCode | copyTao (const TaoMethod &tao) |
| Copy TAO data from another instance. | |
Public Attributes | |
| boost::shared_ptr< vector< DataFromBc > > | bcDataPtr |
| bool | isPartitioned |
| string | problemName |
Public Attributes inherited from DirichletDisplacementBc | |
| 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 |
Public Attributes inherited from MoFEM::FEMethod | |
| std::string | feName |
| Name of the finite element being processed. | |
| boost::shared_ptr< const NumeredEntFiniteElement > | numeredEntFiniteElementPtr |
| Shared pointer to finite element database structure. | |
| boost::function< bool(FEMethod *fe_method_ptr)> | exeTestHook |
| Test function to determine if element should be skipped. | |
Public Attributes inherited from MoFEM::BasicMethod | |
| int | nInTheLoop |
| Current index of processed method in the loop. | |
| int | loopSize |
| Total number of methods to process in the loop. | |
| std::pair< int, int > | loHiFERank |
| Processor rank range for distributed finite element iteration. | |
| int | rAnk |
| Current processor rank in MPI communicator. | |
| int | sIze |
| Total number of processors in MPI communicator. | |
| const RefEntity_multiIndex * | refinedEntitiesPtr |
| Pointer to container of refined MoFEM DOF entities. | |
| const RefElement_multiIndex * | refinedFiniteElementsPtr |
| Pointer to container of refined finite element entities. | |
| const Problem * | problemPtr |
| Raw pointer to current MoFEM problem instance. | |
| const Field_multiIndex * | fieldsPtr |
| Raw pointer to fields multi-index container. | |
| const FieldEntity_multiIndex * | entitiesPtr |
| Raw pointer to container of field entities. | |
| const DofEntity_multiIndex * | dofsPtr |
| Raw pointer to container of degree of freedom entities. | |
| const FiniteElement_multiIndex * | finiteElementsPtr |
| Raw pointer to container of finite elements. | |
| const EntFiniteElement_multiIndex * | finiteElementsEntitiesPtr |
| Raw pointer to container of finite element entities. | |
| const FieldEntityEntFiniteElementAdjacencyMap_multiIndex * | adjacenciesPtr |
| Raw pointer to container of adjacencies between DOFs and finite elements. | |
| boost::function< MoFEMErrorCode()> | preProcessHook |
| Hook function for pre-processing operations. | |
| boost::function< MoFEMErrorCode()> | postProcessHook |
| Hook function for post-processing operations. | |
| boost::function< MoFEMErrorCode()> | operatorHook |
| Hook function for main operator execution. | |
| boost::movelib::unique_ptr< bool > | vecAssembleSwitch |
| Switch for vector assembly operations. | |
| boost::movelib::unique_ptr< bool > | matAssembleSwitch |
| Switch for matrix assembly operations. | |
| boost::weak_ptr< CacheTuple > | cacheWeakPtr |
| Weak pointer to cached entity data. | |
Public Attributes inherited from MoFEM::KspMethod | |
| KSPContext | ksp_ctx |
| Current KSP computation context. | |
| KSP | ksp |
| PETSc KSP linear solver object. | |
| Vec & | ksp_f |
| Reference to residual vector in KSP context. | |
| Mat & | ksp_A |
| Reference to system matrix in KSP context. | |
| Mat & | ksp_B |
| Reference to preconditioner matrix in KSP context. | |
Public Attributes inherited from MoFEM::PetscData | |
| Switches | data_ctx |
| Current data context switches. | |
| Vec | f |
| PETSc residual vector. | |
| Mat | A |
| PETSc Jacobian matrix. | |
| Mat | B |
| PETSc preconditioner matrix. | |
| Vec | x |
| PETSc solution vector. | |
| Vec | dx |
| PETSc solution increment vector. | |
| Vec | x_t |
| PETSc first time derivative vector. | |
| Vec | x_tt |
| PETSc second time derivative vector. | |
Public Attributes inherited from MoFEM::SnesMethod | |
| SNESContext | snes_ctx |
| Current SNES computation context. | |
| SNES | snes |
| PETSc SNES nonlinear solver object. | |
| Vec & | snes_x |
| Reference to current solution state vector. | |
| Vec & | snes_dx |
| Reference to solution update/increment vector. | |
| Vec & | snes_f |
| Reference to residual vector. | |
| Mat & | snes_A |
| Reference to Jacobian matrix. | |
| Mat & | snes_B |
| Reference to preconditioner of Jacobian matrix. | |
Public Attributes inherited from MoFEM::TSMethod | |
| TS | ts |
| PETSc time stepping solver object. | |
| TSContext | ts_ctx |
| Current TS computation context. | |
| PetscInt | ts_step |
| Current time step number. | |
| PetscReal | ts_a |
| Shift parameter for U_t (see PETSc Time Solver documentation) | |
| PetscReal | ts_aa |
| Shift parameter for U_tt (second time derivative) | |
| PetscReal | ts_t |
| Current time value. | |
| PetscReal | ts_dt |
| Current time step size. | |
| Vec & | ts_u |
| Reference to current state vector U(t) | |
| Vec & | ts_u_t |
| Reference to first time derivative of state vector dU/dt. | |
| Vec & | ts_u_tt |
| Reference to second time derivative of state vector d²U/dt² | |
| Vec & | ts_F |
| Reference to residual vector F(t,U,U_t,U_tt) | |
| Mat & | ts_A |
| Reference to Jacobian matrix: dF/dU + a*dF/dU_t + aa*dF/dU_tt. | |
| Mat & | ts_B |
| Reference to preconditioner matrix for ts_A. | |
Public Attributes inherited from MoFEM::TaoMethod | |
| TAOContext | tao_ctx |
| Current TAO computation context. | |
| Tao | tao |
| PETSc TAO optimization solver object. | |
| Vec & | tao_x |
| Reference to optimization variables vector. | |
| Vec & | tao_f |
| Reference to gradient vector. | |
| Mat & | tao_A |
| Reference to Hessian matrix. | |
| Mat & | tao_B |
| Reference to preconditioner matrix for Hessian. | |
Additional Inherited Members | |
Public Types inherited from MoFEM::KspMethod | |
| enum | KSPContext { CTX_SETFUNCTION , CTX_OPERATORS , CTX_KSPNONE } |
| Context enumeration for KSP solver phases. More... | |
Public Types inherited from MoFEM::PetscData | |
| 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 } |
| Enumeration for data context flags. More... | |
| using | Switches = std::bitset< 8 > |
| Bitset type for context switches. | |
Public Types inherited from MoFEM::SnesMethod | |
| enum | SNESContext { CTX_SNESSETFUNCTION , CTX_SNESSETJACOBIAN , CTX_SNESNONE } |
| Context enumeration for SNES solver phases. More... | |
Public Types inherited from MoFEM::TSMethod | |
| enum | TSContext { CTX_TSSETRHSFUNCTION , CTX_TSSETRHSJACOBIAN , CTX_TSSETIFUNCTION , CTX_TSSETIJACOBIAN , CTX_TSTSMONITORSET , CTX_TSNONE } |
| Context enumeration for TS solver phases. More... | |
Public Types inherited from MoFEM::TaoMethod | |
| enum | TAOContext { CTX_TAO_OBJECTIVE , CTX_TAO_GRADIENT , CTX_TAO_HESSIAN , CTX_TAO_NONE } |
| Context enumeration for TAO solver phases. More... | |
Static Public Member Functions inherited from MoFEM::UnknownInterface | |
| 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. | |
Static Public Attributes inherited from MoFEM::PetscData | |
| static constexpr Switches | CtxSetNone = PetscData::Switches(CTX_SET_NONE) |
| No data switch. | |
| static constexpr Switches | CtxSetF = PetscData::Switches(CTX_SET_F) |
| Residual vector switch. | |
| static constexpr Switches | CtxSetA = PetscData::Switches(CTX_SET_A) |
| Jacobian matrix switch. | |
| static constexpr Switches | CtxSetB = PetscData::Switches(CTX_SET_B) |
| Preconditioner matrix switch. | |
| static constexpr Switches | CtxSetX = PetscData::Switches(CTX_SET_X) |
| Solution vector switch. | |
| static constexpr Switches | CtxSetDX = PetscData::Switches(CTX_SET_DX) |
| Solution increment switch. | |
| static constexpr Switches | CtxSetX_T = PetscData::Switches(CTX_SET_X_T) |
| First time derivative switch. | |
| static constexpr Switches | CtxSetX_TT = PetscData::Switches(CTX_SET_X_TT) |
| Second time derivative switch. | |
| static constexpr Switches | CtxSetTime = PetscData::Switches(CTX_SET_TIME) |
| Time value switch. | |
Set Dirichlet boundary conditions on displacements by removing dofs.
Definition at line 283 of file DirichletBC.hpp.
|
inline |
Definition at line 289 of file DirichletBC.hpp.
|
inlinevirtual |
Reimplemented in DirichletSpatialRemoveDofsBc.
Definition at line 299 of file DirichletBC.hpp.
|
virtual |
Reimplemented from DirichletDisplacementBc.
Definition at line 647 of file DirichletBC.cpp.
|
inlinevirtual |
Main operator function executed for each loop iteration.
This virtual function is called for every item (finite element, entity, etc.) in the loop. It is the core computation function typically used for:
Reimplemented from DirichletDisplacementBc.
Definition at line 304 of file DirichletBC.hpp.
|
inlinevirtual |
Post-processing function executed at loop completion.
This virtual function is called once at the end of the loop. It is typically used for:
Example of iterating over DOFs:
Reimplemented from DirichletDisplacementBc.
Definition at line 305 of file DirichletBC.hpp.
|
virtual |
Pre-processing function executed at loop initialization.
This virtual function is called once at the beginning of the loop. It is typically used for:
Reimplemented from DirichletDisplacementBc.
Definition at line 712 of file DirichletBC.cpp.
| boost::shared_ptr<vector<DataFromBc> > DirichletDisplacementRemoveDofsBc::bcDataPtr |
Definition at line 285 of file DirichletBC.hpp.
| bool DirichletDisplacementRemoveDofsBc::isPartitioned |
Definition at line 286 of file DirichletBC.hpp.
| string DirichletDisplacementRemoveDofsBc::problemName |
Definition at line 287 of file DirichletBC.hpp.