![]() |
v0.15.0 |
structure to get information from mofem into EntitiesFieldData More...
#include "src/finite_elements/ForcesAndSourcesCore.hpp"
Classes | |
| struct | UserDataOperator |
Public Types | |
| typedef boost::function< int(int order_row, int order_col, int order_data)> | RuleHookFun |
| typedef boost::function< MoFEMErrorCode(ForcesAndSourcesCore *fe_raw_ptr, int order_row, int order_col, int order_data)> | GaussHookFun |
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... | |
Public Member Functions | |
| ForcesAndSourcesCore (Interface &m_field) | |
| boost::ptr_deque< UserDataOperator > & | getOpPtrVector () |
| Use to push back operator for row operator. | |
| auto & | getElementPolynomialBase () |
| Get the Entity Polynomial Base object. | |
| auto & | getUserPolynomialBase () |
| Get the User Polynomial Base object. | |
| virtual MoFEMErrorCode | preProcess () |
| Pre-processing function executed at loop initialization. | |
| virtual MoFEMErrorCode | operator() () |
| Main operator function executed for each loop iteration. | |
| virtual MoFEMErrorCode | postProcess () |
| Post-processing function executed at loop completion. | |
| int | getMaxDataOrder () const |
| Get max order of approximation for data fields. | |
| int | getMaxRowOrder () const |
| Get max order of approximation for field in rows. | |
| int | getMaxColOrder () const |
| Get max order of approximation for field in columns. | |
| auto & | getEntData (const FieldSpace space, const EntityType type, const int side) |
| Get the entity data. | |
| auto & | getDataOnElementBySpaceArray () |
| Get data on entities and space. | |
| auto & | getDerivedDataOnElementBySpaceArray () |
| Get derived data on entities and space. | |
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 | |
| Interface & | mField |
| RuleHookFun | getRuleHook |
| Hook to get rule. | |
| GaussHookFun | setRuleHook |
| Set function to calculate integration rule. | |
| MatrixDouble | gaussPts |
| Matrix of integration points. | |
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. | |
Protected Member Functions | |
| MoFEMErrorCode | getEntitySense (const EntityType type, boost::ptr_vector< EntitiesFieldData::EntData > &data) const |
| get sense (orientation) of entity | |
| MoFEMErrorCode | getEntityDataOrder (const EntityType type, const FieldSpace space, boost::ptr_vector< EntitiesFieldData::EntData > &data) const |
| Get the entity data order. | |
| template<EntityType type> | |
| MoFEMErrorCode | getEntitySense (EntitiesFieldData &data) const |
| Get the entity sense (orientation) | |
| template<EntityType type> | |
| MoFEMErrorCode | getEntityDataOrder (EntitiesFieldData &data, const FieldSpace space) const |
| Get the entity data order for given space. | |
| MoFEMErrorCode | getFaceNodes (EntitiesFieldData &data) const |
| Get nodes on faces. | |
| MoFEMErrorCode | getSpacesAndBaseOnEntities (EntitiesFieldData &data) const |
| Get field approximation space and base on entities. | |
| virtual int | getRule (int order_row, int order_col, int order_data) |
| another variant of getRule | |
| virtual MoFEMErrorCode | setGaussPts (int order_row, int order_col, int order_data) |
| set user specific integration rule | |
| MoFEMErrorCode | calHierarchicalBaseFunctionsOnElement (const FieldApproximationBase b) |
| Calculate base functions. | |
| MoFEMErrorCode | calHierarchicalBaseFunctionsOnElement () |
| Calculate base functions. | |
| MoFEMErrorCode | calBernsteinBezierBaseFunctionsOnElement () |
| Calculate Bernstein-Bezier base. | |
| MoFEMErrorCode | createDataOnElement (EntityType type) |
| Create a entity data on element object. | |
| MoFEMErrorCode | loopOverOperators () |
| Iterate user data operators. | |
Indices | |
| template<typename EXTRACTOR > | |
| MoFEMErrorCode | getNodesIndices (const int bit_number, FieldEntity_vector_view &ents_field, VectorInt &nodes_indices, VectorInt &local_nodes_indices, EXTRACTOR &&extractor) const |
| get node indices | |
| MoFEMErrorCode | getRowNodesIndices (EntitiesFieldData &data, const int bit_number) const |
| get row node indices from FENumeredDofEntity_multiIndex | |
| MoFEMErrorCode | getColNodesIndices (EntitiesFieldData &data, const int bit_number) const |
| get col node indices from FENumeredDofEntity_multiIndex | |
| template<typename EXTRACTOR > | |
| MoFEMErrorCode | getEntityIndices (EntitiesFieldData &data, const int bit_number, FieldEntity_vector_view &ents_field, const EntityType type_lo, const EntityType type_hi, EXTRACTOR &&extractor) const |
| MoFEMErrorCode | getEntityRowIndices (EntitiesFieldData &data, const int bit_number, const EntityType type_lo=MBVERTEX, const EntityType type_hi=MBPOLYHEDRON) const |
| MoFEMErrorCode | getEntityColIndices (EntitiesFieldData &data, const int bit_number, const EntityType type_lo=MBVERTEX, const EntityType type_hi=MBPOLYHEDRON) const |
| MoFEMErrorCode | getNoFieldRowIndices (EntitiesFieldData &data, const int bit_number) const |
| get col NoField indices | |
| MoFEMErrorCode | getNoFieldColIndices (EntitiesFieldData &data, const int bit_number) const |
| get col NoField indices | |
Data | |
| MoFEMErrorCode | getBitRefLevelOnData () |
| MoFEMErrorCode | getNodesFieldData (EntitiesFieldData &data, const int bit_number) const |
| Get data on nodes. | |
| MoFEMErrorCode | getEntityFieldData (EntitiesFieldData &data, const int bit_number, const EntityType type_lo=MBVERTEX, const EntityType type_hi=MBPOLYHEDRON) const |
| template<typename EXTRACTOR > | |
| MoFEMErrorCode | getNoFieldEntityFieldData (EntitiesFieldData &data, const int bit_number, EXTRACTOR &&extractor) const |
| Get field data on entities where no field is defined. | |
Data form NumeredDofEntity_multiIndex | |
| MoFEMErrorCode | getProblemNodesIndices (const std::string &field_name, const NumeredDofEntity_multiIndex &dofs, VectorInt &nodes_indices) const |
| get indices of nodal indices which are declared for problem but not this particular element | |
| MoFEMErrorCode | getProblemTypeIndices (const std::string &field_name, const NumeredDofEntity_multiIndex &dofs, EntityType type, int side_number, VectorInt &indices) const |
| get indices by type (generic function) which are declared for problem but not this particular element | |
| MoFEMErrorCode | getProblemNodesRowIndices (const std::string &field_name, VectorInt &nodes_indices) const |
| MoFEMErrorCode | getProblemTypeRowIndices (const std::string &field_name, EntityType type, int side_number, VectorInt &indices) const |
| MoFEMErrorCode | getProblemNodesColIndices (const std::string &field_name, VectorInt &nodes_indices) const |
| MoFEMErrorCode | getProblemTypeColIndices (const std::string &field_name, EntityType type, int side_number, VectorInt &indices) const |
Deprecated (do not use) | |
| virtual int | getRule (int order) |
| virtual MoFEMErrorCode | setGaussPts (int order) |
Protected Attributes | |
| const std::array< boost::shared_ptr< EntitiesFieldData >, LASTSPACE > | dataOnElement |
| Entity data on element entity rows fields. | |
| const std::array< boost::shared_ptr< EntitiesFieldData >, LASTSPACE > | derivedDataOnElement |
| Entity data on element entity columns fields. | |
| EntitiesFieldData & | dataNoField |
| EntitiesFieldData & | dataH1 |
| EntitiesFieldData & | dataHcurl |
| EntitiesFieldData & | dataHdiv |
| EntitiesFieldData & | dataL2 |
| boost::ptr_deque< UserDataOperator > | opPtrVector |
| Vector of finite element users data operators. | |
| EntityType | lastEvaluatedElementEntityType |
| Last evaluated type of element entity. | |
| MatrixDouble | coordsAtGaussPts |
| coordinated at gauss points | |
| double | elementMeasure |
Private Member Functions | |
| MoFEMErrorCode | setSideFEPtr (const ForcesAndSourcesCore *side_fe_ptr) |
| Set the pointer to face element on the side. | |
| MoFEMErrorCode | setRefineFEPtr (const ForcesAndSourcesCore *refine_fe_ptr) |
| Set the pointer to face element refined. | |
Private Attributes | |
| boost::shared_ptr< BaseFunction > | elementPolynomialBasePtr |
| Pointer to entity polynomial base. | |
| boost::shared_ptr< BaseFunction > | userPolynomialBasePtr |
| Pointer to user polynomial base. | |
| ForcesAndSourcesCore * | sidePtrFE |
| Element to integrate on the sides. | |
| ForcesAndSourcesCore * | refinePtrFE |
| Element to integrate parent or child. | |
Friends | |
| class | UserDataOperator |
| class | VolumeElementForcesAndSourcesCoreOnSide |
| class | FaceElementForcesAndSourcesCoreOnSide |
| class | FaceElementForcesAndSourcesCoreOnChildParent |
| class | EdgeElementForcesAndSourcesCoreOnChildParent |
| class | VolumeElementForcesAndSourcesCoreOnContactPrismSide |
| template<int DIM> | |
| struct | OpCopyGeomDataToE |
| template<typename E > | |
| struct | OpBrokenLoopSide |
Additional Inherited Members | |
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. | |
structure to get information from mofem into EntitiesFieldData
Definition at line 73 of file ForcesAndSourcesCore.hpp.
| typedef boost::function<MoFEMErrorCode(ForcesAndSourcesCore *fe_raw_ptr, int order_row, int order_col, int order_data)> MoFEM::ForcesAndSourcesCore::GaussHookFun |
Definition at line 84 of file ForcesAndSourcesCore.hpp.
| typedef boost::function<int(int order_row, int order_col, int order_data)> MoFEM::ForcesAndSourcesCore::RuleHookFun |
Definition at line 79 of file ForcesAndSourcesCore.hpp.
| MoFEM::ForcesAndSourcesCore::ForcesAndSourcesCore | ( | Interface & | m_field | ) |
Definition at line 40 of file ForcesAndSourcesCore.cpp.
|
protected |
Calculate Bernstein-Bezier base.
Definition at line 1131 of file ForcesAndSourcesCore.cpp.
|
protected |
Calculate base functions.
Use the some node base. Node base is usually used for construction other bases.
Definition at line 1111 of file ForcesAndSourcesCore.cpp.
|
protected |
Calculate base functions.
Definition at line 1048 of file ForcesAndSourcesCore.cpp.
|
protected |
Create a entity data on element object.
Definition at line 1336 of file ForcesAndSourcesCore.cpp.
|
protected |
Get bit ref level in entities, and set it to data
Definition at line 549 of file ForcesAndSourcesCore.cpp.
|
protected |
get col node indices from FENumeredDofEntity_multiIndex
Definition at line 328 of file ForcesAndSourcesCore.cpp.
|
inline |
Get data on entities and space.
Entities data are stored by space, by entity type, and entity side.
Definition at line 207 of file ForcesAndSourcesCore.hpp.
|
inline |
Get derived data on entities and space.
Entities data are stored by space, by entity type, and entity side. Derived data is used to store data on columns, so it shares information about shape functions wih rows.
Definition at line 218 of file ForcesAndSourcesCore.hpp.
|
inline |
Get the Entity Polynomial Base object.
Definition at line 141 of file ForcesAndSourcesCore.hpp.
|
inline |
Get the entity data.
| space | |
| type | |
| side |
Definition at line 195 of file ForcesAndSourcesCore.hpp.
|
protected |
Definition at line 427 of file ForcesAndSourcesCore.cpp.
|
protected |
Get the entity data order.
| type | |
| space | |
| data |
Definition at line 139 of file ForcesAndSourcesCore.cpp.
|
inlineprotected |
Get the entity data order for given space.
| type |
| data | |
| space |
Definition at line 264 of file ForcesAndSourcesCore.hpp.
|
protected |
Definition at line 719 of file ForcesAndSourcesCore.cpp.
|
protected |
Definition at line 345 of file ForcesAndSourcesCore.cpp.
|
protected |
Definition at line 412 of file ForcesAndSourcesCore.cpp.
|
protected |
get sense (orientation) of entity
| type | type of entity |
| data | entity data |
Definition at line 84 of file ForcesAndSourcesCore.cpp.
|
inlineprotected |
Get the entity sense (orientation)
| type |
| data |
Definition at line 251 of file ForcesAndSourcesCore.hpp.
|
protected |
Get nodes on faces.
Definition at line 918 of file ForcesAndSourcesCore.cpp.
| int MoFEM::ForcesAndSourcesCore::getMaxColOrder | ( | ) | const |
Get max order of approximation for field in columns.
Definition at line 135 of file ForcesAndSourcesCore.cpp.
| int MoFEM::ForcesAndSourcesCore::getMaxDataOrder | ( | ) | const |
Get max order of approximation for data fields.
getMaxDataOrder() returns maximal order on entities, for all data on the element. So for example if finite element is triangle, and triangle base function have order 4 and on edges base function have order 2, this function returns 4.
If finite element has for example 2 or more approximated fields, for example Pressure (order 3) and displacement field (order 5), this function returns 5.
Definition at line 120 of file ForcesAndSourcesCore.cpp.
| int MoFEM::ForcesAndSourcesCore::getMaxRowOrder | ( | ) | const |
Get max order of approximation for field in rows.
Definition at line 131 of file ForcesAndSourcesCore.cpp.
|
protected |
Get data on nodes.
| data | Data structure |
| field_name | Field name |
Definition at line 591 of file ForcesAndSourcesCore.cpp.
|
protected |
get node indices
Definition at line 219 of file ForcesAndSourcesCore.cpp.
|
protected |
get col NoField indices
|
protected |
Get field data on entities where no field is defined.
This is not standards, since op_data, dataOnElement[NOFIELD], has to be set for rows and columns for each NOFIELD, also size of sides is not determined.
| data |
param bit_number
Definition at line 806 of file ForcesAndSourcesCore.cpp.
|
protected |
get col NoField indices
|
inline |
Use to push back operator for row operator.
It can be used to calculate nodal forces or other quantities on the mesh.
Definition at line 134 of file ForcesAndSourcesCore.hpp.
|
protected |
Definition at line 533 of file ForcesAndSourcesCore.cpp.
|
protected |
get indices of nodal indices which are declared for problem but not this particular element
Definition at line 444 of file ForcesAndSourcesCore.cpp.
|
protected |
Definition at line 519 of file ForcesAndSourcesCore.cpp.
|
protected |
Definition at line 540 of file ForcesAndSourcesCore.cpp.
|
protected |
get indices by type (generic function) which are declared for problem but not this particular element
Definition at line 485 of file ForcesAndSourcesCore.cpp.
|
protected |
Definition at line 526 of file ForcesAndSourcesCore.cpp.
|
protected |
get row node indices from FENumeredDofEntity_multiIndex
Definition at line 311 of file ForcesAndSourcesCore.cpp.
|
protectedvirtual |
Reimplemented in MoFEM::EdgeElementForcesAndSourcesCoreOnChildParent, MoFEM::FaceElementForcesAndSourcesCoreOnChildParent, MoFEM::FaceElementForcesAndSourcesCoreOnSide, MoFEM::VolumeElementForcesAndSourcesCoreOnContactPrismSide, MoFEM::VolumeElementForcesAndSourcesCoreOnSide, MoFEM::PostProcBrokenMeshInMoabBase< EdgeElementForcesAndSourcesCore >, MoFEM::PostProcBrokenMeshInMoabBase< FaceElementForcesAndSourcesCore >, MoFEM::PostProcBrokenMeshInMoabBase< VolumeElementForcesAndSourcesCore >, SurfaceSlidingConstrains::MyTriangleFE, EdgeSlidingConstrains::MyEdgeFE, MixTransport::MixTransportElement::MyVolumeFE, MixTransport::MixTransportElement::MyTriFE, MagneticElement::VolumeFE, MagneticElement::TriFE, CohesiveElement::CohesiveInterfaceElement::MyPrism, AnalyticalDirichletBC::ApproxField::MyTriFE, BodyForceConstantField::MyVolumeFE, ConvectiveMassElement::MyVolumeFE, EdgeForce::MyFE, FluidPressure::MyTriangleFE, KelvinVoigtDamper::DamperFE, NonlinearElasticElement::MyVolumeFE, PostProcFaceOnRefinedMesh, PostProcEdgeOnRefinedMesh, NeumannForcesSurface::MyTriangleFE, NeumannForcesSurfaceComplexForLazy::MyTriangleSpatialFE, SurfaceSlidingConstrains::MyTriangleFE, EdgeSlidingConstrains::MyEdgeFE, ThermalElement::MyVolumeFE, ThermalElement::MyTriFE, ThermalStressElement::MyVolumeFE, BoneRemodeling::DensityMapFe, and BoneRemodeling::Remodeling::Fe.
Definition at line 2115 of file ForcesAndSourcesCore.cpp.
|
protectedvirtual |
another variant of getRule
| order_row | order of base function on row |
| order_col | order of base function on columns |
| order_data | order of base function approximating data |
This function is overloaded by the user. The integration rule is set such that specific operator implemented by the user is integrated accurately. For example if user implement bilinear operator
\[ b(u,v) = \int_\mathcal{T} \frac{\partial u_i}{\partial x_j}\frac{\partial v_i}{\partial x_j} \textrm{d}\mathcal{T} \]
then if \(u\) and \(v\) are polynomial of given order, then exact integral would be
The integration points and weights are set appropriately for given entity type and integration rule from quad.c
Method ForcesAndSourcesCore::getRule takes at argument takes maximal polynomial order set on the element on all fields defined on the element. If a user likes to have more control, another variant of this function can be called which distinguishing between field orders on rows, columns and data, the i.e. first argument of a bilinear form, the second argument of bilinear form and field coefficients on the element.
Reimplemented in TriFE, QuadFE, and EdgeFE.
Definition at line 2103 of file ForcesAndSourcesCore.cpp.
|
protected |
Get field approximation space and base on entities.
Definition at line 989 of file ForcesAndSourcesCore.cpp.
|
inline |
Get the User Polynomial Base object.
Definition at line 148 of file ForcesAndSourcesCore.hpp.
|
protected |
Iterate user data operators.
Definition at line 1389 of file ForcesAndSourcesCore.cpp.
|
virtual |
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 MoFEM::BasicMethod.
Reimplemented in MoFEM::ContactPrismElementForcesAndSourcesCore, MoFEM::EdgeElementForcesAndSourcesCore, MoFEM::FaceElementForcesAndSourcesCore, MoFEM::FatPrismElementForcesAndSourcesCore, MoFEM::FlatPrismElementForcesAndSourcesCore, MoFEM::VertexElementForcesAndSourcesCore, MoFEM::VolumeElementForcesAndSourcesCore, MoFEM::VolumeElementForcesAndSourcesCoreOnSide, MoFEM::PipelineManager::MeshsetFE, and NeumannForcesSurfaceComplexForLazy::MyTriangleSpatialFE.
Definition at line 2149 of file ForcesAndSourcesCore.cpp.
|
virtual |
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 MoFEM::BasicMethod.
Reimplemented in MoFEM::PipelineManager::MeshsetFE, MoFEM::PostProcBrokenMeshInMoabBase< EdgeElementForcesAndSourcesCore >, MoFEM::PostProcBrokenMeshInMoabBase< FaceElementForcesAndSourcesCore >, MoFEM::PostProcBrokenMeshInMoabBase< VolumeElementForcesAndSourcesCore >, Smoother::MyVolumeFE, ConvectiveMassElement::MyVolumeFE, KelvinVoigtDamper::DamperFE, NonlinearElasticElement::MyVolumeFE, PostProcFatPrismOnRefinedMesh, PostProcFaceOnRefinedMesh, PostProcEdgeOnRefinedMesh, Smoother::MyVolumeFE, and EshelbianPlasticity::ContactTree.
Definition at line 2164 of file ForcesAndSourcesCore.cpp.
|
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 MoFEM::BasicMethod.
Reimplemented in MoFEM::PipelineManager::MeshsetFE, MoFEM::PostProcBrokenMeshInMoabBase< EdgeElementForcesAndSourcesCore >, MoFEM::PostProcBrokenMeshInMoabBase< FaceElementForcesAndSourcesCore >, MoFEM::PostProcBrokenMeshInMoabBase< VolumeElementForcesAndSourcesCore >, Smoother::MyVolumeFE, SurfaceSlidingConstrains::MyTriangleFE, EdgeSlidingConstrains::MyEdgeFE, ConvectiveMassElement::MyVolumeFE, FluidPressure::MyTriangleFE, KelvinVoigtDamper::DamperFE, NonlinearElasticElement::MyVolumeFE, PostProcFatPrismOnRefinedMesh, PostProcFaceOnRefinedMesh, PostProcEdgeOnRefinedMesh, Smoother::MyVolumeFE, NeumannForcesSurfaceComplexForLazy::MyTriangleSpatialFE, SurfaceSlidingConstrains::MyTriangleFE, EdgeSlidingConstrains::MyEdgeFE, and EshelbianPlasticity::ContactTree.
Definition at line 2141 of file ForcesAndSourcesCore.cpp.
|
protectedvirtual |
Reimplemented in MoFEM::EdgeElementForcesAndSourcesCoreOnChildParent, MoFEM::FaceElementForcesAndSourcesCoreOnChildParent, MoFEM::FaceElementForcesAndSourcesCoreOnSide, MoFEM::VolumeElementForcesAndSourcesCoreOnContactPrismSide, MoFEM::VolumeElementForcesAndSourcesCoreOnSide, MoFEM::PostProcBrokenMeshInMoabBase< EdgeElementForcesAndSourcesCore >, MoFEM::PostProcBrokenMeshInMoabBase< FaceElementForcesAndSourcesCore >, MoFEM::PostProcBrokenMeshInMoabBase< VolumeElementForcesAndSourcesCore >, PostProcFaceOnRefinedMesh, and PostProcEdgeOnRefinedMesh.
Definition at line 2119 of file ForcesAndSourcesCore.cpp.
|
protectedvirtual |
set user specific integration rule
This function allows for user defined integration rule. The key is to called matrix gaussPts, which is used by other MoFEM procedures. Matrix has number of rows equal to problem dimension plus one, where last index is used to store weight values. Number of columns is equal to number of integration points.
User sets
where
number rows represents local coordinates of integration points in reference element, where last index in row is for integration weight.
Reimplemented in TriFE, QuadFE, and EdgeFE.
Definition at line 2109 of file ForcesAndSourcesCore.cpp.
|
private |
Set the pointer to face element refined.
| refine_fe_ptr |
Definition at line 1725 of file ForcesAndSourcesCore.cpp.
|
private |
Set the pointer to face element on the side.
| side_fe_ptr |
Definition at line 1719 of file ForcesAndSourcesCore.cpp.
|
friend |
Definition at line 585 of file ForcesAndSourcesCore.hpp.
|
friend |
Definition at line 584 of file ForcesAndSourcesCore.hpp.
|
friend |
Definition at line 583 of file ForcesAndSourcesCore.hpp.
|
friend |
Definition at line 589 of file ForcesAndSourcesCore.hpp.
|
friend |
Definition at line 588 of file ForcesAndSourcesCore.hpp.
|
friend |
Definition at line 530 of file ForcesAndSourcesCore.hpp.
|
friend |
Definition at line 586 of file ForcesAndSourcesCore.hpp.
|
friend |
Definition at line 582 of file ForcesAndSourcesCore.hpp.
|
protected |
coordinated at gauss points
Definition at line 592 of file ForcesAndSourcesCore.hpp.
|
protected |
Definition at line 519 of file ForcesAndSourcesCore.hpp.
|
protected |
Definition at line 520 of file ForcesAndSourcesCore.hpp.
|
protected |
Definition at line 521 of file ForcesAndSourcesCore.hpp.
|
protected |
Definition at line 522 of file ForcesAndSourcesCore.hpp.
|
protected |
Definition at line 518 of file ForcesAndSourcesCore.hpp.
|
protected |
Entity data on element entity rows fields.
Definition at line 509 of file ForcesAndSourcesCore.hpp.
|
protected |
Entity data on element entity columns fields.
Definition at line 516 of file ForcesAndSourcesCore.hpp.
|
protected |
Depending on dimension of elements, stores length, area or volume of element.
Definition at line 593 of file ForcesAndSourcesCore.hpp.
|
private |
Pointer to entity polynomial base.
Definition at line 544 of file ForcesAndSourcesCore.hpp.
| MatrixDouble MoFEM::ForcesAndSourcesCore::gaussPts |
Matrix of integration points.
Columns is equal to number of integration points, numver of rows depends on dimension of finite element entity, for example for tetrahedron rows are x,y,z,weight. Last row is integration weight.
FIXME: that should be moved to private class data and acessed only by member function
Definition at line 160 of file ForcesAndSourcesCore.hpp.
| RuleHookFun MoFEM::ForcesAndSourcesCore::getRuleHook |
Hook to get rule.
Definition at line 93 of file ForcesAndSourcesCore.hpp.
|
protected |
Last evaluated type of element entity.
Definition at line 537 of file ForcesAndSourcesCore.hpp.
| Interface& MoFEM::ForcesAndSourcesCore::mField |
Definition at line 75 of file ForcesAndSourcesCore.hpp.
|
protected |
Vector of finite element users data operators.
Definition at line 528 of file ForcesAndSourcesCore.hpp.
|
private |
| GaussHookFun MoFEM::ForcesAndSourcesCore::setRuleHook |
Set function to calculate integration rule.
Definition at line 99 of file ForcesAndSourcesCore.hpp.
|
private |
Element to integrate on the sides.
Definition at line 555 of file ForcesAndSourcesCore.hpp.
|
private |
Pointer to user polynomial base.
Definition at line 549 of file ForcesAndSourcesCore.hpp.