v0.14.0
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
MoFEM Namespace Reference

implementation of Data Operators for Forces and Sources More...

Namespaces

 BcManagerImplTools
 
 DemkowiczHexAndQuad
 
 Exceptions
 Exceptions and handling errors data structures.
 
 IntRules
 
 LogKeywords
 
 Types
 Types.
 

Classes

struct  AccelerationCubitBcData
 Definition of the acceleration bc data structure. More...
 
struct  AddEssentialToLhsPipelineImpl
 Function (factory) for setting operators for lhs pipeline. More...
 
struct  AddEssentialToLhsPipelineImpl< OpEssentialLhsImpl< DisplacementCubitBcData, BASE_DIM, FIELD_DIM, A, I, OpBase >, A, I, OpBase >
 
struct  AddEssentialToLhsPipelineImpl< OpEssentialLhsImpl< HeatFluxCubitBcData, BASE_DIM, FIELD_DIM, A, I, OpBase >, A, I, OpBase >
 
struct  AddEssentialToLhsPipelineImpl< OpEssentialLhsImpl< MPCsType, BASE_DIM, FIELD_DIM, A, I, OpBase >, A, I, OpBase >
 
struct  AddEssentialToRhsPipelineImpl
 Function (factory) for setting operators for rhs pipeline. More...
 
struct  AddEssentialToRhsPipelineImpl< OpEssentialRhsImpl< DisplacementCubitBcData, BASE_DIM, FIELD_DIM, A, I, OpBase >, A, I, OpBase >
 
struct  AddEssentialToRhsPipelineImpl< OpEssentialRhsImpl< HeatFluxCubitBcData, BASE_DIM, FIELD_DIM, A, I, OpBase >, A, I, OpBase >
 
struct  AddEssentialToRhsPipelineImpl< OpEssentialRhsImpl< MPCsType, BASE_DIM, FIELD_DIM, A, I, OpBase >, A, I, OpBase >
 
struct  AddFluxToLhsPipelineImpl
 
struct  AddFluxToRhsPipelineImpl
 
struct  AddFluxToRhsPipelineImpl< MoFEM::OpFluxRhsImpl< ThermoElasticOps::SetTargetTemperature, 1, 1, A, I, OpBase >, A, I, OpBase >
 
struct  AddFluxToRhsPipelineImpl< OpFluxRhsImpl< NaturalForceMeshsets, BASE_DIM, FIELD_DIM, A, I, OpBase >, A, I, OpBase >
 
struct  AddFluxToRhsPipelineImpl< OpFluxRhsImpl< NaturalForceMeshsetsScalarAndVectorScaling, BASE_DIM, FIELD_DIM, A, I, OpBase >, A, I, OpBase >
 
struct  AddFluxToRhsPipelineImpl< OpFluxRhsImpl< NaturalMeshsetType< BCTYPE >, BASE_DIM, FIELD_DIM, A, I, OpBase >, A, I, OpBase >
 
struct  AddFluxToRhsPipelineImpl< OpFluxRhsImpl< NaturalMeshsetTypeVectorScaling< BCTYPE >, BASE_DIM, FIELD_DIM, A, I, OpBase >, A, I, OpBase >
 
struct  AddFluxToRhsPipelineImpl< OpFluxRhsImpl< NaturalTemperatureMeshsets, BASE_DIM, FIELD_DIM, A, I, OpBase >, A, I, OpBase >
 
struct  AddHOOps
 Add operators pushing bases from local to physical configuration. More...
 
struct  AddHOOps< 1, 2, 2 >
 
struct  AddHOOps< 1, 3, 3 >
 
struct  AddHOOps< 2, 2, 2 >
 
struct  AddHOOps< 2, 2, 3 >
 
struct  AddHOOps< 2, 3, 3 >
 
struct  AddHOOps< 3, 3, 3 >
 
struct  AinsworthOrderHooks
 Broken base Ainsworth subentries order change hooks. More...
 
struct  AssemblyTypeSelector
 
struct  BaseFunction
 Base class if inherited used to calculate base functions. More...
 
struct  BaseFunctionCtx
 Base class used to exchange data between element data structures and class calculating base functions. More...
 
struct  BaseFunctionUnknownInterface
 
struct  BasicEntityData
 PipelineManager data. like access to moab interface and basic tag handlers. More...
 
struct  BasicMethod
 Data structure to exchange data between mofem and User Loop Methods. More...
 
struct  BasicMethodPtr
 
struct  BcDisplacementMeshsetType
 
struct  BcFluxMeshsetType
 
struct  BcForceMeshsetType
 
struct  BcManager
 Simple interface for fast problem set-up. More...
 
struct  BcMeshsetType
 
struct  BcScalarMeshsetType
 
struct  BernsteinBezier
 Evaluating BB polynomial. More...
 
struct  BitFEId_mi_tag
 
struct  BitFieldId_mi_tag
 
struct  BitFieldId_space_mi_tag
 
struct  BitProblemId_mi_tag
 
struct  BitRefManager
 Managing BitRefLevels. More...
 
struct  Block_BodyForces
 Body force data structure. More...
 
struct  BlockData
 
struct  BlockSetAttributes
 Arbitrary block attributes data structure. More...
 
struct  BlockStructure
 
struct  BrokenBaseSideData
 
struct  CfgCubitBcData
 Definition of the cfd_bc data structure. More...
 
struct  CommInterface
 Managing BitRefLevels. More...
 
struct  ComposedProblemsData
 
struct  Composite_Cubit_msId_And_MeshsetType_mi_tag
 
struct  Composite_Ent_And_EntDofIdx_mi_tag
 
struct  Composite_Ent_and_ShortId_mi_tag
 
struct  Composite_Ent_Order_And_CoeffIdx_mi_tag
 
struct  Composite_EntType_and_ParentEntType_mi_tag
 
struct  Composite_EntType_and_Space_mi_tag
 
struct  Composite_mi_tag
 
struct  Composite_Name_And_Ent_And_EntDofIdx_mi_tag
 
struct  Composite_Name_And_Ent_mi_tag
 
struct  Composite_Name_And_Part_mi_tag
 
struct  Composite_Name_Ent_And_Part_mi_tag
 
struct  Composite_Name_Ent_Order_And_CoeffIdx_mi_tag
 
struct  Composite_ParentEnt_And_BitsOfRefinedEdges_mi_tag
 
struct  Composite_ParentEnt_And_EntType_mi_tag
 
struct  Composite_Part_And_Order_mi_tag
 
struct  Composite_SeriesID_And_Step_mi_tag
 
struct  Composite_SeriesName_And_Step_mi_tag
 
struct  Composite_SeriesName_And_Time_mi_tag
 
struct  Composite_Unique_mi_tag
 
struct  ContactPrismElementForcesAndSourcesCore
 ContactPrism finite element. More...
 
struct  CoreInterface
 Interface. More...
 
struct  CoreTmp
 
struct  CoreTmp< 0 >
 Core (interface) class. More...
 
struct  CoreTmp<-1 >
 
struct  CoreValue
 
struct  CreateRowCompressedADJMatrix
 Create compressed matrix. More...
 
struct  CubitMeshsetMaskedType_mi_tag
 
struct  CubitMeshSets
 this struct keeps basic methods for moab meshset about material and boundary conditions More...
 
struct  CubitMeshSets_change_add_bit_to_cubit_bc_type
 change meshset type More...
 
struct  CubitMeshSets_change_attributes
 
struct  CubitMeshSets_change_attributes_data_structure
 
struct  CubitMeshSets_change_bc_data_structure
 
struct  CubitMeshSets_change_name
 change meshset name More...
 
struct  CubitMeshsets_name
 
struct  CubitMeshsetType_mi_tag
 MultiIndex Tag for field id. More...
 
struct  CutMeshInterface
 Interface to cut meshes. More...
 
struct  DataOperator
 base operator to do operations at Gauss Pt. level More...
 
struct  DefaultElementAdjacency
 default adjacency map More...
 
struct  DeprecatedCoreInterface
 Deprecated interface functions. More...
 
struct  DerivedEntitiesFieldData
 this class derive data form other data structure More...
 
struct  DeterminantTensorImpl
 
struct  DeterminantTensorImpl< T, 2 >
 
struct  DeterminantTensorImpl< T, 3 >
 
struct  DiagBlockIndex
 
struct  DisplacementCubitBcData
 Definition of the displacement bc data structure. More...
 
struct  DisplacementCubitBcDataWithRotation
 A specialized version of DisplacementCubitBcData that includes an additional rotation offset. More...
 
struct  DMCtx
 PETSc Discrete Manager data structure. More...
 
struct  DMCtxImpl
 
struct  DMMGViaApproxOrdersCtx
 Structure for DM for multi-grid via approximation orders. More...
 
struct  DOF_Unique_mi_tag
 
struct  DofEntity
 keeps information about DOF on the entity More...
 
struct  DofEntity_active_change
 
struct  DofMethod
 Data structure to exchange data between mofem and User Loop Methods on entities. More...
 
struct  EdgeElementForcesAndSourcesCore
 Edge finite element. More...
 
struct  EdgeElementForcesAndSourcesCoreOnChildParent
 Base face element used to integrate on skeleton. More...
 
struct  EdgePolynomialBase
 Calculate base functions on tetrahedral. More...
 
struct  Ent_Ent_mi_tag
 
struct  Ent_FiniteElement_mi_tag
 
struct  Ent_mi_tag
 
struct  Ent_Owner_mi_tag
 
struct  Ent_ParallelStatus
 
struct  EntDofIdx_mi_tag
 
struct  EntFiniteElement
 Finite element data for entity. More...
 
struct  EntitiesFieldData
 data structure for finite element entity More...
 
struct  EntityCacheDofs
 
struct  EntityCacheNumeredDofs
 
struct  EntityMethod
 Data structure to exchange data between mofem and User Loop Methods on entities. More...
 
struct  EntityStorage
 
struct  EntPolynomialBaseCtx
 Class used to pass element data to calculate base functions on tet,triangle,edge. More...
 
struct  EntType_mi_tag
 
struct  EqBit
 
struct  EssentialBC
 Essential boundary conditions. More...
 
struct  EssentialBcStorage
 [Storage and set boundary conditions] More...
 
struct  EssentialPostProcLhs
 Class (Function) to enforce essential constrains on the left hand side diagonal. More...
 
struct  EssentialPostProcLhs< DisplacementCubitBcData >
 Specialization for DisplacementCubitBcData. More...
 
struct  EssentialPostProcLhs< MPCsType >
 Specialization for MPCsType. More...
 
struct  EssentialPostProcRhs
 Class (Function) to enforce essential constrains on the right hand side diagonal. More...
 
struct  EssentialPostProcRhs< DisplacementCubitBcData >
 Specialization for DisplacementCubitBcData. More...
 
struct  EssentialPostProcRhs< MPCsType >
 Specialization for DisplacementCubitBcData. More...
 
struct  EssentialPreProc
 Class (Function) to enforce essential constrains. More...
 
struct  EssentialPreProc< DisplacementCubitBcData >
 Specialization for DisplacementCubitBcData. More...
 
struct  EssentialPreProc< MPCsType >
 Type generating multipoint constraints. More...
 
struct  EssentialPreProc< TemperatureCubitBcData >
 Specialization for TemperatureCubitBcData. More...
 
struct  EssentialPreProcReaction
 Class (Function) to calculate residual side diagonal. More...
 
struct  EssentialPreProcReaction< DisplacementCubitBcData >
 Specialization for DisplacementCubitBcData. More...
 
struct  FaceElementForcesAndSourcesCore
 Face finite element. More...
 
struct  FaceElementForcesAndSourcesCoreOnChildParent
 Base face element used to integrate on skeleton. More...
 
struct  FaceElementForcesAndSourcesCoreOnChildParentSwitch
 
struct  FaceElementForcesAndSourcesCoreOnSide
 Base face element used to integrate on skeleton. More...
 
struct  FaceElementForcesAndSourcesCoreOnSideSwitch
 
struct  FatPrismElementForcesAndSourcesCore
 FatPrism finite element. More...
 
struct  FatPrismPolynomialBase
 Calculate base functions on tetrahedral. More...
 
struct  FatPrismPolynomialBaseCtx
 Class used to pass element data to calculate base functions on fat prism. More...
 
struct  FE_Unique_mi_tag
 
struct  FEDofEntity
 keeps information about indexed dofs for the finite element More...
 
struct  FEEnt_mi_tag
 
struct  FEMethod
 structure for User Loop Methods on finite elements More...
 
struct  FENumeredDofEntity
 keeps information about indexed dofs for the finite element More...
 
struct  Field
 Provide data structure for (tensor) field approximation. More...
 
struct  FieldBlas
 Basic algebra on fields. More...
 
struct  FieldEntity
 Struct keeps handle to entity in the field. More...
 
struct  FieldEntity_change_order
 structure to change FieldEntity order More...
 
struct  FieldEntityEntFiniteElementAdjacencyMap
 FieldEntityEntFiniteElementAdjacencyMap of mofem finite element and entities. More...
 
struct  FieldEntityEntFiniteElementAdjacencyMap_change_ByWhat
 
struct  FieldEvaluatorInterface
 Field evaluator interface. More...
 
struct  FieldName_mi_tag
 MultiIndex Tag for field name. More...
 
struct  FieldSeries
 Structure for recording (time) series. More...
 
struct  FieldSeriesStep
 Structure for keeping time and step. More...
 
struct  FiniteElement
 Finite element definition. More...
 
struct  FiniteElement_change_bit_add
 Add field to data. More...
 
struct  FiniteElement_change_bit_off
 Unset field from data. More...
 
struct  FiniteElement_change_bit_reset
 Reset field from data. More...
 
struct  FiniteElement_col_change_bit_add
 Add field to column. More...
 
struct  FiniteElement_col_change_bit_off
 Unset field from column. More...
 
struct  FiniteElement_col_change_bit_reset
 Reset field from column. More...
 
struct  FiniteElement_Meshset_mi_tag
 
struct  FiniteElement_name_mi_tag
 
struct  FiniteElement_row_change_bit_add
 Add field to row. More...
 
struct  FiniteElement_row_change_bit_off
 Unset field from row. More...
 
struct  FiniteElement_row_change_bit_reset
 Reset field from row. More...
 
struct  FlatPrismElementForcesAndSourcesCore
 FlatPrism finite element. More...
 
struct  FlatPrismPolynomialBase
 Calculate base functions on tetrahedral. More...
 
struct  FlatPrismPolynomialBaseCtx
 Class used to pass element data to calculate base functions on flat prism. More...
 
struct  FluxOpType
 Wrapper to generate natural b.c. specialisation based on operator type. More...
 
struct  ForceCubitBcData
 Definition of the force bc data structure. More...
 
struct  ForcesAndSourcesCore
 structure to get information form mofem into EntitiesFieldData More...
 
struct  FormsIntegrators
 Integrator forms. More...
 
struct  GenericAttributeData
 Generic attribute data structure. More...
 
struct  GenericCubitBcData
 Generic bc data structure. More...
 
struct  GetFTensor0FromVecImpl
 
struct  GetFTensor1FromArray
 
struct  GetFTensor1FromArray< 1, S >
 
struct  GetFTensor1FromArray< 2, S >
 
struct  GetFTensor1FromArray< 3, S >
 
struct  GetFTensor1FromArray< 4, S >
 
struct  GetFTensor1FromArray< 6, S >
 
struct  GetFTensor1FromArray< 9, S >
 
struct  GetFTensor1FromMatImpl
 
struct  GetFTensor1FromMatImpl< 1, S, T, ublas::row_major, A >
 
struct  GetFTensor1FromMatImpl< 2, S, T, ublas::row_major, A >
 
struct  GetFTensor1FromMatImpl< 3, S, T, ublas::row_major, A >
 
struct  GetFTensor1FromMatImpl< 4, S, T, ublas::row_major, A >
 
struct  GetFTensor1FromMatImpl< 6, S, T, ublas::row_major, A >
 
struct  GetFTensor1FromMatImpl< 9, S, T, ublas::row_major, A >
 
struct  GetFTensor1FromPtrImpl
 
struct  GetFTensor1FromPtrImpl< 1, S, T >
 
struct  GetFTensor1FromPtrImpl< 2, S, T >
 
struct  GetFTensor1FromPtrImpl< 3, S, T >
 
struct  GetFTensor1FromPtrImpl< 4, S, T >
 
struct  GetFTensor1FromPtrImpl< 6, S, T >
 
struct  GetFTensor2FromArrayImpl
 Get FTensor2 from array. More...
 
struct  GetFTensor2FromArrayImpl< 2, 2, S, T, L, A >
 
struct  GetFTensor2FromArrayImpl< 3, 3, S, T, L, A >
 
struct  GetFTensor2FromArrayRawPtrImpl
 
struct  GetFTensor2FromArrayRawPtrImpl< 2, 2, T, L, A >
 
struct  GetFTensor2FromArrayRawPtrImpl< 3, 3, T, L, A >
 
struct  GetFTensor2FromMatImpl
 
struct  GetFTensor2FromPtr
 
struct  GetFTensor2FromPtr< 1, 1, S, T >
 
struct  GetFTensor2FromPtr< 1, 2, S, T >
 
struct  GetFTensor2FromPtr< 1, 3, S, T >
 
struct  GetFTensor2FromPtr< 2, 2, S, T >
 
struct  GetFTensor2FromPtr< 3, 2, S, T >
 
struct  GetFTensor2FromPtr< 3, 3, S, T >
 
struct  GetFTensor2FromPtr< 6, 6, S, T >
 
struct  GetFTensor2SymmetricFromMatImpl
 
struct  GetFTensor2SymmetricFromMatImpl< 2, S, T, L, A >
 
struct  GetFTensor2SymmetricFromMatImpl< 3, S, T, L, A >
 
struct  GetFTensor3DgFromMatImpl
 
struct  GetFTensor3DgFromMatImpl< 1, 1, S, T, ublas::row_major, A >
 
struct  GetFTensor3DgFromMatImpl< 2, 2, S, T, ublas::row_major, A >
 
struct  GetFTensor3DgFromMatImpl< 3, 3, S, T, ublas::row_major, A >
 
struct  GetFTensor3FromMatImpl
 
struct  GetFTensor3FromMatImpl< 1, 1, 1, S, T, ublas::row_major, A >
 
struct  GetFTensor3FromMatImpl< 2, 2, 2, S, T, ublas::row_major, A >
 
struct  GetFTensor3FromMatImpl< 2, 2, 3, S, T, ublas::row_major, A >
 
struct  GetFTensor3FromMatImpl< 3, 2, 2, S, T, ublas::row_major, A >
 
struct  GetFTensor3FromMatImpl< 3, 3, 3, S, T, ublas::row_major, A >
 
struct  GetFTensor3FromMatImpl< 3, 3, 6, S, T, ublas::row_major, A >
 
struct  GetFTensor3FromMatImpl< 6, 3, 3, S, T, ublas::row_major, A >
 
struct  GetFTensor4DdgFromMatImpl
 
struct  GetFTensor4DdgFromMatImpl< 1, 1, S, T, ublas::row_major, A >
 
struct  GetFTensor4DdgFromMatImpl< 2, 2, S, T, ublas::row_major, A >
 
struct  GetFTensor4DdgFromMatImpl< 3, 3, S, T, ublas::row_major, A >
 
struct  GetFTensor4DdgFromPtrImpl
 
struct  GetFTensor4DdgFromPtrImpl< 3, 3, S, T >
 
struct  GetFTensor4FromMatImpl
 
struct  GetFTensor4FromMatImpl< 1, 1, 1, 1, S, T, ublas::row_major, A >
 
struct  GetFTensor4FromMatImpl< 2, 2, 2, 2, S, T, ublas::row_major, A >
 
struct  GetFTensor4FromMatImpl< 3, 3, 3, 3, S, T, ublas::row_major, A >
 
struct  HashBit
 
struct  HeatFluxCubitBcData
 Definition of the heat flux bc data structure. More...
 
struct  HexPolynomialBase
 Calculate base functions on tetrahedral. More...
 
struct  Idx_mi_tag
 
struct  IdxDataType
 
struct  IdxDataTypePtr
 
struct  IntegratedJacobiPolynomial
 
struct  IntegratedJacobiPolynomialCtx
 
struct  interface_DofEntity
 Interface to DofEntity. More...
 
struct  interface_EntFiniteElement
 interface to EntFiniteElement More...
 
struct  interface_Field
 
struct  interface_Field< T, T >
 
struct  interface_FieldEntity
 Interface to FieldEntity. More...
 
struct  interface_FieldImpl
 Pointer interface for MoFEM::Field. More...
 
struct  interface_FieldSeries
 
struct  interface_FiniteElement
 
struct  interface_FiniteElement< T, T >
 
struct  interface_FiniteElementImpl
 Inetface for FE. More...
 
struct  interface_RefElement
 intrface to RefElement More...
 
struct  interface_RefEntity
 interface to RefEntity More...
 
struct  InvertTensorImpl
 
struct  InvertTensorImpl< T1, T2, T3, 2 >
 
struct  InvertTensorImpl< T1, T2, T3, 3 >
 
struct  ISManager
 Section manager is used to create indexes and sections. More...
 
struct  JacobiPolynomial
 Calculating Legendre base functions. More...
 
struct  JacobiPolynomialCtx
 Class used to give arguments to Legendre base functions. More...
 
struct  KernelLobattoPolynomial
 Calculating Lobatto base functions. More...
 
struct  KernelLobattoPolynomialCtx
 Class used to give arguments to Kernel Lobatto base functions. More...
 
struct  KeyFromKey
 
struct  KspCtx
 Interface for linear (KSP) solver. More...
 
struct  KspMethod
 data structure for ksp (linear solver) context More...
 
struct  LegendrePolynomial
 Calculating Legendre base functions. More...
 
struct  LegendrePolynomialCtx
 Class used to give arguments to Legendre base functions. More...
 
struct  LobattoPolynomial
 Calculating Lobatto base functions. More...
 
struct  LobattoPolynomialCtx
 Class used to give arguments to Lobatto base functions. More...
 
struct  LogManager
 Log manager is used to build and partition problems. More...
 
struct  LtBit
 
struct  Mat_Elastic
 Elastic material data structure. More...
 
struct  Mat_Elastic_EberleinHolzapfel1
 Mat_Elastic with Fibres. More...
 
struct  Mat_Elastic_TransIso
 Transverse Isotropic material data structure. More...
 
struct  Mat_Interf
 Linear interface data structure. More...
 
struct  Mat_Moisture
 moisture transport material data structure More...
 
struct  Mat_Thermal
 Thermal material data structure. More...
 
struct  MatrixManager
 Matrix manager is used to build and partition problems. More...
 
struct  MedInterface
 Interface for load MED files. More...
 
struct  MeshRefinement
 Mesh refinement interface. More...
 
struct  Meshset_mi_tag
 
struct  MeshsetsManager
 Interface for managing meshsets containing materials and boundary conditions. More...
 
struct  Modify_change_nothing
 Do nothing, used to rebuild database. More...
 
struct  MPCsType
 
struct  NaturalBC
 Natural boundary conditions. More...
 
struct  NaturalForceMeshsets
 Type generating specialisation for force meshsets. More...
 
struct  NaturalForceMeshsetsScalarAndVectorScaling
 Type generating specialisation for force meshsets. More...
 
struct  NaturalMeshsetType
 Type generating natural b.c. specialisations for meshsets. More...
 
struct  NaturalMeshsetTypeVectorScaling
 
struct  NaturalTemperatureMeshsets
 Type generating specialisation for temperature meshsets. More...
 
struct  NodeMergerInterface
 Merge node by collapsing edge between them. More...
 
struct  NumeredDofEntity
 keeps information about indexed dofs for the problem More...
 
struct  NumeredDofEntity_local_idx_change
 
struct  NumeredDofEntity_mofem_index_change
 
struct  NumeredDofEntity_part_and_all_indices_change
 
struct  NumeredDofEntity_part_and_glob_idx_change
 
struct  NumeredDofEntity_part_and_indices_change
 
struct  NumeredDofEntity_part_and_mofem_glob_idx_change
 
struct  NumeredEntFiniteElement
 Partitioned (Indexed) Finite Element in Problem. More...
 
struct  NumeredEntFiniteElement_change_part
 Change finite element part. More...
 
struct  OpAddParentEntData
 Operator to project base functions from parent entity to child. More...
 
struct  OpBaseDerivativesBase
 
struct  OpBaseDerivativesMass
 
struct  OpBaseDerivativesMass< 1 >
 
struct  OpBaseDerivativesMass< 3 >
 
struct  OpBaseDerivativesNext
 
struct  OpBaseDerivativesNext< 1 >
 Specialisation for calculate derivatives for scalar base functions. More...
 
struct  OpBaseDerivativesNext< 3 >
 Specialisation for calculate derivatives for scalar base functions. More...
 
struct  OpBaseDerivativesSetHOInvJacobian
 
struct  OpBaseDerivativesSetHOInvJacobian< 2 >
 
struct  OpBaseImpl
 
struct  OpBaseTimesScalarImpl
 
struct  OpBaseTimesScalarImpl< 1, S, GAUSS, OpBase >
 
struct  OpBaseTimesVectorImpl
 
struct  OpBaseTimesVectorImpl< 1, FIELD_DIM, S, GAUSS, OpBase >
 
struct  OpBaseTimesVectorImpl< 3, FIELD_DIM, S, GAUSS, OpBase >
 
struct  OpBrokenBaseImpl
 
struct  OpBrokenLoopSide
 
struct  OpBrokenSpaceConstrainDFluxImpl
 
struct  OpBrokenSpaceConstrainDFluxImpl< FIELD_DIM, GAUSS, OpBrokenBase >
 
struct  OpBrokenSpaceConstrainDHybridImpl
 
struct  OpBrokenSpaceConstrainDHybridImpl< FIELD_DIM, GAUSS, OpBase >
 
struct  OpBrokenSpaceConstrainImpl
 
struct  OpBrokenSpaceConstrainImpl< FIELD_DIM, GAUSS, OpBrokenBase >
 
struct  OpCalcNormL2Tensor0
 Get norm of input VectorDouble for Tensor0. More...
 
struct  OpCalcNormL2Tensor1
 Get norm of input MatrixDouble for Tensor1. More...
 
struct  OpCalcNormL2Tensor2
 Get norm of input MatrixDouble for Tensor2. More...
 
struct  OpCalculateDivergenceVectorFieldValues
 Calculate field values (template specialization) for tensor field rank 1, i.e. vector field. More...
 
struct  OpCalculateHcurlVectorCurl
 Calculate curl of vector field. More...
 
struct  OpCalculateHcurlVectorCurl< 1, 2 >
 Calculate curl of vector field. More...
 
struct  OpCalculateHcurlVectorCurl< 1, 3 >
 Calculate curl of vector field. More...
 
struct  OpCalculateHcurlVectorCurl< 3, 3 >
 Calculate curl of vector field. More...
 
struct  OpCalculateHdivVectorDivergence
 Calculate divergence of vector field. More...
 
struct  OpCalculateHdivVectorDivergenceDot
 Calculate divergence of vector field dot. More...
 
struct  OpCalculateHOCoords
 Calculate HO coordinates at gauss points. More...
 
struct  OpCalculateHOJac
 
struct  OpCalculateHOJac< 2 >
 
struct  OpCalculateHOJac< 3 >
 
struct  OpCalculateHOJacForFaceImpl
 Calculate jacobian for face element. More...
 
struct  OpCalculateHOJacForFaceImpl< 2 >
 
struct  OpCalculateHOJacForFaceImpl< 3 >
 
struct  OpCalculateHOJacForVolume
 Calculate jacobian on Hex or other volume which is not simplex. More...
 
struct  OpCalculateHTensorTensorField
 Calculate tenor field using tensor base, i.e. Hdiv/Hcurl. More...
 
struct  OpCalculateHVecTensorDivergence
 Calculate divergence of tonsorial field using vectorial base. More...
 
struct  OpCalculateHVecTensorField
 Calculate tenor field using vectorial base, i.e. Hdiv/Hcurl. More...
 
struct  OpCalculateHVecTensorTrace
 Calculate trace of vector (Hdiv/Hcurl) space. More...
 
struct  OpCalculateHVecVectorField
 Get vector field for H-div approximation. More...
 
struct  OpCalculateHVecVectorField_General
 Get vector field for H-div approximation. More...
 
struct  OpCalculateHVecVectorField_General< 3, Field_Dim, double, ublas::row_major, DoubleAllocator >
 Get vector field for H-div approximation. More...
 
struct  OpCalculateHVecVectorFieldDot
 Get vector field for H-div approximation. More...
 
struct  OpCalculateHVecVectorFieldDot< 3, Field_Dim >
 
struct  OpCalculateHVecVectorGradient
 Calculate gradient of vector field. More...
 
struct  OpCalculateHVecVectorHessian
 Calculate gradient of vector field. More...
 
struct  OpCalculateInvJacForFatPrism
 Calculate inverse of jacobian for face element. More...
 
struct  OpCalculateInvJacForFlatPrism
 Calculate inverse of jacobian for face element. More...
 
struct  OpCalculateScalarFieldGradient
 Get field gradients at integration pts for scalar filed rank 0, i.e. vector field. More...
 
struct  OpCalculateScalarFieldGradient_General
 Evaluate field gradient values for scalar field, i.e. gradient is tensor rank 1 (vector) More...
 
struct  OpCalculateScalarFieldGradient_General< Tensor_Dim, double, ublas::row_major, DoubleAllocator >
 Evaluate field gradient values for scalar field, i.e. gradient is tensor rank 1 (vector), specialization. More...
 
struct  OpCalculateScalarFieldHessian
 Evaluate field gradient values for scalar field, i.e. gradient is tensor rank 1 (vector), specialization. More...
 
struct  OpCalculateScalarFieldValues
 Get value at integration points for scalar field. More...
 
struct  OpCalculateScalarFieldValues_General
 Scalar field values at integration points. More...
 
struct  OpCalculateScalarFieldValuesFromPetscVecImpl
 Get rate of scalar field at integration points. More...
 
struct  OpCalculateTensor2FieldValues
 Get values at integration pts for tensor filed rank 2, i.e. matrix field. More...
 
struct  OpCalculateTensor2FieldValues_General
 Calculate field values for tenor field rank 2. More...
 
struct  OpCalculateTensor2FieldValues_General< Tensor_Dim0, Tensor_Dim1, double, ublas::row_major, DoubleAllocator >
 
struct  OpCalculateTensor2FieldValuesDot
 Get time direvarive values at integration pts for tensor filed rank 2, i.e. matrix field. More...
 
struct  OpCalculateTensor2SymmetricFieldGradient
 Get field gradients at integration pts for symmetric tensorial field rank 2. More...
 
struct  OpCalculateTensor2SymmetricFieldGradient_General
 Evaluate field gradient values for symmetric 2nd order tensor field, i.e. gradient is tensor rank 3. More...
 
struct  OpCalculateTensor2SymmetricFieldGradient_General< Tensor_Dim0, Tensor_Dim1, double, ublas::row_major, DoubleAllocator >
 
struct  OpCalculateTensor2SymmetricFieldValues
 Calculate symmetric tensor field values at integration pts. More...
 
struct  OpCalculateTensor2SymmetricFieldValuesDot
 Calculate symmetric tensor field rates ant integratio pts. More...
 
struct  OpCalculateTraceFromMat
 Calculates the trace of an input matrix. More...
 
struct  OpCalculateTraceFromSymmMat
 Calculates the trace of an input matrix. More...
 
struct  OpCalculateVectorFieldGradient
 Get field gradients at integration pts for scalar filed rank 0, i.e. vector field. More...
 
struct  OpCalculateVectorFieldGradient_General
 Evaluate field gradient values for vector field, i.e. gradient is tensor rank 2. More...
 
struct  OpCalculateVectorFieldGradient_General< Tensor_Dim0, Tensor_Dim1, double, ublas::row_major, DoubleAllocator >
 
struct  OpCalculateVectorFieldGradientDot
 Get field gradients time derivative at integration pts for scalar filed rank 0, i.e. vector field. More...
 
struct  OpCalculateVectorFieldHessian
 
struct  OpCalculateVectorFieldValues
 Get values at integration pts for tensor filed rank 1, i.e. vector field. More...
 
struct  OpCalculateVectorFieldValues_General
 Calculate field values for tenor field rank 1, i.e. vector field. More...
 
struct  OpCalculateVectorFieldValues_General< Tensor_Dim, double, ublas::row_major, DoubleAllocator >
 Calculate field values (template specialization) for tensor field rank 1, i.e. vector field. More...
 
struct  OpCalculateVectorFieldValuesFromPetscVecImpl
 Approximate field values for given petsc vector. More...
 
struct  OpConvectiveTermLhsDuImpl
 
struct  OpConvectiveTermLhsDuImpl< 1, 1, SPACE_DIM, GAUSS, OpBase >
 
struct  OpConvectiveTermLhsDuImpl< 1, FIELD_DIM, SPACE_DIM, GAUSS, OpBase >
 
struct  OpConvectiveTermLhsDyImpl
 
struct  OpConvectiveTermLhsDyImpl< 1, 1, SPACE_DIM, GAUSS, OpBase >
 
struct  OpConvectiveTermLhsDyImpl< 1, FIELD_DIM, SPACE_DIM, GAUSS, OpBase >
 
struct  OpConvectiveTermRhsImpl
 
struct  OpConvectiveTermRhsImpl< 1, 1, SPACE_DIM, GAUSS, OpBase >
 
struct  OpConvectiveTermRhsImpl< 1, FIELD_DIM, SPACE_DIM, GAUSS, OpBase >
 
struct  OpCopyGeomDataToE
 Copy geometry-related data from one element to other. More...
 
struct  OpCopyGeomDataToE< 2 >
 Copy geometry-related data from one element to other. More...
 
struct  OpDGProjectionCoefficients
 
struct  OpDGProjectionEvaluation
 
struct  OpDGProjectionMassMatrix
 
struct  OperatorsTester
 Calculate directional derivative of the right hand side and compare it with tangent matrix derivative. More...
 
struct  OpEssentialLhsImpl
 Enforce essential constrains on lhs. More...
 
struct  OpEssentialLhsImpl< DisplacementCubitBcData, BASE_DIM, FIELD_DIM, A, I, OpBase >
 
struct  OpEssentialLhsImpl< HeatFluxCubitBcData, BASE_DIM, FIELD_DIM, A, I, OpBase >
 
struct  OpEssentialLhsImpl< MPCsType, BASE_DIM, FIELD_DIM, A, I, OpBase >
 
struct  OpEssentialLhsImpl< TemperatureCubitBcData, 1, 1, A, I, OpBase >
 
struct  OpEssentialRhsImpl
 Enforce essential constrains on rhs. More...
 
struct  OpEssentialRhsImpl< DisplacementCubitBcData, 1, FIELD_DIM, A, I, OpBase >
 
struct  OpEssentialRhsImpl< HeatFluxCubitBcData, 3, 2, A, GAUSS, OpBase >
 
struct  OpEssentialRhsImpl< HeatFluxCubitBcData, 3, 3, A, GAUSS, OpBase >
 
struct  OpEssentialRhsImpl< MPCsType, 1, FIELD_DIM, A, I, OpBase >
 
struct  OpEssentialRhsImpl< TemperatureCubitBcData, 1, 1, A, I, OpBase >
 
struct  OpFluxLhsImpl
 
struct  OpFluxRhsImpl
 
struct  OpFluxRhsImpl< NaturalMeshsetType< BLOCKSET >, 1, 1, A, I, OpBase >
 
struct  OpFluxRhsImpl< NaturalMeshsetType< BLOCKSET >, 1, FIELD_DIM, A, I, OpBase >
 
struct  OpFluxRhsImpl< NaturalMeshsetType< BLOCKSET >, 3, FIELD_DIM, A, I, OpBase >
 
struct  OpFluxRhsImpl< NaturalMeshsetType< FORCESET >, 1, FIELD_DIM, A, I, OpBase >
 
struct  OpFluxRhsImpl< NaturalMeshsetType< HEATFLUXSET >, 1, 1, A, I, OpBase >
 
struct  OpFluxRhsImpl< NaturalMeshsetType< PRESSURESET >, 1, FIELD_DIM, A, I, OpBase >
 
struct  OpFluxRhsImpl< NaturalMeshsetType< TEMPERATURESET >, 3, FIELD_DIM, A, I, OpBase >
 
struct  OpFluxRhsImpl< NaturalMeshsetType< UNKNOWNSET >, 1, 1, A, I, OpBase >
 
struct  OpFluxRhsImpl< NaturalMeshsetType< UNKNOWNSET >, 1, FIELD_DIM, A, I, OpBase >
 Base class for OpFluxRhsImpl<NaturalMeshsetType<T>, 1, FIELD_DIM, A, I, OpBase> More...
 
struct  OpFluxRhsImpl< NaturalMeshsetType< UNKNOWNSET >, 3, FIELD_DIM, A, I, OpBase >
 
struct  OpFluxRhsImpl< NaturalMeshsetTypeVectorScaling< BLOCKSET >, 1, FIELD_DIM, A, I, OpBase >
 
struct  OpFluxRhsImpl< NaturalMeshsetTypeVectorScaling< UNKNOWNSET >, 1, FIELD_DIM, A, I, OpBase >
 
struct  OpGetBrokenBaseSideData
 
struct  OpGetCoordsAndNormalsOnPrism
 calculate normals at Gauss points of triangle element More...
 
struct  OpGetDataAndGradient
 Get field values and gradients at Gauss points. More...
 
struct  OpGetHONormalsOnFace
 Calculate normals at Gauss points of triangle element. More...
 
struct  OpGetHOTangentOnEdge
 Calculate tangent vector on edge form HO geometry approximation. More...
 
struct  OpGetHOTangentsOnEdge
 Calculate tangent vector on edge form HO geometry approximation. More...
 
struct  OpGetTensor0fromFunc
 Get values from scalar function at integration points and save them to VectorDouble for Tensor0. More...
 
struct  OpGetTensor1fromFunc
 
struct  OpGradGradImpl
 
struct  OpGradGradImpl< 1, 1, SPACE_DIM, GAUSS, OpBase >
 
struct  OpGradGradImpl< 1, FIELD_DIM, SPACE_DIM, GAUSS, OpBase >
 
struct  OpGradGradSymTensorGradGradImpl
 
struct  OpGradGradSymTensorGradGradImpl< 1, 1, SPACE_DIM, S, GAUSS, OpBase >
 
struct  OpGradSymTensorGradImpl
 
struct  OpGradSymTensorGradImpl< 1, SPACE_DIM, SPACE_DIM, S, GAUSS, OpBase >
 
struct  OpGradTensorGradImpl
 
struct  OpGradTensorGradImpl< 1, SPACE_DIM, SPACE_DIM, S, GAUSS, OpBase >
 
struct  OpGradTimesSymTensorImpl
 
struct  OpGradTimesSymTensorImpl< 1, SPACE_DIM, SPACE_DIM, S, GAUSS, OpBase >
 
struct  OpGradTimesTensorImpl
 
struct  OpGradTimesTensorImpl< 1, 1, SPACE_DIM, S, GAUSS, OpBase >
 
struct  OpGradTimesTensorImpl< 1, SPACE_DIM, SPACE_DIM, S, GAUSS, OpBase >
 
struct  OpHOSetContravariantPiolaTransformOnEdge3D
 transform Hcurl base fluxes from reference element to physical edge More...
 
struct  OpHOSetContravariantPiolaTransformOnFace3D
 transform Hdiv base fluxes from reference element to physical triangle More...
 
struct  OpHOSetCovariantPiolaTransformOnFace3D
 transform Hcurl base fluxes from reference element to physical triangle More...
 
struct  OpInvertMatrix
 
struct  OpLoopSide
 Element used to execute operators on side of the element. More...
 
struct  OpLoopThis
 Execute "this" element in the operator. More...
 
struct  OpMakeHdivFromHcurl
 Make Hdiv space from Hcurl space in 2d. More...
 
struct  OpMassCacheImpl
 
struct  OpMassCacheImpl< 1, FIELD_DIM, I, OpBase >
 
struct  OpMassImpl
 
struct  OpMassImpl< 1, 1, GAUSS, OpBase >
 
struct  OpMassImpl< 1, FIELD_DIM, GAUSS, OpBase >
 
struct  OpMassImpl< 3, 4, GAUSS, OpBase >
 
struct  OpMassImpl< 3, 9, GAUSS, OpBase >
 
struct  OpMassImpl< 3, FIELD_DIM, GAUSS, OpBase >
 
struct  OpMixDivTimesScalarImpl
 
struct  OpMixDivTimesScalarImpl< SPACE_DIM, GAUSS, OpBase >
 
struct  OpMixDivTimesUImpl
 
struct  OpMixDivTimesUImpl< 1, FIELD_DIM, FIELD_DIM, GAUSS, OpBase, CoordSys >
 
struct  OpMixDivTimesUImpl< 3, 1, SPACE_DIM, GAUSS, OpBase, CoordSys >
 
struct  OpMixDivTimesUImpl< 3, FIELD_DIM, SPACE_DIM, GAUSS, OpBase, CoordSys >
 
struct  OpMixDivTimesVecImpl
 
struct  OpMixDivTimesVecImpl< SPACE_DIM, GAUSS, OpBase, CoordSys >
 
struct  OpMixScalarTimesDivImpl
 
struct  OpMixScalarTimesDivImpl< SPACE_DIM, GAUSS, OpBase, COORDINATE_SYSTEM >
 
struct  OpMixTensorTimesGradImpl
 
struct  OpMixTensorTimesGradImpl< SPACE_DIM, GAUSS, OpBase >
 
struct  OpMixTensorTimesGradUImpl
 Tensor field time gradient of vector field. More...
 
struct  OpMixTensorTimesGradUImpl< SPACE_DIM, GAUSS, OpBase >
 
struct  OpMixVecTimesDivLambdaImpl
 Vector filed time divergence of tensor. More...
 
struct  OpMixVecTimesDivLambdaImpl< SPACE_DIM, GAUSS, OpBase >
 
struct  OpMixVectorTimesGradImpl
 
struct  OpMixVectorTimesGradImpl< 1, SPACE_DIM, SPACE_DIM, GAUSS, OpBase >
 
struct  OpMixVectorTimesGradImpl< 3, SPACE_DIM, SPACE_DIM, GAUSS, OpBase >
 
struct  OpMultiplyDeterminantOfJacobianAndWeightsForFatPrisms
 Operator for fat prism element updating integration weights in the volume. More...
 
struct  OpNormalMixVecTimesScalarImpl
 Multiply vector times normal on the face times scalar function. More...
 
struct  OpNormalMixVecTimesScalarImpl< 2, GAUSS, OpBase >
 
struct  OpNormalMixVecTimesScalarImpl< 3, GAUSS, OpBase >
 
struct  OpNormalMixVecTimesVectorFieldImpl
 Multiply vector times normal on the face times vector field. More...
 
struct  OpNormalMixVecTimesVectorFieldImpl< SPACE_DIM, GAUSS, OpBase >
 
struct  OpPostProcMapInMoab
 Post post-proc data at points from hash maps. More...
 
struct  OpRunParent
 Operator to execute finite element instance on parent element. This operator is typically used to project field from parent to child, or vice versa. It enables to evaluate filed data of parent entity on chile entity integration points. More...
 
struct  OpScaleBaseBySpaceInverseOfMeasure
 Scale base functions by inverses of measure of element. More...
 
struct  OpScaleMatrix
 
struct  OpSchurAssembleBase
 
struct  OpSchurAssembleBaseImpl
 
struct  OpSchurAssembleBegin
 Clear Schur complement internal data. More...
 
struct  OpSchurAssembleEnd
 Assemble Schur complement. More...
 
struct  OpSchurAssembleEnd< SchurDGESV >
 
struct  OpSchurAssembleEnd< SchurDSYSV >
 
struct  OpSchurAssembleEndImpl
 Assemble Schur complement (Implementation) More...
 
struct  OpSetBc
 Set indices on entities on finite element. More...
 
struct  OpSetContravariantPiolaTransform
 apply contravariant (Piola) transfer to Hdiv space More...
 
struct  OpSetContravariantPiolaTransformOnEdge2D
 
struct  OpSetContravariantPiolaTransformOnFace
 transform Hdiv base fluxes from reference element to physical triangle More...
 
struct  OpSetContravariantPiolaTransformOnFace2DImpl
 Apply contravariant (Piola) transfer to Hdiv space on face. More...
 
struct  OpSetContravariantPiolaTransformOnFace2DImpl< 2 >
 
struct  OpSetContravariantPiolaTransformOnFace2DImpl< 3 >
 
struct  OpSetCovariantPiolaTransform
 apply covariant transfer to Hcurl space More...
 
struct  OpSetCovariantPiolaTransformOnEdge
 transform Hcurl base fluxes from reference element to physical edge More...
 
struct  OpSetCovariantPiolaTransformOnFace
 transform Hcurl base fluxes from reference element to physical triangle More...
 
struct  OpSetCovariantPiolaTransformOnFace2DImpl
 Transform Hcurl base fluxes from reference element to physical triangle. More...
 
struct  OpSetCovariantPiolaTransformOnFace2DImpl< 2 >
 Apply contravariant (Piola) transfer to Hdiv space on face. More...
 
struct  OpSetFlux
 
struct  OpSetHOContravariantPiolaTransform
 Apply contravariant (Piola) transfer to Hdiv space for HO geometry. More...
 
struct  OpSetHOCovariantPiolaTransform
 Apply covariant (Piola) transfer to Hcurl space for HO geometry. More...
 
struct  OpSetHOInvJacToScalarBases
 Set inverse jacobian to base functions. More...
 
struct  OpSetHOInvJacToScalarBases< 2 >
 
struct  OpSetHOInvJacToScalarBasesImpl
 
struct  OpSetHOInvJacVectorBase
 transform local reference derivatives of shape function to global derivatives if higher order geometry is given More...
 
struct  OpSetHOWeights
 Set inverse jacobian to base functions. More...
 
struct  OpSetHOWeightsOnEdge
 Modify integration weights on face to take in account higher-order geometry. More...
 
struct  OpSetHOWeightsOnFace
 Modify integration weights on face to take in account higher-order geometry. More...
 
struct  OpSetHOWeightsOnSubDim
 
struct  OpSetHOWeightsOnSubDim< 2 >
 
struct  OpSetHOWeightsOnSubDim< 3 >
 
struct  OpSetInvJacH1
 Transform local reference derivatives of shape function to global derivatives. More...
 
struct  OpSetInvJacH1ForFace
 
struct  OpSetInvJacH1ForFaceEmbeddedIn3DSpace
 
struct  OpSetInvJacH1ForFatPrism
 Transform local reference derivatives of shape functions to global derivatives. More...
 
struct  OpSetInvJacH1ForFlatPrism
 Transform local reference derivatives of shape functions to global derivatives. More...
 
struct  OpSetInvJacHcurlFaceImpl
 Transform local reference derivatives of shape function to global derivatives for face. More...
 
struct  OpSetInvJacHcurlFaceImpl< 2 >
 
struct  OpSetInvJacHcurlFaceImpl< 3 >
 
struct  OpSetInvJacHdivAndHcurl
 brief Transform local reference derivatives of shape function to global derivatives More...
 
struct  OpSetInvJacL2ForFace
 
struct  OpSetInvJacL2ForFaceEmbeddedIn3DSpace
 
struct  OpSetInvJacSpaceForFaceImpl
 Transform local reference derivatives of shape functions to global derivatives. More...
 
struct  OpSetInvJacSpaceForFaceImpl< 2, 1 >
 
struct  OpSetInvJacSpaceForFaceImpl< 2, 2 >
 
struct  OpSetInvJacSpaceForFaceImpl< 3, 1 >
 
struct  OpSetInvJacToScalarBasesBasic
 
struct  OpSourceImpl
 
struct  OpSourceImpl< 1, 1, GAUSS, SourceFunctionSpecialization::S< OpBase > >
 Integrate source. More...
 
struct  OpSourceImpl< 1, FIELD_DIM, GAUSS, SourceFunctionSpecialization::S< OpBase > >
 
struct  OpSourceImpl< 3, FIELD_DIM, GAUSS, SourceFunctionSpecialization::S< OpBase > >
 
struct  OpSourceImpl< 3, FIELD_DIM, I, SourceBoundaryNormalSpecialization::S< OpBase > >
 This is specialisation for sources on boundary which depends on normal. More...
 
struct  OpSymmetrizeTensor
 
struct  OpTensorTimesSymmetricTensor
 Calculate \( \pmb\sigma_{ij} = \mathbf{D}_{ijkl} \pmb\varepsilon_{kl} \). More...
 
struct  OpUnSetBc
 
struct  Order_mi_tag
 MultiIndex Tag for field order. More...
 
struct  PairNameFEMethodPtr
 
struct  ParentFiniteElementAdjacencyFunction
 Create adjacency to parent elements. More...
 
struct  ParentFiniteElementAdjacencyFunctionSkeleton
 Create adjacency to parent skeleton elements. More...
 
struct  Part_mi_tag
 
struct  PCMGSetUpViaApproxOrdersCtx
 
struct  PCMGSubMatrixCtx
 
struct  PetscData
 
struct  PetscGlobalIdx_mi_tag
 
struct  PetscLocalIdx_mi_tag
 
struct  PipelineManager
 PipelineManager interface. More...
 
struct  PostProcBrokenMeshInMoab
 
struct  PostProcBrokenMeshInMoab< EdgeElementForcesAndSourcesCore >
 
struct  PostProcBrokenMeshInMoab< FaceElementForcesAndSourcesCore >
 
struct  PostProcBrokenMeshInMoab< VolumeElementForcesAndSourcesCore >
 
struct  PostProcBrokenMeshInMoabBase
 
struct  PostProcBrokenMeshInMoabBaseBeginImpl
 
struct  PostProcBrokenMeshInMoabBaseContImpl
 
struct  PostProcBrokenMeshInMoabBaseEndImpl
 
struct  PostProcGenerateRefMesh
 Element for postprocessing. Uses MoAB to generate post-processing mesh. More...
 
struct  PostProcGenerateRefMesh< MBEDGE >
 
struct  PostProcGenerateRefMesh< MBHEX >
 
struct  PostProcGenerateRefMesh< MBQUAD >
 
struct  PostProcGenerateRefMesh< MBTET >
 
struct  PostProcGenerateRefMesh< MBTRI >
 
struct  PostProcGenerateRefMeshBase
 
struct  PressureCubitBcData
 Definition of the pressure bc data structure. More...
 
struct  PrismInterface
 Create interface from given surface and insert flat prisms in-between. More...
 
struct  PrismsFromSurfaceInterface
 merge node from two bit levels More...
 
struct  Problem
 keeps basic data about problem More...
 
struct  Problem_mi_tag
 
struct  ProblemChangeRefLevelBitAdd
 add ref level to problem More...
 
struct  ProblemChangeRefLevelBitDofMaskAdd
 set prof dof bit ref mask More...
 
struct  ProblemChangeRefLevelBitDofMaskSet
 set prof dof bit ref mask More...
 
struct  ProblemChangeRefLevelBitSet
 set ref level to problem More...
 
struct  ProblemClearComposedProblemData
 Clear composed problem data structure. More...
 
struct  ProblemClearNumeredFiniteElementsChange
 clear problem finite elements More...
 
struct  ProblemClearSubProblemData
 Clear sub-problem data structure. More...
 
struct  ProblemFiniteElementChangeBitAdd
 add finite element to problem More...
 
struct  ProblemFiniteElementChangeBitUnSet
 remove finite element from problem More...
 
struct  ProblemsManager
 Problem manager is used to build and partition problems. More...
 
struct  ProblemZeroNbColsChange
 zero nb. of DOFs in col More...
 
struct  ProblemZeroNbRowsChange
 zero nb. of DOFs in row More...
 
struct  Proc_mi_tag
 
struct  Projection10NodeCoordsOnField
 Projection of edge entities with one mid-node on hierarchical basis. More...
 
struct  ProjectionFieldOn10NodeTet
 
struct  QuadPolynomialBase
 Calculate base functions on triangle. More...
 
struct  RefElement
 keeps data about abstract refined finite element More...
 
struct  RefElement_EDGE
 keeps data about abstract EDGE finite element More...
 
struct  RefElement_MESHSET
 keeps data about abstract MESHSET finite element More...
 
struct  RefElement_PRISM
 keeps data about abstract PRISM finite element More...
 
struct  RefElement_VERTEX
 keeps data about abstract VERTEX finite element More...
 
struct  RefElementFace
 keeps data about abstract TRI finite element More...
 
struct  RefElementVolume
 keeps data about abstract TET finite element More...
 
struct  RefEntExtractor
 Extract entity handle form multi-index container. More...
 
struct  RefEntity_change_left_shift
 ref mofem entity, left shift More...
 
struct  RefEntity_change_parent
 change parent More...
 
struct  RefEntity_change_right_shift
 ref mofem entity, right shift More...
 
struct  RefEntityTmp
 
struct  RefEntityTmp< 0 >
 Struct keeps handle to refined handle. More...
 
struct  RefEntityTmp<-1 >
 
struct  ScalingMethod
 
struct  SchurBackendMatSetValuesPtr
 
struct  SchurDGESV
 
struct  SchurDSYSV
 
struct  SchurElemMats
 Schur complement data storage. More...
 
struct  SchurElemMatsBlock
 
struct  SchurElemMatsPreconditionedBlock
 
struct  SchurEvents
 Structure to register events for Schur block assembly and solver. More...
 
struct  SeriesID_mi_tag
 
struct  SeriesName_mi_tag
 
struct  SeriesRecorder
 
struct  SetBitRefLevelTool
 tool class with methods used more than twp times More...
 
struct  SetOtherGlobalGhostVector
 
struct  SetOtherLocalGhostVector
 
struct  SideNumber
 keeps information about side number for the finite element More...
 
struct  SideNumber_mi_tag
 
struct  Simple
 Simple interface for fast problem set-up. More...
 
struct  SmartPetscObj
 intrusive_ptr for managing petsc objects More...
 
struct  SnesCtx
 Interface for nonlinear (SNES) solver. More...
 
struct  SnesMethod
 data structure for snes (nonlinear solver) context More...
 
struct  SourceBoundaryNormalSpecialization
 
struct  SourceFunctionSpecialization
 
struct  Space_mi_tag
 
struct  TemperatureCubitBcData
 Definition of the temperature bc data structure. More...
 
struct  TempMeshset
 
struct  TetGenInterface
 TetGen interface. More...
 
struct  TetPolynomialBase
 Calculate base functions on tetrahedral. More...
 
struct  TimeScale
 Force scale operator for reading two columns. More...
 
struct  TimeScaleVector
 Force scale operator for reading four columns (time and vector) More...
 
struct  Tools
 Auxiliary tools. More...
 
struct  TriPolynomialBase
 Calculate base functions on triangle. More...
 
struct  TSAdaptMoFEM
 Custom TSAdaptivity in MoFEM. More...
 
struct  TsCtx
 Interface for Time Stepping (TS) solver. More...
 
struct  TSMethod
 data structure for TS (time stepping) context More...
 
struct  TypeSide_mi_tag
 
struct  Unique_Ent_mi_tag
 
struct  Unique_FiniteElement_mi_tag
 
struct  Unique_mi_tag
 
struct  UnknownInterface
 base class for all interface classes More...
 
struct  VecManager
 Vector manager is used to create vectors \mofem_vectors. More...
 
struct  VelocityCubitBcData
 Definition of the velocity bc data structure. More...
 
struct  Version
 
struct  VertexElementForcesAndSourcesCore
 Vertex finite element. More...
 
struct  VolumeElementForcesAndSourcesCore
 Volume finite element base. More...
 
struct  VolumeElementForcesAndSourcesCoreOnContactPrismSide
 Base volume element used to integrate on contact surface (could be extended to other volume elements) More...
 
struct  VolumeElementForcesAndSourcesCoreOnContactPrismSideSwitch
 
struct  VolumeElementForcesAndSourcesCoreOnSide
 Base volume element used to integrate on skeleton. More...
 
struct  VolumeElementForcesAndSourcesCoreOnSideSwitch
 
struct  VolumeElementForcesAndSourcesCoreSwitch
 
struct  WrapMPIComm
 Wrap MPI communicator such that is destroyed when is out of scope. More...
 

Typedefs

template<typename T >
using ShardVec = boost::shared_ptr< std::vector< T > >
 
template<int DIM>
using i_FTIndex = FTensor::Index< 'i', DIM >
 
template<int DIM>
using j_FTIndex = FTensor::Index< 'j', DIM >
 
template<int DIM>
using k_FTIndex = FTensor::Index< 'k', DIM >
 
template<int DIM>
using l_FTIndex = FTensor::Index< 'l', DIM >
 
template<int DIM>
using m_FTIndex = FTensor::Index< 'm', DIM >
 
template<int DIM>
using n_FTIndex = FTensor::Index< 'n', DIM >
 
template<int DIM>
using I_FTIndex = FTensor::Index< 'I', DIM >
 
template<int DIM>
using J_FTIndex = FTensor::Index< 'J', DIM >
 
template<int DIM>
using K_FTIndex = FTensor::Index< 'K', DIM >
 
template<int DIM>
using L_FTIndex = FTensor::Index< 'L', DIM >
 
template<int DIM>
using M_FTIndex = FTensor::Index< 'M', DIM >
 
template<int DIM>
using N_FTIndex = FTensor::Index< 'N', DIM >
 
using VecOfTimeScalingMethods = std::vector< boost::shared_ptr< ScalingMethod > >
 Vector of time scaling methods. More...
 
template<int FIELD_DIM>
using VecOfTimeVectorScalingMethods = std::vector< boost::shared_ptr< TimeScaleVector< FIELD_DIM > >>
 Vector of time vector scaling methods. More...
 
using TimeScaleVector3 = TimeScaleVector< 3 >
 
using TimeScaleVector2 = TimeScaleVector< 3 >
 
using CacheMatsTypeType = std::map< std::pair< int, int >, boost::shared_ptr< MatrixDouble > >
 
using DofsAllocator = ublas::unbounded_array< FEDofEntity *, std::allocator< FEDofEntity * > >
 
using VectorDofs = ublas::vector< FEDofEntity *, DofsAllocator >
 
using FieldEntAllocator = ublas::unbounded_array< FieldEntity *, std::allocator< FieldEntity * > >
 
using VectorFieldEntities = ublas::vector< FieldEntity *, FieldEntAllocator >
 
using BaseDerivatives = EntitiesFieldData::EntData::BaseDerivatives
 
using ScalarFun = boost::function< double(const double, const double, const double)>
 Scalar function type. More...
 
using TimeFun = boost::function< double(double)>
 Lambda function used to scale with time. More...
 
using FEFun = boost::function< double(const FEMethod *fe_ptr)>
 Lambda function used to scale with time. More...
 
using ConstantFun = boost::function< double()>
 Constant function type. More...
 
template<int DIM>
using VectorFun = boost::function< FTensor::Tensor1< double, DIM >(const double, const double, const double)>
 Vector function type. More...
 
using OpCalculateHOJacVolume = OpCalculateHOJacForVolume
 
using OpCalculateHOJacForFace = OpCalculateHOJacForFaceImpl< 2 >
 
using OpCalculateHOJacForFaceEmbeddedIn3DSpace = OpCalculateHOJacForFaceImpl< 3 >
 
typedef boost::function< VectorDouble(const double, const double, const double)> VectorFunc
 
using SchurFieldPair = std::pair< std::string, std::string >
 
using SchurFEOpsFEandFields = std::vector< std::pair< std::string, std::vector< SchurFieldPair > > >
 
using SchurShellMatData = std::pair< SmartPetscObj< Mat >, boost::shared_ptr< BlockStructure > >
 
using NestSchurData = std::tuple< std::array< SmartPetscObj< Mat >, 4 >, std::array< boost::shared_ptr< BlockStructure >, 4 >, boost::shared_ptr< BlockStructure >, std::pair< SmartPetscObj< IS >, SmartPetscObj< IS > > >
 
template<CubitBC BC>
using BcTemperature = BcScalarMeshsetType< BC >
 
using Core = CoreTmp< 0 >
 
using Sev = MoFEM::LogManager::SeverityLevel
 
using CreateRowComressedADJMatrix = CreateRowCompressedADJMatrix
 
typedef multi_index_container< boost::shared_ptr< RefElement >, indexed_by< ordered_unique< tag< Ent_mi_tag >, const_mem_fun< RefElement::interface_type_RefEntity, EntityHandle, &RefElement::getEnt > >, ordered_non_unique< tag< Ent_Ent_mi_tag >, const_mem_fun< RefElement::interface_type_RefEntity, EntityHandle, &RefElement::getParentEnt > >, ordered_non_unique< tag< Composite_ParentEnt_And_BitsOfRefinedEdges_mi_tag >, composite_key< RefElement, const_mem_fun< RefElement::interface_type_RefEntity, EntityHandle, &RefElement::getParentEnt >, const_mem_fun< RefElement, int, &RefElement::getBitRefEdgesUlong > > > > > RefElement_multiIndex_parents_view
 
using Interface = DeprecatedCoreInterface
 
typedef CubitMeshSet_multiIndex::index< CubitMeshsetType_mi_tag >::type CubitMeshsetByType
 
typedef CubitMeshSet_multiIndex::index< CubitMeshsetMaskedType_mi_tag >::type CubitMeshsetByMask
 
typedef CubitMeshSet_multiIndex::index< CubitMeshsets_name >::type CubitMeshsetByName
 
typedef CubitMeshSet_multiIndex::index< CubitMeshsetType_mi_tag >::type CubitMeshsetById
 
typedef multi_index_container< CubitMeshSets, indexed_by< hashed_unique< tag< Meshset_mi_tag >, member< CubitMeshSets, EntityHandle, &CubitMeshSets::meshset > >, ordered_non_unique< tag< CubitMeshsetType_mi_tag >, const_mem_fun< CubitMeshSets, unsigned long int, &CubitMeshSets::getBcTypeULong > >, ordered_non_unique< tag< CubitMeshsetMaskedType_mi_tag >, const_mem_fun< CubitMeshSets, unsigned long int, &CubitMeshSets::getMaskedBcTypeULong > >, ordered_non_unique< tag< CubitMeshsets_name >, const_mem_fun< CubitMeshSets, std::string, &CubitMeshSets::getName > >, hashed_unique< tag< Composite_Cubit_msId_And_MeshsetType_mi_tag >, composite_key< CubitMeshSets, const_mem_fun< CubitMeshSets, int, &CubitMeshSets::getMeshsetId >, const_mem_fun< CubitMeshSets, unsigned long int, &CubitMeshSets::getMaskedBcTypeULong > > > > > CubitMeshSet_multiIndex
 Stores data about meshsets (see CubitMeshSets) storing data about boundary conditions, interfaces, sidesets, nodests, blocksets. More...
 
using DofEntityByUId = DofEntity_multiIndex::index< Unique_mi_tag >::type
 
using DofEntityByEnt = DofEntity_multiIndex::index< Ent_mi_tag >::type
 Dof multi-index by entity. More...
 
using DofEntity_multiIndex_uid_view = multi_index_container< boost::shared_ptr< DofEntity >, indexed_by< ordered_unique< const_mem_fun< DofEntity, UId, &DofEntity::getLocalUniqueId > > > >
 multi-index view on DofEntity by uid More...
 
using DofEntity_multiIndex_global_uid_view = multi_index_container< boost::shared_ptr< DofEntity >, indexed_by< ordered_unique< const_mem_fun< DofEntity, UId, &DofEntity::getGlobalUniqueId > > > >
 multi-index view on DofEntity by uid More...
 
typedef std::vector< boost::weak_ptr< DofEntity > > DofEntity_vector_view
 vector view on DofEntity by uid More...
 
typedef multi_index_container< boost::shared_ptr< DofEntity >, indexed_by< ordered_unique< const_mem_fun< DofEntity, UId, &DofEntity::getLocalUniqueId > >, ordered_non_unique< const_mem_fun< DofEntity, char, &DofEntity::getActive > > > > DofEntity_multiIndex_active_view
 multi-index view on DofEntity activity More...
 
using FEDofEntityByUId = FEDofEntity_multiIndex::index< Unique_mi_tag >::type
 Dof entity multi-index by UId and entity. More...
 
using FENumeredDofEntityByUId = FENumeredDofEntity_multiIndex::index< Unique_mi_tag >::type
 Dof entity multi-index by UId. More...
 
using FENumeredDofEntityByEnt = FENumeredDofEntity_multiIndex::index< Ent_mi_tag >::type
 Numbered DoF multi-index by entity. More...
 
using NumeredDofEntityByUId = NumeredDofEntity_multiIndex::index< Unique_mi_tag >::type
 Numbered DoF multi-index by UId. More...
 
using NumeredDofEntityByLocalIdx = NumeredDofEntity_multiIndex::index< PetscLocalIdx_mi_tag >::type
 Numbered DoF multi-index by local index. More...
 
using NumeredDofEntityByEnt = NumeredDofEntity_multiIndex::index< Ent_mi_tag >::type
 Numbered DoF multi-index by entity. More...
 
using NumeredDofEntity_multiIndex_uid_view_ordered = multi_index_container< boost::shared_ptr< NumeredDofEntity >, indexed_by< ordered_unique< const_mem_fun< NumeredDofEntity::interface_type_DofEntity, UId, &NumeredDofEntity::getLocalUniqueId > > > >
 
using NumeredDofEntity_multiIndex_idx_view_hashed = multi_index_container< boost::shared_ptr< NumeredDofEntity >, indexed_by< hashed_unique< const_mem_fun< NumeredDofEntity, DofIdx, &NumeredDofEntity::getDofIdx > >> >
 
using NumeredDofEntity_multiIndex_petsc_local_dof_view_ordered_non_unique = multi_index_container< boost::shared_ptr< NumeredDofEntity >, indexed_by< ordered_non_unique< const_mem_fun< NumeredDofEntity, DofIdx, &NumeredDofEntity::getPetscLocalDofIdx > >> >
 
using NumeredDofEntity_multiIndex_coeff_idx_ordered_non_unique = multi_index_container< boost::shared_ptr< NumeredDofEntity >, indexed_by< ordered_non_unique< const_mem_fun< NumeredDofEntity::interface_type_DofEntity, FieldCoefficientsNumber, &NumeredDofEntity::getDofCoeffIdx > >> >
 
using ElementAdjacencyFunct = boost::function< MoFEMErrorCode(Interface &moab, const Field &field, const EntFiniteElement &fe, std::vector< EntityHandle > &adjacency)>
 user adjacency function More...
 
using CacheTuple = std::tuple< std::vector< EntityCacheDofs >, std::vector< EntityCacheNumeredDofs >, std::vector< EntityCacheNumeredDofs > >
 
using CacheTupleWeakPtr = boost::weak_ptr< CacheTuple >
 
using CacheTupleSharedPtr = boost::shared_ptr< CacheTuple >
 
using FieldEntityByUId = FieldEntity_multiIndex::index< Unique_mi_tag >::type
 Entity index by field name. More...
 
using FieldEntity_multiIndex_global_uid_view = multi_index_container< boost::shared_ptr< FieldEntity >, indexed_by< ordered_unique< tag< Unique_mi_tag >, const_mem_fun< FieldEntity, UId, &FieldEntity::getGlobalUniqueId > > > >
 multi-index view on DofEntity by uid More...
 
using FieldEntity_multiIndex_ent_view = multi_index_container< boost::shared_ptr< FieldEntity >, indexed_by< sequenced<>, ordered_non_unique< tag< Ent_mi_tag >, const_mem_fun< FieldEntity::interface_type_RefEntity, EntityHandle, &FieldEntity::getEnt > > > >
 
using FieldEntity_multiIndex_spaceType_view = multi_index_container< boost::shared_ptr< FieldEntity >, indexed_by< sequenced<>, ordered_non_unique< tag< Composite_EntType_and_Space_mi_tag >, composite_key< FieldEntity, const_mem_fun< FieldEntity::interface_type_RefEntity, EntityType, &FieldEntity::getEntType >, const_mem_fun< FieldEntity::interface_type_Field, FieldSpace, &FieldEntity::getSpace > > > > >
 
typedef std::vector< boost::weak_ptr< FieldEntity > > FieldEntity_vector_view
 
using FieldEntity_multiIndex = multi_index_container< boost::shared_ptr< FieldEntity >, indexed_by< ordered_unique< tag< Unique_mi_tag >, member< FieldEntity, UId, &FieldEntity::localUId > >, ordered_non_unique< tag< Ent_mi_tag >, const_mem_fun< FieldEntity::interface_type_RefEntity, EntityHandle, &FieldEntity::getEnt > > > >
 
typedef boost::function< int(const int order)> FieldOrderFunct
 user adjacency function More...
 
typedef FieldOrderFunct FieldOrderTable[MBMAXTYPE]
 user adjacency function table More...
 
typedef multi_index_container< boost::shared_ptr< Field >, indexed_by< ordered_unique< tag< BitFieldId_mi_tag >, const_mem_fun< Field, const BitFieldId &, &Field::getId >, LtBit< BitFieldId > > > > Field_multiIndex_view
 
using BlockFieldPair = Problem::BlockFieldPair
 
using EmptyFieldBlocks = Problem::EmptyFieldBlocks
 
typedef multi_index_container< boost::shared_ptr< RefElement >, indexed_by< ordered_unique< tag< Ent_mi_tag >, const_mem_fun< RefElement::interface_type_RefEntity, EntityHandle, &RefElement::getEnt > > > > RefElement_multiIndex
 
using RefEntity = RefEntityTmp< 0 >
 
using RefEntity_multiIndex = multi_index_container< boost::shared_ptr< RefEntity >, indexed_by< ordered_unique< tag< Ent_mi_tag >, const_mem_fun< RefEntity, EntityHandle, &RefEntity::getEnt > >, ordered_non_unique< tag< Ent_Ent_mi_tag >, const_mem_fun< RefEntity, EntityHandle, &RefEntity::getParentEnt > >, ordered_non_unique< tag< Composite_EntType_and_ParentEntType_mi_tag >, composite_key< RefEntity, const_mem_fun< RefEntity, EntityType, &RefEntity::getEntType >, const_mem_fun< RefEntity, EntityType, &RefEntity::getParentEntType > > >, ordered_non_unique< tag< Composite_ParentEnt_And_EntType_mi_tag >, composite_key< RefEntity, const_mem_fun< RefEntity, EntityType, &RefEntity::getEntType >, const_mem_fun< RefEntity, EntityHandle, &RefEntity::getParentEnt > > > > >
 
using RefEntity_multiIndex_view_by_hashed_parent_entity = multi_index_container< boost::shared_ptr< RefEntity >, indexed_by< hashed_non_unique< const_mem_fun< RefEntity, EntityHandle, &RefEntity::getParentEnt > >, hashed_unique< tag< Composite_EntType_and_ParentEntType_mi_tag >, composite_key< boost::shared_ptr< RefEntity >, const_mem_fun< RefEntity, EntityHandle, &RefEntity::getEnt >, const_mem_fun< RefEntity, EntityHandle, &RefEntity::getParentEnt > >> > >
 multi-index view of RefEntity by parent entity More...
 
using RefEntity_multiIndex_view_by_ordered_parent_entity = multi_index_container< boost::shared_ptr< RefEntity >, indexed_by< ordered_non_unique< const_mem_fun< RefEntity, EntityHandle, &RefEntity::getParentEnt > >, hashed_unique< tag< Composite_EntType_and_ParentEntType_mi_tag >, composite_key< boost::shared_ptr< RefEntity >, const_mem_fun< RefEntity, EntityHandle, &RefEntity::getEnt >, const_mem_fun< RefEntity, EntityHandle, &RefEntity::getParentEnt > >> > >
 
using RefEntity_multiIndex_view_sequence_ordered_view = multi_index_container< boost::shared_ptr< RefEntity >, indexed_by< sequenced<>, ordered_unique< tag< Ent_mi_tag >, const_mem_fun< RefEntity, EntityHandle, &RefEntity::getEnt > >> >
 
typedef multi_index_container< FieldSeries, indexed_by< ordered_unique< tag< SeriesID_mi_tag >, const_mem_fun< FieldSeries, EntityID, &FieldSeries::get_meshset_id > >, ordered_unique< tag< SeriesName_mi_tag >, const_mem_fun< FieldSeries, boost::string_ref, &FieldSeries::getNameRef > > > > Series_multiIndex
 Series multi index. More...
 
typedef multi_index_container< FieldSeriesStep, indexed_by< ordered_unique< tag< Composite_SeriesID_And_Step_mi_tag >, composite_key< FieldSeriesStep, const_mem_fun< FieldSeriesStep::interface_type_FieldSeries, EntityID, &FieldSeriesStep::get_meshset_id >, member< FieldSeriesStep, int, &FieldSeriesStep::step_number > > >, ordered_unique< tag< Composite_SeriesName_And_Step_mi_tag >, composite_key< FieldSeriesStep, const_mem_fun< FieldSeriesStep::interface_type_FieldSeries, boost::string_ref, &FieldSeriesStep::getNameRef >, member< FieldSeriesStep, int, &FieldSeriesStep::step_number > > >, ordered_non_unique< tag< SeriesName_mi_tag >, const_mem_fun< FieldSeriesStep::interface_type_FieldSeries, boost::string_ref, &FieldSeriesStep::getNameRef > >, ordered_non_unique< tag< Composite_SeriesName_And_Time_mi_tag >, composite_key< FieldSeriesStep, const_mem_fun< FieldSeriesStep::interface_type_FieldSeries, boost::string_ref, &FieldSeriesStep::getNameRef >, const_mem_fun< FieldSeriesStep, double, &FieldSeriesStep::get_time > > > > > SeriesStep_multiIndex
 Step multi index. More...
 
typedef std::deque< PairNameFEMethodPtrFEMethodsSequence
 
typedef std::deque< BasicMethodPtrBasicMethodsSequence
 
using PostProcGenerateRefMeshPtr = boost::shared_ptr< PostProcGenerateRefMeshBase >
 
using PostProcBrokenMeshInMoabBaseBegin = PostProcBrokenMeshInMoabBaseBeginImpl< PostProcBrokenMeshInMoabBase< ForcesAndSourcesCore > >
 Enable to run stack of post-processing elements. Use this to begin stack. More...
 
template<typename E >
using PostProcBrokenMeshInMoabBaseCont = PostProcBrokenMeshInMoabBaseContImpl< PostProcBrokenMeshInMoabBase< E > >
 Enable to run stack of post-processing elements. More...
 
using PostProcBrokenMeshInMoabBaseEnd = PostProcBrokenMeshInMoabBaseEndImpl< PostProcBrokenMeshInMoabBase< ForcesAndSourcesCore > >
 Enable to run stack of post-processing elements. Use this to end stack. More...
 

Enumerations

enum  MPC {
  MPC::TIE, MPC::RIGID_BODY, MPC::COUPLING, MPC::EMBEDDED_REGION,
  MPC::EQUATION, MPC::LAST
}
 
enum  AssemblyType {
  PETSC, SCHUR, BLOCK_MAT, BLOCK_SCHUR,
  BLOCK_PRECONDITIONER_SCHUR, USER_ASSEMBLE, LAST_ASSEMBLE
}
 [Storage and set boundary conditions] More...
 
enum  IntegrationType { GAUSS, USER_INTEGRATION, LAST_INTEGRATION }
 Form integrator integration types. More...
 

Functions

PetscErrorCode PetscOptionsGetInt (PetscOptions *, const char pre[], const char name[], PetscInt *ivalue, PetscBool *set)
 
PetscErrorCode PetscOptionsGetReal (PetscOptions *, const char pre[], const char name[], PetscReal *dval, PetscBool *set)
 
PetscErrorCode PetscOptionsGetScalar (PetscOptions *, const char pre[], const char name[], PetscScalar *dval, PetscBool *set)
 
PetscErrorCode PetscOptionsGetString (PetscOptions *, const char pre[], const char name[], char str[], size_t size, PetscBool *set)
 
PetscErrorCode PetscOptionsGetBool (PetscOptions *, const char pre[], const char name[], PetscBool *bval, PetscBool *set)
 
PetscErrorCode PetscOptionsGetRealArray (PetscOptions *, const char pre[], const char name[], PetscReal dval[], PetscInt *nmax, PetscBool *set)
 
PetscErrorCode PetscOptionsGetEList (PetscOptions *, const char pre[], const char name[], const char *const *list, PetscInt next, PetscInt *value, PetscBool *set)
 
PetscErrorCode PetscOptionsGetIntArray (PetscOptions options, const char pre[], const char name[], PetscInt dvalue[], PetscInt *nmax, PetscBool *set)
 
PetscErrorCode PetscOptionsGetScalarArray (PetscOptions options, const char pre[], const char name[], PetscScalar dvalue[], PetscInt *nmax, PetscBool *set)
 
template<typename T >
PetscObject getPetscObject (T obj)
 
auto createDM (MPI_Comm comm, const std::string dm_type_name)
 Creates smart DM object. More...
 
DEPRECATED auto createSmartDM (MPI_Comm comm, const std::string dm_type_name)
 
MPI_Comm getCommFromPetscObject (PetscObject obj)
 Get the Comm From Petsc Object object. More...
 
auto createGhostVector (MPI_Comm comm, PetscInt n, PetscInt N, PetscInt nghost, const PetscInt ghosts[])
 Create smart ghost vector. More...
 
DEPRECATED auto createSmartGhostVector (MPI_Comm comm, PetscInt n, PetscInt N, PetscInt nghost, const PetscInt ghosts[])
 
auto createVectorMPI (MPI_Comm comm, PetscInt n, PetscInt N)
 Create MPI Vector. More...
 
DEPRECATED auto createSmartVectorMPI (MPI_Comm comm, PetscInt n, PetscInt N)
 
SmartPetscObj< Vec > vectorDuplicate (Vec vec)
 Create duplicate vector of smart vector. More...
 
DEPRECATED SmartPetscObj< Vec > smartVectorDuplicate (Vec vec)
 
SmartPetscObj< Mat > matDuplicate (Mat mat, MatDuplicateOption op)
 
DEPRECATED SmartPetscObj< Mat > smartMatDuplicate (Mat mat, MatDuplicateOption op)
 
auto createTS (MPI_Comm comm)
 
auto createSNES (MPI_Comm comm)
 
auto createKSP (MPI_Comm comm)
 
auto createPC (MPI_Comm comm)
 
auto createISGeneral (MPI_Comm comm, PetscInt n, const PetscInt idx[], PetscCopyMode mode)
 Creates a data structure for an index set containing a list of integers. More...
 
auto isAllGather (IS is)
 IS All gather. More...
 
auto createAOMappingIS (IS isapp, IS ispetsc)
 Creates an application mapping using two index sets. More...
 
auto createAOMapping (MPI_Comm comm, PetscInt napp, const PetscInt myapp[], const PetscInt mypetsc[])
 Creates an application mapping using two integer arrays. More...
 
auto createVecScatter (Vec x, IS ix, Vec y, IS iy)
 Create a Vec Scatter object. More...
 
auto isDifference (IS is1, IS is2)
 Get ISDifference. More...
 
auto createISLocalToGlobalMapping (IS is)
 
auto matCreateVecs (Mat mat)
 
auto isDuplicate (IS is)
 
template<typename T1 >
auto getVectorAdaptor (T1 ptr, const size_t n)
 Get Vector adaptor. More...
 
template<typename T1 >
auto getMatrixAdaptor (T1 ptr, const size_t n, const size_t m)
 Get Matrix adaptor. More...
 
template<class X >
std::string toString (X x)
 
template<int S = 1, class T , class A >
static auto getFTensor0FromVec (ublas::vector< T, A > &data)
 Get tensor rank 0 (scalar) form data vector. More...
 
template<int Tensor_Dim, int S = 1, class T , class L , class A >
FTensor::Tensor1< FTensor::PackPtr< T *, S >, Tensor_Dim > getFTensor1FromMat (ublas::matrix< T, L, A > &data)
 Get tensor rank 1 (vector) form data matrix. More...
 
template<int Tensor_Dim, int S = 1>
auto getFTensor1FromMat (MatrixDouble &data)
 Get tensor rank 1 (vector) form data matrix (specialization) More...
 
template<int Tensor_Dim1, int Tensor_Dim2>
FTensor::Tensor2< FTensor::PackPtr< double *, 1 >, Tensor_Dim1, Tensor_Dim2 > getFTensor2FromMat (MatrixDouble &data)
 Get tensor rank 2 (matrix) form data matrix. More...
 
template<int Tensor_Dim1, int Tensor_Dim2>
FTensor::Tensor2< FTensor::PackPtr< double *, 1 >, Tensor_Dim1, Tensor_Dim2 > getFTensor2FromVec (VectorDouble &data)
 
template<>
FTensor::Tensor2< FTensor::PackPtr< double *, 1 >, 1, 1 > getFTensor2FromVec (VectorDouble &data)
 
template<int Tensor_Dim, int S, class T , class L , class A >
static auto getFTensor2SymmetricFromMat (ublas::matrix< T, L, A > &data)
 Get symmetric tensor rank 2 (matrix) form data matrix. More...
 
template<int Tensor_Dim, int S = 1>
static auto getFTensor2SymmetricFromMat (MatrixDouble &data)
 
template<int Tensor_Dim01, int Tensor_Dim23, int S = 1, class T , class L , class A >
static FTensor::Ddg< FTensor::PackPtr< T *, 1 >, Tensor_Dim01, Tensor_Dim23 > getFTensor4DdgFromMat (ublas::matrix< T, L, A > &data)
 Get symmetric tensor rank 4 on first two and last indices from form data matrix. More...
 
template<int Tensor_Dim01, int Tensor_Dim23, int S = 1>
static auto getFTensor4DdgFromMat (MatrixDouble &data)
 
template<int Tensor_Dim01, int Tensor_Dim23, int S = 1, class T = double>
static auto getFTensor4DdgFromPtr (T *ptr)
 
template<int Tensor_Dim01, int Tensor_Dim2, int S = 1, class T , class L , class A >
static FTensor::Dg< FTensor::PackPtr< T *, 1 >, Tensor_Dim01, Tensor_Dim2 > getFTensor3DgFromMat (ublas::matrix< T, L, A > &data)
 Get symmetric tensor rank 3 on the first two indices from form data matrix. More...
 
template<int Tensor_Dim01, int Tensor_Dim2, int S = 1>
static auto getFTensor3DgFromMat (MatrixDouble &data)
 
template<int Tensor_Dim0, int Tensor_Dim1, int Tensor_Dim2, int Tensor_Dim3, int S = 1, class T , class L , class A >
static FTensor::Tensor4< FTensor::PackPtr< T *, 1 >, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2, Tensor_Dim3 > getFTensor4FromMat (ublas::matrix< T, L, A > &data)
 Get tensor rank 4 (non symmetric) form data matrix. More...
 
template<int Tensor_Dim0, int Tensor_Dim1, int Tensor_Dim2, int Tensor_Dim3, int S = 1>
static auto getFTensor4FromMat (MatrixDouble &data)
 
template<int Tensor_Dim0, int Tensor_Dim1, int Tensor_Dim2, int S = 1, class T , class L , class A >
static FTensor::Tensor3< FTensor::PackPtr< T *, 1 >, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2 > getFTensor3FromMat (ublas::matrix< T, L, A > &data)
 Get tensor rank 3 (non symmetries) form data matrix. More...
 
template<int Tensor_Dim0, int Tensor_Dim1, int Tensor_Dim2, int S = 1>
static auto getFTensor3FromMat (MatrixDouble &data)
 
template<int DIM, int S = DIM>
FTensor::Tensor1< FTensor::PackPtr< double *, S >, DIM > getFTensor1FromPtr (double *ptr)
 Make Tensor1 from pointer. More...
 
template<int DIM, int S = DIM>
FTensor::Tensor1< FTensor::PackPtr< adouble *, S >, DIM > getFTensor1FromPtr (adouble *ptr)
 
template<int DIM, int S = DIM>
FTensor::Tensor1< FTensor::PackPtr< std::complex< double > *, S >, DIM > getFTensor1FromPtr (std::complex< double > *ptr)
 
template<int DIM1, int DIM2, int S = DIM1 * DIM2>
auto getFTensor2FromPtr (double *ptr)
 Make Tensor2 from pointer. More...
 
template<int DIM1, int DIM2, int S = DIM1 * DIM2>
auto getFTensor2FromPtr (std::complex< double > *ptr)
 Make Tensor2 from pointer. More...
 
template<int DIM1, int DIM2>
FTensor::Tensor2< FTensor::PackPtr< double *, DIM1 *DIM2 >, DIM1, DIM2getFTensor2HVecFromPtr (double *ptr)
 Make Tensor2 for HVec base from pointer. More...
 
template<>
FTensor::Tensor2< FTensor::PackPtr< double *, 6 >, 3, 2 > getFTensor2HVecFromPtr< 3, 2 > (double *ptr)
 
template<>
FTensor::Tensor2< FTensor::PackPtr< double *, 9 >, 3, 3 > getFTensor2HVecFromPtr< 3, 3 > (double *ptr)
 
template<int DIM1, int DIM2, int DIM3>
FTensor::Tensor3< FTensor::PackPtr< double *, DIM1 *DIM2 *DIM3 >, DIM1, DIM2, DIM3 > getFTensor3FromPtr (double *ptr)
 
template<>
FTensor::Tensor3< FTensor::PackPtr< double *, 12 >, 3, 2, 2 > getFTensor3FromPtr< 3, 2, 2 > (double *ptr)
 
template<>
FTensor::Tensor3< FTensor::PackPtr< double *, 27 >, 3, 3, 3 > getFTensor3FromPtr< 3, 3, 3 > (double *ptr)
 
template<int DIM>
FTensor::Tensor2_symmetric< FTensor::PackPtr< double *,(DIM *(DIM+1))/2 >, DIM > getFTensor2SymmetricFromPtr (double *ptr)
 Make symmetric Tensor2 from pointer. More...
 
template<>
FTensor::Tensor2_symmetric< FTensor::PackPtr< double *, 6 >, 3 > getFTensor2SymmetricFromPtr< 3 > (double *ptr)
 
template<>
FTensor::Tensor2_symmetric< FTensor::PackPtr< double *, 3 >, 2 > getFTensor2SymmetricFromPtr< 2 > (double *ptr)
 
template<int DIM>
FTensor::Tensor2_symmetric< FTensor::PackPtr< adouble *,(DIM *(DIM+1))/2 >, DIM > getFTensor2SymmetricFromPtr (adouble *ptr)
 Make symmetric Tensor2 from pointer. More...
 
template<>
FTensor::Tensor2_symmetric< FTensor::PackPtr< adouble *, 6 >, 3 > getFTensor2SymmetricFromPtr< 3 > (adouble *ptr)
 
template<>
FTensor::Tensor2_symmetric< FTensor::PackPtr< adouble *, 3 >, 2 > getFTensor2SymmetricFromPtr< 2 > (adouble *ptr)
 
template<int DIM>
FTensor::Tensor2_symmetric< FTensor::PackPtr< double *, DIM *DIM >, DIM > getFTensor2SymmetricLowerFromPtr (double *ptr)
 Make symmetric Tensor2 from pointer, taking lower triangle of matrix. More...
 
template<>
FTensor::Tensor2_symmetric< FTensor::PackPtr< double *, 9 >, 3 > getFTensor2SymmetricLowerFromPtr< 3 > (double *ptr)
 
template<>
FTensor::Tensor2_symmetric< FTensor::PackPtr< double *, 4 >, 2 > getFTensor2SymmetricLowerFromPtr< 2 > (double *ptr)
 
template<int DIM, int S>
auto getFTensor1FromArray (VectorDouble &data)
 Get FTensor1 from array. More...
 
template<int DIM, int S = 0>
auto getFTensor1FromArray (VectorDouble3 &data)
 Get FTensor1 from array. More...
 
template<>
auto getFTensor1FromArray< 3, 0 > (VectorDouble3 &data)
 
template<int DIM, int S>
FTensor::Tensor1< FTensor::PackPtr< double *, S >, DIM > getFTensor1FromMat (MatrixDouble &data, const size_t rr)
 
template<>
FTensor::Tensor1< FTensor::PackPtr< double *, 1 >, 2 > getFTensor1FromMat (MatrixDouble &data, const size_t rr)
 
template<int DIM, int S>
FTensor::Tensor1< FTensor::PackPtr< double *, S >, DIM > getFTensor1FromArrayDiag (MatrixDouble &data, const size_t rr)
 Get FTensor1 from array. More...
 
template<>
FTensor::Tensor1< FTensor::PackPtr< double *, 2 >, 2 > getFTensor1FromArrayDiag (MatrixDouble &data, const size_t rr)
 
template<int DIM1, int DIM2, int S>
FTensor::Tensor2< FTensor::PackPtr< double *, S >, DIM1, DIM2getFTensor2FromArray (MatrixDouble &data, const size_t rr, const size_t cc=0)
 
template<int DIM1, int DIM2>
FTensor::Tensor2< double *, DIM1, DIM2getFTensor2FromArray (MatrixDouble &data, const size_t rr, const size_t cc, const int ss)
 
template<int S, typename T , typename L , typename A >
auto getFTensor2FromArray2by2 (ublas::matrix< T, L, A > &data, const FTensor::Number< S > &, const size_t rr, const size_t cc=0)
 
template<int S, typename T , typename L , typename A >
auto getFTensor2FromArray3by3 (ublas::matrix< T, L, A > &data, const FTensor::Number< S > &, const size_t rr, const size_t cc=0)
 
template<int DIM1, int DIM2, int S>
auto getFTensor2FromArray (MatrixADouble &data, const size_t rr)
 
MoFEMErrorCode computeMatrixInverse (MatrixDouble &mat)
 compute matrix inverse with lapack dgetri More...
 
MoFEMErrorCode solveLinearSystem (MatrixDouble &mat, VectorDouble &f)
 solve linear system with lapack dgesv More...
 
MoFEMErrorCode solveLinearSystem (const MatrixDouble &mat, VectorDouble &f)
 Solve linear system of equations using Lapack. More...
 
MoFEMErrorCode computeEigenValuesSymmetric (const MatrixDouble &mat, VectorDouble &eig, MatrixDouble &eigen_vec)
 compute eigenvalues of a symmetric matrix using lapack dsyev More...
 
template<int DIM, typename T1 , typename T2 >
MoFEMErrorCode computeEigenValuesSymmetric (FTensor::Tensor2< T1, DIM, DIM > &eigen_vec, FTensor::Tensor1< T2, DIM > &eig)
 compute eigenvalues of a symmetric matrix using lapack dsyev More...
 
template<int DIM, typename T1 , typename T2 , typename T3 >
MoFEMErrorCode computeEigenValuesSymmetric (const FTensor::Tensor2_symmetric< T1, DIM > &mat, FTensor::Tensor1< T2, DIM > &eig, FTensor::Tensor2< T3, DIM, DIM > &eigen_vec)
 compute eigenvalues of a symmetric tensor using lapack dsyev More...
 
template<typename T >
static auto determinantTensor3by3 (T &t)
 Calculate the determinant of a 3x3 matrix or a tensor of rank 2. More...
 
template<typename T >
static auto determinantTensor2by2 (T &t)
 Calculate the determinant of a 2x2 matrix or a tensor of rank 2. More...
 
template<typename T , int DIM>
static auto determinantTensor (FTensor::Tensor2< T, DIM, DIM > &t)
 Calculate the determinant of a tensor of rank DIM. More...
 
template<typename T , int DIM>
static auto determinantTensor (FTensor::Tensor2_symmetric< T, DIM > &t)
 Calculate the determinant of a tensor of rank DIM. More...
 
template<int Tensor_Dim, class T , class L , class A >
MoFEMErrorCode invertTensor3by3 (ublas::matrix< T, L, A > &jac_data, ublas::vector< T, A > &det_data, ublas::matrix< T, L, A > &inv_jac_data)
 Calculate inverse of tensor rank 2 at integration points. More...
 
template<>
MoFEMErrorCode invertTensor3by3< 3, double, ublas::row_major, DoubleAllocator > (MatrixDouble &jac_data, VectorDouble &det_data, MatrixDouble &inv_jac_data)
 
template<class T1 , class T2 >
MoFEMErrorCode determinantTensor3by3 (T1 &t, T2 &det)
 Calculate determinant 3 by 3. More...
 
template<class T1 , class T2 >
MoFEMErrorCode determinantTensor2by2 (T1 &t, T2 &det)
 Calculate determinant 2 by 2. More...
 
template<class T1 , class T2 , class T3 >
MoFEMErrorCode invertTensor3by3 (T1 &t, T2 &det, T3 &inv_t)
 Calculate matrix inverse 3 by 3. More...
 
template<class T1 , class T2 , class T3 >
MoFEMErrorCode invertTensor2by2 (T1 &t, T2 &det, T3 &inv_t)
 Calculate matrix inverse 2 by 2. More...
 
template<typename T1 , typename T2 , typename T3 , int DIM>
static MoFEMErrorCode invertTensor (FTensor::Tensor2< T1, DIM, DIM > &t, T2 &det, FTensor::Tensor2< T3, DIM, DIM > &inv_t)
 
template<typename T1 , typename T2 , typename T3 , int DIM>
static MoFEMErrorCode invertTensor (FTensor::Tensor2_symmetric< T1, DIM > &t, T2 &det, FTensor::Tensor2_symmetric< T3, DIM > &inv_t)
 
template<typename Extractor , typename Iterator >
moab::Range::iterator insertOrdered (Range &r, Extractor, Iterator begin_iter, Iterator end_iter)
 Insert ordered mofem multi-index into range. More...
 
template<typename MI , typename MO = Modify_change_nothing>
MoFEMErrorCode reconstructMultiIndex (const MI &mi, MO &&mo=Modify_change_nothing())
 Template used to reconstruct multi-index. More...
 
auto get_temp_meshset_ptr (moab::Interface &moab)
 Create smart pointer to temporary meshset. More...
 
auto id_from_handle (const EntityHandle h)
 
auto type_from_handle (const EntityHandle h)
 get type from entity handle More...
 
auto ent_form_type_and_id (const EntityType type, const EntityID id)
 get entity handle from type and id More...
 
auto dimension_from_handle (const EntityHandle h)
 get entity dimension form handle More...
 
auto type_name_from_handle (const EntityHandle h)
 get entity type name from handle More...
 
auto field_bit_from_bit_number (const int bit_number)
 get field bit id from bit number More...
 
template<typename I >
auto rangeInserter (const I f, const I s, boost::function< bool(I it)> tester, boost::function< MoFEMErrorCode(I f, I s)> inserter)
 Insert ranges. More...
 
template<typename Dest = void, typename... Arg>
constexpr auto make_array (Arg &&...arg)
 Create Array. More...
 
void tet_type_6 (moab::Interface &moab, const EntityHandle *conn, const EntityHandle *edge_new_nodes, EntityHandle *new_tets_conn)
 
int tet_type_5 (moab::Interface &moab, const EntityHandle *conn, const EntityHandle *edge_new_nodes, EntityHandle *new_tets_conn)
 
int tet_type_4 (const EntityHandle *conn, const int *split_edges, const EntityHandle *edge_new_nodes, EntityHandle *new_tets_conn)
 
int tet_type_3 (const EntityHandle *conn, const int *split_edges, const EntityHandle *edge_new_nodes, EntityHandle *new_tets_conn)
 
int tet_type_2 (const EntityHandle *conn, const int *split_edges, const EntityHandle *edge_new_nodes, EntityHandle *new_tets_conn)
 
void tet_type_1 (const EntityHandle *conn, const int split_edge, const EntityHandle edge_new_node, EntityHandle *new_tets_conn)
 
MoFEMErrorCode tri_type_1 (const EntityHandle *conn, const int split_edge, const EntityHandle edge_new_node, EntityHandle *new_tris_conn)
 
MoFEMErrorCode tri_type_2 (const EntityHandle *conn, const int *split_edges, const EntityHandle *edge_new_nodes, EntityHandle *new_tris_conn)
 
MoFEMErrorCode tri_type_3 (const EntityHandle *conn, const EntityHandle *edge_new_nodes, EntityHandle *new_tris_conn)
 
MoFEMErrorCode prism_type_1 (const EntityHandle *conn, const BitRefEdges split_edges, const EntityHandle *edge_new_nodes, EntityHandle *new_prism_conn)
 
MoFEMErrorCode prism_type_2 (const EntityHandle *conn, const BitRefEdges split_edges, const EntityHandle *edge_new_nodes, EntityHandle *new_prism_conn)
 
MoFEMErrorCode prism_type_3 (const EntityHandle *conn, const BitRefEdges split_edges, const EntityHandle *edge_new_nodes, EntityHandle *new_prism_conn)
 
MoFEMErrorCode quad_split_all_edges (const EntityHandle *conn, const EntityHandle *edge_new_nodes, EntityHandle *new_quad_conn)
 
MoFEMErrorCode Hcurl_Ainsworth_EdgeBaseFunctions_MBTET (int *sense, int *p, double *N, double *diffN, double *edgeN[], double *diff_edgeN[], int nb_integration_pts, PetscErrorCode(*base_polynomials)(int p, double s, double *diff_s, double *L, double *diffL, const int dim))
 Edge based H-curl base functions on tetrahedral. More...
 
MoFEMErrorCode Hcurl_Ainsworth_EdgeBaseFunctions_MBTET_ON_EDGE (int sense, int p, double *N, double *diffN, double *edgeN, double *diff_edgeN, int nb_integration_pts, PetscErrorCode(*base_polynomials)(int p, double s, double *diff_s, double *L, double *diffL, const int dim))
 Edge based H-curl base functions on edge. More...
 
MoFEMErrorCode Hcurl_Ainsworth_EdgeBaseFunctions_MBTET_ON_FACE (int *sense, int *p, double *N, double *diffN, double *edgeN[], double *diff_edgeN[], int nb_integration_pts, PetscErrorCode(*base_polynomials)(int p, double s, double *diff_s, double *L, double *diffL, const int dim))
 Edge based H-curl base functions on face. More...
 
MoFEMErrorCode Hcurl_Ainsworth_EdgeBasedFaceFunctions_MBTET (int *faces_nodes, int *p, double *N, double *diffN, double *phi_f_e[4][3], double *diff_phi_f_e[4][3], int nb_integration_pts, PetscErrorCode(*base_polynomials)(int p, double s, double *diff_s, double *L, double *diffL, const int dim))
 Face edge base functions of Hcurl space on tetrahedral. More...
 
MoFEMErrorCode Hcurl_Ainsworth_EdgeBasedFaceFunctions_MBTET_ON_FACE (int *faces_nodes, int p, double *N, double *diffN, double *phi_f_e[3], double *diff_phi_f_e[3], int nb_integration_pts, PetscErrorCode(*base_polynomials)(int p, double s, double *diff_s, double *L, double *diffL, const int dim))
 Face edge base functions of Hcurl space. More...
 
MoFEMErrorCode Hcurl_Ainsworth_BubbleFaceFunctions_MBTET (int *faces_nodes, int *p, double *N, double *diffN, double *phi_f[4], double *diff_phi_f[4], int nb_integration_pts, PetscErrorCode(*base_polynomials)(int p, double s, double *diff_s, double *L, double *diffL, const int dim))
 Face edge base functions of Hcurl space on face on tetrahedral. More...
 
MoFEMErrorCode Hcurl_Ainsworth_BubbleFaceFunctions_MBTET_ON_FACE (int *faces_nodes, int p, double *N, double *diffN, double *phi_f, double *diff_phi_f, int nb_integration_pts, PetscErrorCode(*base_polynomials)(int p, double s, double *diff_s, double *L, double *diffL, const int dim))
 Face edge base functions of Hcurl space on face. More...
 
MoFEMErrorCode Hcurl_Ainsworth_FaceInteriorFunctions_MBTET (int *faces_nodes, int p, double *N, double *diffN, double *phi_v, double *diff_phi_v, int nb_integration_pts, PetscErrorCode(*base_polynomials)(int p, double s, double *diff_s, double *L, double *diffL, const int dim))
 Face base interior function. More...
 
MoFEMErrorCode Hcurl_Ainsworth_VolumeInteriorFunctions_MBTET (int p, double *N, double *diffN, double *phi_v, double *diff_phi_v, int nb_integration_pts, PetscErrorCode(*base_polynomials)(int p, double s, double *diff_s, double *L, double *diffL, const int dim))
 Volume interior function. More...
 
MoFEMErrorCode Hcurl_Ainsworth_FaceFunctions_MBTET (int *face_nodes, int *p, double *N, double *diffN, double *phi_f[4], double *diff_phi_f[4], int nb_integration_pts, PetscErrorCode(*base_polynomials)(int p, double s, double *diff_s, double *L, double *diffL, const int dim))
 Face H-curl functions. More...
 
MoFEMErrorCode Hcurl_Ainsworth_FaceFunctions_MBTET_ON_FACE (int *faces_nodes, int p, double *N, double *diffN, double *phi_f, double *diff_phi_f, int nb_integration_pts, PetscErrorCode(*base_polynomials)(int p, double s, double *diff_s, double *L, double *diffL, const int dim))
 Face H-curl functions. More...
 
MoFEMErrorCode Hcurl_Ainsworth_VolumeFunctions_MBTET (int p, double *N, double *diffN, double *phi_v, double *diff_phi_v, int nb_integration_pts, PetscErrorCode(*base_polynomials)(int p, double s, double *diff_s, double *L, double *diffL, const int dim))
 H-curl volume base functions. More...
 
MoFEMErrorCode Hcurl_Demkowicz_EdgeBaseFunctions_MBTET (int *sense, int *p, double *n, double *diff_n, double *phi[], double *diff_phi[], int nb_integration_pts)
 Edge based H-curl base functions on tetrahedral. More...
 
MoFEMErrorCode Hcurl_Demkowicz_EdgeBaseFunctions_MBTRI (int *sense, int *p, double *n, double *diff_n, double *phi[], double *diff_phi[], int nb_integration_pts)
 Edge based H-curl base functions on teriangle. More...
 
MoFEMErrorCode Hcurl_Demkowicz_EdgeBaseFunctions_MBEDGE (int sense, int p, double *n, double *diff_n, double *phi, double *diff_phi, int nb_integration_pts)
 Edge based H-curl base functions on edge. More...
 
MoFEMErrorCode Hcurl_Demkowicz_FaceBaseFunctions_MBTET (int *faces_nodes, int *p, double *n, double *diff_n, double *phi[], double *diff_phi[], int nb_integration_pts)
 Face base interior function. More...
 
MoFEMErrorCode Hcurl_Demkowicz_FaceBaseFunctions_MBTRI (int *faces_nodes, int p, double *n, double *diff_n, double *phi, double *diff_phi, int nb_integration_pts)
 Face base interior function. More...
 
MoFEMErrorCode Hcurl_Demkowicz_VolumeBaseFunctions_MBTET (int p, double *n, double *diff_n, double *phi, double *diff_phi, int nb_integration_pts)
 Volume base interior function. More...
 
MoFEMErrorCode Hdiv_Ainsworth_EdgeFaceShapeFunctions_MBTET (int *faces_nodes, int *p, double *N, double *diffN, double *phi_f_e[4][3], double *diff_phi_f_e[4][3], int gdim, PetscErrorCode(*base_polynomials)(int p, double s, double *diff_s, double *L, double *diffL, const int dim))
 Hdiv base functions, Edge-based face functions by Ainsworth [1]. More...
 
MoFEMErrorCode Hdiv_Ainsworth_EdgeFaceShapeFunctions_MBTET_ON_FACE (int *faces_nodes, int p, double *N, double *diffN, double *phi_f_e[3], double *diff_phi_f_e[3], int gdim, int nb, PetscErrorCode(*base_polynomials)(int p, double s, double *diff_s, double *L, double *diffL, const int dim))
 Hdiv base functions, Edge-based face functions by Ainsworth [1]. More...
 
MoFEMErrorCode Hdiv_Ainsworth_FaceBubbleShapeFunctions (int *faces_nodes, int *p, double *N, double *diffN, double *phi_f[], double *diff_phi_f[], int gdim, PetscErrorCode(*base_polynomials)(int p, double s, double *diff_s, double *L, double *diffL, const int dim))
 Face bubble functions by Ainsworth [1]. More...
 
MoFEMErrorCode Hdiv_Ainsworth_FaceBubbleShapeFunctions_ON_FACE (int *faces_nodes, int p, double *N, double *diffN, double *phi_f, double *diff_phi_f, int gdim, int nb, PetscErrorCode(*base_polynomials)(int p, double s, double *diff_s, double *L, double *diffL, const int dim))
 Face bubble functions by Ainsworth [1]. More...
 
MoFEMErrorCode Hdiv_Ainsworth_EdgeBasedVolumeShapeFunctions_MBTET (int p, double *N, double *diffN, double *phi_v_e[6], double *diff_phi_v_e[6], int gdim, PetscErrorCode(*base_polynomials)(int p, double s, double *diff_s, double *L, double *diffL, const int dim))
 Hdiv base function, Edge-based interior (volume) functions by Ainsworth [1]. More...
 
MoFEMErrorCode Hdiv_Ainsworth_FaceBasedVolumeShapeFunctions_MBTET (int p, double *N, double *diffN, double *phi_v_f[], double *diff_phi_v_f[], int gdim, PetscErrorCode(*base_polynomials)(int p, double s, double *diff_s, double *L, double *diffL, const int dim))
 
MoFEMErrorCode Hdiv_Ainsworth_VolumeBubbleShapeFunctions_MBTET (int p, double *N, double *diffN, double *phi_v, double *diff_phi_v, int gdim, PetscErrorCode(*base_polynomials)(int p, double s, double *diff_s, double *L, double *diffL, const int dim))
 Interior bubble functions by Ainsworth [1]. More...
 
MoFEMErrorCode Hdiv_Demkowicz_Face_MBTET_ON_FACE (int *faces_nodes, int p, double *N, double *diffN, double *phi_f, double *diff_phi_f, int gdim, int nb)
 
MoFEMErrorCode Hdiv_Demkowicz_Interior_MBTET (int p, double *N, double *diffN, int p_face[], double *phi_f[4], double *diff_phi_f[4], double *phi_v, double *diff_phi_v, int gdim)
 
MoFEMErrorCode quad_split_all_edges (const EntityHandle *conn, const BitRefEdges split_edges, const EntityHandle *edge_new_nodes, EntityHandle *new_quad_conn)
 
template<class TYPE >
static MoFEMErrorCode get_value (MatrixDouble &pts_x, MatrixDouble &pts_t, TYPE *ctx)
 
MoFEMErrorCode setMPCParentAdjacency ()
 
template<typename T = EntityStorage>
MoFEMErrorCode VecSetValues (Vec V, const EntitiesFieldData::EntData &data, const double *ptr, InsertMode iora)
 Assemble PETSc vector. More...
 
template<>
MoFEMErrorCode VecSetValues< EntityStorage > (Vec V, const EntitiesFieldData::EntData &data, const double *ptr, InsertMode iora)
 
template<typename T = EntityStorage>
MoFEMErrorCode VecSetValues (Vec V, const EntitiesFieldData::EntData &data, const VectorDouble &vec, InsertMode iora)
 Assemble PETSc vector. More...
 
template<typename T = EntityStorage>
MoFEMErrorCode MatSetValues (Mat M, const EntitiesFieldData::EntData &row_data, const EntitiesFieldData::EntData &col_data, const double *ptr, InsertMode iora)
 Assemble PETSc matrix. More...
 
template<typename T = EntityStorage>
MoFEMErrorCode MatSetValues (Mat M, const EntitiesFieldData::EntData &row_data, const EntitiesFieldData::EntData &col_data, const MatrixDouble &mat, InsertMode iora)
 Assemble PETSc matrix. More...
 
template<>
MoFEMErrorCode MatSetValues< EntityStorage > (Mat M, const EntitiesFieldData::EntData &row_data, const EntitiesFieldData::EntData &col_data, const double *ptr, InsertMode iora)
 
template<>
MoFEMErrorCode VecSetValues< EssentialBcStorage > (Vec V, const EntitiesFieldData::EntData &data, const double *ptr, InsertMode iora)
 Set values to vector in operator. More...
 
template<>
MoFEMErrorCode MatSetValues< EssentialBcStorage > (Mat M, const EntitiesFieldData::EntData &row_data, const EntitiesFieldData::EntData &col_data, const double *ptr, InsertMode iora)
 Set values to matrix in operator. More...
 
template<>
MoFEMErrorCode MatSetValues< AssemblyTypeSelector< PETSC > > (Mat M, const EntitiesFieldData::EntData &row_data, const EntitiesFieldData::EntData &col_data, const double *ptr, InsertMode iora)
 
template<>
MoFEMErrorCode VecSetValues< AssemblyTypeSelector< PETSC > > (Vec V, const EntitiesFieldData::EntData &data, const double *ptr, InsertMode iora)
 
double scalar_fun_one (const double, const double, const double)
 
template<typename E >
MoFEMErrorCode addHOOpsVol (const std::string field, E &e, bool h1, bool hcurl, bool hdiv, bool l2)
 
template<typename E >
MoFEMErrorCode addHOOpsFace3D (const std::string field, E &e, bool hcurl, bool hdiv)
 
static void constructor_data (EntitiesFieldData *data, const EntityType type)
 
static void constructor_derived_data (DerivedEntitiesFieldData *derived_data, const boost::shared_ptr< EntitiesFieldData > &data_ptr)
 
std::ostream & operator<< (std::ostream &os, const EntitiesFieldData::EntData &e)
 
std::ostream & operator<< (std::ostream &os, const EntitiesFieldData &e)
 
static auto cmp_uid_lo (const boost::weak_ptr< FieldEntity > &a, const UId &b)
 
static auto cmp_uid_hi (const UId &b, const boost::weak_ptr< FieldEntity > &a)
 
template<typename ENTMULTIINDEX >
static int getMaxOrder (const ENTMULTIINDEX &multi_index)
 
boost::shared_ptr< BlockStructurecreateBlockMatStructure (DM dm, SchurFEOpsFEandFields schur_fe_op_vec)
 Create a Mat Diag Blocks object. More...
 
static MoFEMErrorCode mult_schur_block_shell (Mat mat, Vec x, Vec y, InsertMode iora, boost::function< int(DiagBlockIndex::BlockIndex::nth_index< 0 >::type::iterator)> shift_extractor, boost::shared_ptr< std::vector< double >> data_blocks_ptr, bool multiply_by_preconditioner)
 
static MoFEMErrorCode solve_schur_block_shell (Mat mat, Vec y, Vec x, InsertMode iora)
 
static PetscErrorCode mult (Mat mat, Vec x, Vec y)
 
static PetscErrorCode mult_add (Mat mat, Vec x, Vec y)
 
static PetscErrorCode solve (Mat mat, Vec x, Vec y)
 
static PetscErrorCode solve_add (Mat mat, Vec x, Vec y)
 
static PetscErrorCode zero_rows_columns (Mat A, PetscInt N, const PetscInt rows[], PetscScalar diag, Vec x, Vec b)
 
static PetscErrorCode mat_zero (Mat m)
 
static MoFEMErrorCode setSchurBlockMatOps (Mat mat_raw)
 
SchurShellMatData createBlockMat (DM dm, boost::shared_ptr< BlockStructure > data)
 Create a Schur Mat object. More...
 
MoFEMErrorCode shell_block_mat_asmb_wrap_impl (BlockStructure *ctx, const EntitiesFieldData::EntData &row_data, const EntitiesFieldData::EntData &col_data, const MatrixDouble &mat, InsertMode iora, boost::function< int(const DiagBlockIndex::Indexes *)> shift_extractor, boost::shared_ptr< std::vector< double >> data_blocks_ptr)
 
MoFEMErrorCode shell_block_mat_asmb_wrap (Mat M, const EntitiesFieldData::EntData &row_data, const EntitiesFieldData::EntData &col_data, const MatrixDouble &mat, InsertMode iora)
 
MoFEMErrorCode shell_block_preconditioner_mat_asmb_wrap (Mat M, const EntitiesFieldData::EntData &row_data, const EntitiesFieldData::EntData &col_data, const MatrixDouble &mat, InsertMode iora)
 
boost::shared_ptr< NestSchurDatacreateSchurNestedMatrixStruture (std::pair< SmartPetscObj< DM >, SmartPetscObj< DM >> dms, boost::shared_ptr< BlockStructure > block_mat_data, std::vector< std::string > fields_name, std::vector< boost::shared_ptr< Range >> field_ents, bool add_preconditioner_block=false)
 Get the Schur Nest Mat Array object. More...
 
std::pair< SmartPetscObj< Mat >, boost::shared_ptr< NestSchurData > > createSchurNestedMatrix (boost::shared_ptr< NestSchurData > schur_net_data_ptr)
 Create a Mat Diag Blocks object. More...
 
OpSchurAssembleBasecreateOpSchurAssembleBegin ()
 
OpSchurAssembleBasecreateOpSchurAssembleEnd (std::vector< std::string > fields_name, std::vector< boost::shared_ptr< Range >> field_ents, SmartPetscObj< AO > ao=SmartPetscObj< AO >(), SmartPetscObj< Mat > schur=SmartPetscObj< Mat >(), bool sym_schur=false, bool symm_op=false)
 Construct a new Op Schur Assemble End object. More...
 
OpSchurAssembleBasecreateOpSchurAssembleEnd (std::vector< std::string > fields_name, std::vector< boost::shared_ptr< Range >> field_ents, std::vector< SmartPetscObj< AO >> sequence_of_aos, std::vector< SmartPetscObj< Mat >> sequence_of_mats, std::vector< bool > sym_schur, bool symm_op, boost::shared_ptr< BlockStructure > diag_blocks)
 
OpSchurAssembleBasecreateOpSchurAssembleEnd (std::vector< std::string > fields_name, std::vector< boost::shared_ptr< Range >> field_ents, std::vector< SmartPetscObj< AO >> sequence_of_aos, std::vector< SmartPetscObj< Mat >> sequence_of_mats, std::vector< bool > sym_schur, std::vector< double > diag_eps, bool symm_op, boost::shared_ptr< BlockStructure > diag_blocks)
 
MoFEMErrorCode setSchurA00MatSolvePC (SmartPetscObj< PC > pc)
 Set PC for A00 block. More...
 
MoFEMErrorCode setSchurMatSolvePC (SmartPetscObj< PC > pc)
 
template<>
MoFEMErrorCode MatSetValues< SchurElemMats > (Mat M, const EntitiesFieldData::EntData &row_data, const EntitiesFieldData::EntData &col_data, const MatrixDouble &mat, InsertMode iora)
 
MoFEMErrorCode schur_mat_set_values_wrap (Mat M, const EntitiesFieldData::EntData &row_data, const EntitiesFieldData::EntData &col_data, const MatrixDouble &mat, InsertMode iora)
 
template<>
MoFEMErrorCode MatSetValues< AssemblyTypeSelector< SCHUR > > (Mat M, const EntitiesFieldData::EntData &row_data, const EntitiesFieldData::EntData &col_data, const MatrixDouble &mat, InsertMode iora)
 
template<>
MoFEMErrorCode MatSetValues< BlockStructure > (Mat M, const EntitiesFieldData::EntData &row_data, const EntitiesFieldData::EntData &col_data, const MatrixDouble &mat, InsertMode iora)
 
template<>
MoFEMErrorCode MatSetValues< SchurElemMatsBlock > (Mat M, const EntitiesFieldData::EntData &row_data, const EntitiesFieldData::EntData &col_data, const MatrixDouble &mat, InsertMode iora)
 
template<>
MoFEMErrorCode MatSetValues< SchurElemMatsPreconditionedBlock > (Mat M, const EntitiesFieldData::EntData &row_data, const EntitiesFieldData::EntData &col_data, const MatrixDouble &mat, InsertMode iora)
 
MoFEMErrorCode schurSwitchPreconditioner (boost::shared_ptr< BlockStructure > block_mat_data)
 Switch preconditioner. More...
 
MoFEMErrorCode schurSaveBlockMesh (boost::shared_ptr< BlockStructure > block_mat_data, std::string filename)
 Save block matrix as a mesh. More...
 
template<>
MoFEMErrorCode DMMoFEMSetNestSchurData (DM dm, boost::shared_ptr< NestSchurData >)
 
template<>
MoFEMErrorCode VecSetValues< SchurElemMats > (Vec V, const EntitiesFieldData::EntData &data, const VectorDouble &nf, InsertMode iora)
 
template<>
MoFEMErrorCode VecSetValues< AssemblyTypeSelector< SCHUR > > (Vec V, const EntitiesFieldData::EntData &data, const VectorDouble &nf, InsertMode iora)
 
template<>
MoFEMErrorCode MatSetValues< AssemblyTypeSelector< BLOCK_MAT > > (Mat M, const EntitiesFieldData::EntData &row_data, const EntitiesFieldData::EntData &col_data, const MatrixDouble &mat, InsertMode iora)
 
template<>
MoFEMErrorCode VecSetValues< AssemblyTypeSelector< BLOCK_MAT > > (Vec V, const EntitiesFieldData::EntData &data, const VectorDouble &nf, InsertMode iora)
 
template<>
MoFEMErrorCode VecSetValues< SchurElemMatsBlock > (Vec V, const EntitiesFieldData::EntData &data, const VectorDouble &nf, InsertMode iora)
 
template<>
MoFEMErrorCode MatSetValues< AssemblyTypeSelector< BLOCK_SCHUR > > (Mat M, const EntitiesFieldData::EntData &row_data, const EntitiesFieldData::EntData &col_data, const MatrixDouble &mat, InsertMode iora)
 
template<>
MoFEMErrorCode VecSetValues< AssemblyTypeSelector< BLOCK_SCHUR > > (Vec V, const EntitiesFieldData::EntData &data, const VectorDouble &nf, InsertMode iora)
 
template<>
MoFEMErrorCode MatSetValues< AssemblyTypeSelector< BLOCK_PRECONDITIONER_SCHUR > > (Mat M, const EntitiesFieldData::EntData &row_data, const EntitiesFieldData::EntData &col_data, const MatrixDouble &mat, InsertMode iora)
 
template<>
MoFEMErrorCode VecSetValues< AssemblyTypeSelector< BLOCK_PRECONDITIONER_SCHUR > > (Vec V, const EntitiesFieldData::EntData &data, const VectorDouble &nf, InsertMode iora)
 
DEPRECATED boost::shared_ptr< NestSchurDatagetNestSchurData (std::pair< SmartPetscObj< DM >, SmartPetscObj< DM >> dms, boost::shared_ptr< BlockStructure > block_mat_data, std::vector< std::string > fields_name, std::vector< boost::shared_ptr< Range >> field_ents, bool add_preconditioner_block=false)
 
template<class T >
static auto get_sub_iface_options_imp (T *const ptr, int) -> decltype(ptr->getSubInterfaceOptions())
 
template<class T >
static auto get_sub_iface_options_imp (T *const ptr, long) -> MoFEMErrorCode
 
template<class T >
static auto get_event_options_imp (T *const ptr, int) -> decltype(ptr->getEventOptions())
 
template<class T >
static auto get_event_options_imp (T *const ptr, long) -> MoFEMErrorCode
 
template<int V, typename std::enable_if<(V >=0), int >::type * = nullptr>
void set_ref_ent_basic_data_ptr_impl (boost::shared_ptr< BasicEntityData > &ptr)
 
std::ostream & operator<< (std::ostream &strm, const LogManager::SeverityLevel &level)
 
static std::vector< med_geometrie_element > moab2med_element_type (const EntityType type)
 
std::ostream & operator<< (std::ostream &os, const MedInterface::FieldData &field_data)
 
static auto min_non_abs (const double a, const double b)
 
template<typename T1 , typename T2 >
MoFEMErrorCode getLocalCoordinatesOnReferenceThreeNodeTriImpl (const T1 *elem_coords, const T2 *global_coords, const int nb_nodes, typename FTensor::promote< T1, T2 >::V *local_coords)
 
std::ostream & operator<< (std::ostream &os, const FENumeredDofEntity &e)
 
std::ostream & operator<< (std::ostream &os, const DisplacementCubitBcData &e)
 
std::ostream & operator<< (std::ostream &os, const ForceCubitBcData &e)
 
std::ostream & operator<< (std::ostream &os, const VelocityCubitBcData &e)
 
std::ostream & operator<< (std::ostream &os, const AccelerationCubitBcData &e)
 
std::ostream & operator<< (std::ostream &os, const TemperatureCubitBcData &e)
 
std::ostream & operator<< (std::ostream &os, const PressureCubitBcData &e)
 
std::ostream & operator<< (std::ostream &os, const HeatFluxCubitBcData &e)
 
std::ostream & operator<< (std::ostream &os, const CfgCubitBcData &e)
 
std::ostream & operator<< (std::ostream &os, const CubitMeshSets &e)
 
std::ostream & operator<< (std::ostream &os, const DofEntity &e)
 
std::ostream & operator<< (std::ostream &os, const NumeredDofEntity &e)
 
std::ostream & operator<< (std::ostream &os, const FEDofEntity &e)
 
std::ostream & operator<< (std::ostream &os, const FiniteElement &e)
 
std::ostream & operator<< (std::ostream &os, const EntFiniteElement &e)
 
std::ostream & operator<< (std::ostream &os, const NumeredEntFiniteElement &e)
 
template<typename ENTSVIEW , typename DOFSVIEW , typename EXTRACTOR , typename INSERTER >
static MoFEMErrorCode get_cache_data_dofs_view (ENTSVIEW &ents_view, DOFSVIEW &dofs_view, EXTRACTOR &&extractor, INSERTER &&inserter)
 
std::ostream & operator<< (std::ostream &os, const FieldEntity &e)
 
std::ostream & operator<< (std::ostream &os, const Field &e)
 
std::ostream & operator<< (std::ostream &os, const FieldEntityEntFiniteElementAdjacencyMap &e)
 
std::ostream & operator<< (std::ostream &os, const BlockSetAttributes &e)
 
std::ostream & operator<< (std::ostream &os, const Mat_Elastic &e)
 
std::ostream & operator<< (std::ostream &os, const Mat_Elastic_EberleinHolzapfel1 &e)
 
std::ostream & operator<< (std::ostream &os, const Mat_Thermal &e)
 
std::ostream & operator<< (std::ostream &os, const Mat_Moisture &e)
 
std::ostream & operator<< (std::ostream &os, const Block_BodyForces &e)
 
std::ostream & operator<< (std::ostream &os, const Mat_Elastic_TransIso &e)
 
std::ostream & operator<< (std::ostream &os, const Mat_Interf &e)
 
std::ostream & operator<< (std::ostream &os, const Problem &e)
 
std::ostream & operator<< (std::ostream &os, const RefElement &e)
 
std::ostream & operator<< (std::ostream &os, const RefElementVolume &e)
 
std::ostream & operator<< (std::ostream &os, const RefElementFace &e)
 
std::ostream & operator<< (std::ostream &os, const RefElement_EDGE &e)
 
std::ostream & operator<< (std::ostream &os, const RefElement_VERTEX &e)
 
std::ostream & operator<< (std::ostream &os, const RefEntity &e)
 
std::ostream & operator<< (std::ostream &os, const FieldSeries &e)
 
std::ostream & operator<< (std::ostream &os, const FieldSeriesStep &e)
 
template<EntityType TYPE>
EntityHandle get_id_for_max_type ()
 
template<EntityType TYPE>
EntityHandle get_id_for_min_type ()
 
EntityHandle get_id_for_max_type (const EntityType type)
 
EntityHandle get_id_for_min_type (const EntityType type)
 
void * get_tag_ptr (moab::Interface &moab, Tag th, EntityHandle ent, int *tag_size)
 Get the tag ptr object. More...
 
PetscErrorCode DMRegister_MoFEM (const char sname[])
 Register MoFEM problem. More...
 
PetscErrorCode DMMoFEMCreateMoFEM (DM dm, MoFEM::Interface *m_field_ptr, const char problem_name[], const MoFEM::BitRefLevel bit_level, const MoFEM::BitRefLevel bit_mask=MoFEM::BitRefLevel().set())
 Must be called by user to set MoFEM data structures. More...
 
PetscErrorCode DMMoFEMDuplicateDMCtx (DM dm, DM dm_duplicate)
 Duplicate internal data struture. More...
 
PetscErrorCode DMMoFEMSwapDMCtx (DM dm, DM dm_swap)
 Swap internal data struture. More...
 
PetscErrorCode DMMoFEMCreateSubDM (DM subdm, DM dm, const char problem_name[])
 Must be called by user to set Sub DM MoFEM data structures. More...
 
PetscErrorCode DMoFEMGetInterfacePtr (DM dm, MoFEM::Interface **m_field_ptr)
 Get pointer to MoFEM::Interface. More...
 
PetscErrorCode DMMoFEMGetProblemPtr (DM dm, const MoFEM::Problem **problem_ptr)
 Get pointer to problem data structure. More...
 
PetscErrorCode DMMoFEMSetDestroyProblem (DM dm, PetscBool destroy_problem)
 
PetscErrorCode DMMoFEMGetDestroyProblem (DM dm, PetscBool *destroy_problem)
 
PetscErrorCode DMMoFEMSetSquareProblem (DM dm, PetscBool square_problem)
 set squared problem More...
 
PetscErrorCode DMMoFEMGetSquareProblem (DM dm, PetscBool *square_problem)
 get squared problem More...
 
PetscErrorCode DMMoFEMResolveSharedFiniteElements (DM dm, std::string fe_name)
 Resolve shared entities. More...
 
PetscErrorCode DMMoFEMGetProblemFiniteElementLayout (DM dm, std::string fe_name, PetscLayout *layout)
 Get finite elements layout in the problem. More...
 
PetscErrorCode DMMoFEMAddElement (DM dm, std::string fe_name)
 add element to dm More...
 
PetscErrorCode DMMoFEMAddElement (DM dm, std::vector< std::string > fe_name)
 add element to dm More...
 
PetscErrorCode DMMoFEMUnSetElement (DM dm, std::string fe_name)
 unset element from dm More...
 
PetscErrorCode DMoFEMMeshToLocalVector (DM dm, Vec l, InsertMode mode, ScatterMode scatter_mode)
 set local (or ghosted) vector values on mesh for partition only More...
 
PetscErrorCode DMoFEMMeshToGlobalVector (DM dm, Vec g, InsertMode mode, ScatterMode scatter_mode)
 set ghosted vector values on all existing mesh entities More...
 
PetscErrorCode DMoFEMPreProcessFiniteElements (DM dm, MoFEM::FEMethod *method)
 execute finite element method for each element in dm (problem) More...
 
PetscErrorCode DMoFEMPostProcessFiniteElements (DM dm, MoFEM::FEMethod *method)
 execute finite element method for each element in dm (problem) More...
 
PetscErrorCode DMoFEMLoopFiniteElementsUpAndLowRank (DM dm, const char fe_name[], MoFEM::FEMethod *method, int low_rank, int up_rank, CacheTupleWeakPtr cache_ptr=CacheTupleSharedPtr())
 Executes FEMethod for finite elements in DM. More...
 
PetscErrorCode DMoFEMLoopFiniteElementsUpAndLowRank (DM dm, const std::string fe_name, boost::shared_ptr< MoFEM::FEMethod > method, int low_rank, int up_rank, CacheTupleWeakPtr cache_ptr=CacheTupleSharedPtr())
 Executes FEMethod for finite elements in DM. More...
 
PetscErrorCode DMoFEMLoopFiniteElements (DM dm, const char fe_name[], MoFEM::FEMethod *method, CacheTupleWeakPtr cache_ptr=CacheTupleSharedPtr())
 Executes FEMethod for finite elements in DM. More...
 
PetscErrorCode DMoFEMLoopFiniteElements (DM dm, const std::string fe_name, boost::shared_ptr< MoFEM::FEMethod > method, CacheTupleWeakPtr cache_ptr=CacheTupleSharedPtr())
 Executes FEMethod for finite elements in DM. More...
 
PetscErrorCode DMoFEMLoopDofs (DM dm, const char field_name[], MoFEM::DofMethod *method)
 execute method for dofs on field in problem More...
 
PetscErrorCode DMMoFEMKSPSetComputeRHS (DM dm, const char fe_name[], MoFEM::FEMethod *method, MoFEM::BasicMethod *pre_only, MoFEM::BasicMethod *post_only)
 set KSP right hand side evaluation function More...
 
PetscErrorCode DMMoFEMKSPSetComputeRHS (DM dm, const std::string fe_name, boost::shared_ptr< MoFEM::FEMethod > method, boost::shared_ptr< MoFEM::BasicMethod > pre_only, boost::shared_ptr< MoFEM::BasicMethod > post_only)
 set KSP right hand side evaluation function More...
 
PetscErrorCode DMMoFEMKSPSetComputeOperators (DM dm, const char fe_name[], MoFEM::FEMethod *method, MoFEM::BasicMethod *pre_only, MoFEM::BasicMethod *post_only)
 Set KSP operators and push mofem finite element methods. More...
 
PetscErrorCode DMMoFEMKSPSetComputeOperators (DM dm, const std::string fe_name, boost::shared_ptr< MoFEM::FEMethod > method, boost::shared_ptr< MoFEM::BasicMethod > pre_only, boost::shared_ptr< MoFEM::BasicMethod > post_only)
 Set KSP operators and push mofem finite element methods. More...
 
PetscErrorCode DMMoFEMSNESSetFunction (DM dm, const char fe_name[], MoFEM::FEMethod *method, MoFEM::BasicMethod *pre_only, MoFEM::BasicMethod *post_only)
 set SNES residual evaluation function More...
 
PetscErrorCode DMMoFEMSNESSetFunction (DM dm, const std::string fe_name, boost::shared_ptr< MoFEM::FEMethod > method, boost::shared_ptr< MoFEM::BasicMethod > pre_only, boost::shared_ptr< MoFEM::BasicMethod > post_only)
 set SNES residual evaluation function More...
 
PetscErrorCode DMMoFEMSNESSetJacobian (DM dm, const char fe_name[], MoFEM::FEMethod *method, MoFEM::BasicMethod *pre_only, MoFEM::BasicMethod *post_only)
 set SNES Jacobian evaluation function More...
 
PetscErrorCode DMMoFEMSNESSetJacobian (DM dm, const std::string fe_name, boost::shared_ptr< MoFEM::FEMethod > method, boost::shared_ptr< MoFEM::BasicMethod > pre_only, boost::shared_ptr< MoFEM::BasicMethod > post_only)
 set SNES Jacobian evaluation function More...
 
PetscErrorCode DMMoFEMTSSetIFunction (DM dm, const char fe_name[], MoFEM::FEMethod *method, MoFEM::BasicMethod *pre_only, MoFEM::BasicMethod *post_only)
 set TS implicit function evaluation function More...
 
PetscErrorCode DMMoFEMTSSetIFunction (DM dm, const std::string fe_name, boost::shared_ptr< MoFEM::FEMethod > method, boost::shared_ptr< MoFEM::BasicMethod > pre_only, boost::shared_ptr< MoFEM::BasicMethod > post_only)
 set TS implicit function evaluation function More...
 
PetscErrorCode DMMoFEMTSSetIJacobian (DM dm, const std::string fe_name, boost::shared_ptr< MoFEM::FEMethod > method, boost::shared_ptr< MoFEM::BasicMethod > pre_only, boost::shared_ptr< MoFEM::BasicMethod > post_only)
 set TS Jacobian evaluation function More...
 
PetscErrorCode DMMoFEMTSSetIJacobian (DM dm, const char fe_name[], MoFEM::FEMethod *method, MoFEM::BasicMethod *pre_only, MoFEM::BasicMethod *post_only)
 set TS Jacobian evaluation function More...
 
PetscErrorCode DMMoFEMTSSetRHSFunction (DM dm, const std::string fe_name, boost::shared_ptr< MoFEM::FEMethod > method, boost::shared_ptr< MoFEM::BasicMethod > pre_only, boost::shared_ptr< MoFEM::BasicMethod > post_only)
 set TS the right hand side function More...
 
PetscErrorCode DMMoFEMTSSetRHSFunction (DM dm, const char fe_name[], MoFEM::FEMethod *method, MoFEM::BasicMethod *pre_only, MoFEM::BasicMethod *post_only)
 
PetscErrorCode DMMoFEMTSSetRHSJacobian (DM dm, const std::string fe_name, boost::shared_ptr< MoFEM::FEMethod > method, boost::shared_ptr< MoFEM::BasicMethod > pre_only, boost::shared_ptr< MoFEM::BasicMethod > post_only)
 set TS the right hand side jacobian More...
 
PetscErrorCode DMMoFEMTSSetRHSJacobian (DM dm, const char fe_name[], MoFEM::FEMethod *method, MoFEM::BasicMethod *pre_only, MoFEM::BasicMethod *post_only)
 
PetscErrorCode DMMoFEMTSSetI2Function (DM dm, const std::string fe_name, boost::shared_ptr< MoFEM::FEMethod > method, boost::shared_ptr< MoFEM::BasicMethod > pre_only, boost::shared_ptr< MoFEM::BasicMethod > post_only)
 set TS implicit function evaluation function More...
 
PetscErrorCode DMMoFEMTSSetI2Function (DM dm, const char fe_name[], MoFEM::FEMethod *method, MoFEM::BasicMethod *pre_only, MoFEM::BasicMethod *post_only)
 set TS implicit function evaluation function More...
 
PetscErrorCode DMMoFEMTSSetI2Jacobian (DM dm, const std::string fe_name, boost::shared_ptr< MoFEM::FEMethod > method, boost::shared_ptr< MoFEM::BasicMethod > pre_only, boost::shared_ptr< MoFEM::BasicMethod > post_only)
 set TS Jacobian evaluation function More...
 
PetscErrorCode DMMoFEMTSSetI2Jacobian (DM dm, const char fe_name[], MoFEM::FEMethod *method, MoFEM::BasicMethod *pre_only, MoFEM::BasicMethod *post_only)
 set TS Jacobian evaluation function More...
 
PetscErrorCode DMMoFEMTSSetMonitor (DM dm, TS ts, const std::string fe_name, boost::shared_ptr< MoFEM::FEMethod > method, boost::shared_ptr< MoFEM::BasicMethod > pre_only, boost::shared_ptr< MoFEM::BasicMethod > post_only)
 Set Monitor To TS solver. More...
 
PetscErrorCode DMMoFEMTSSetMonitor (DM dm, TS ts, const char fe_name[], MoFEM::FEMethod *method, MoFEM::BasicMethod *pre_only, MoFEM::BasicMethod *post_only)
 Set Monitor To TS solver. More...
 
PetscErrorCode DMMoFEMGetKspCtx (DM dm, MoFEM::KspCtx **ksp_ctx)
 get MoFEM::KspCtx data structure More...
 
PetscErrorCode DMMoFEMGetKspCtx (DM dm, const boost::shared_ptr< MoFEM::KspCtx > &ksp_ctx)
 get MoFEM::KspCtx data structure More...
 
PetscErrorCode DMMoFEMSetKspCtx (DM dm, boost::shared_ptr< MoFEM::KspCtx > ksp_ctx)
 set MoFEM::KspCtx data structure More...
 
PetscErrorCode DMMoFEMGetSnesCtx (DM dm, MoFEM::SnesCtx **snes_ctx)
 get MoFEM::SnesCtx data structure More...
 
PetscErrorCode DMMoFEMGetSnesCtx (DM dm, const boost::shared_ptr< MoFEM::SnesCtx > &snes_ctx)
 get MoFEM::SnesCtx data structure More...
 
PetscErrorCode DMMoFEMSetSnesCtx (DM dm, boost::shared_ptr< MoFEM::SnesCtx > snes_ctx)
 Set MoFEM::SnesCtx data structure. More...
 
PetscErrorCode DMMoFEMGetTsCtx (DM dm, MoFEM::TsCtx **ts_ctx)
 get MoFEM::TsCtx data structure More...
 
PetscErrorCode DMMoFEMGetTsCtx (DM dm, const boost::shared_ptr< MoFEM::TsCtx > &ts_ctx)
 get MoFEM::TsCtx data structure More...
 
PetscErrorCode DMMoFEMSetTsCtx (DM dm, boost::shared_ptr< MoFEM::TsCtx > ts_ctx)
 Set MoFEM::TsCtx data structure. More...
 
PetscErrorCode DMMoFEMSetIsPartitioned (DM dm, PetscBool is_partitioned)
 
PetscErrorCode DMMoFEMGetIsPartitioned (DM dm, PetscBool *is_partitioned)
 
PetscErrorCode DMSetOperators_MoFEM (DM dm)
 Set operators for MoFEM dm. More...
 
PetscErrorCode DMCreate_MoFEM (DM dm)
 Create dm data structure with MoFEM data structure. More...
 
PetscErrorCode DMDestroy_MoFEM (DM dm)
 Destroys dm with MoFEM data structure. More...
 
PetscErrorCode DMCreateGlobalVector_MoFEM (DM dm, Vec *g)
 DMShellSetCreateGlobalVector. More...
 
PetscErrorCode DMCreateGlobalVector_MoFEM (DM dm, SmartPetscObj< Vec > &g_ptr)
 DMShellSetCreateGlobalVector. More...
 
PetscErrorCode DMCreateLocalVector_MoFEM (DM dm, Vec *l)
 DMShellSetCreateLocalVector. More...
 
PetscErrorCode DMCreateMatrix_MoFEM (DM dm, Mat *M)
 
PetscErrorCode DMCreateMatrix_MoFEM (DM dm, SmartPetscObj< Mat > &M)
 
PetscErrorCode DMSetFromOptions_MoFEM (DM dm)
 
PetscErrorCode DMSetUp_MoFEM (DM dm)
 
PetscErrorCode DMSubDMSetUp_MoFEM (DM subdm)
 
PetscErrorCode DMMoFEMAddSubFieldRow (DM dm, const char field_name[])
 
PetscErrorCode DMMoFEMAddSubFieldRow (DM dm, std::string field_name)
 
PetscErrorCode DMMoFEMAddSubFieldRow (DM dm, const char field_name[], boost::shared_ptr< Range > r_ptr)
 Add field to sub dm problem on rows. More...
 
PetscErrorCode DMMoFEMAddSubFieldRow (DM dm, std::string field_name, boost::shared_ptr< Range > r_ptr)
 Add field to sub dm problem on rows. More...
 
PetscErrorCode DMMoFEMAddSubFieldCol (DM dm, const char field_name[])
 
PetscErrorCode DMMoFEMAddSubFieldCol (DM dm, std::string field_name)
 
PetscErrorCode DMMoFEMAddSubFieldCol (DM dm, const char field_name[], boost::shared_ptr< Range > r_ptr)
 Add field to sub dm problem on columns. More...
 
PetscErrorCode DMMoFEMAddSubFieldCol (DM dm, std::string field_name, boost::shared_ptr< Range > r_ptr)
 Add field to sub dm problem on columns. More...
 
PetscErrorCode DMMoFEMGetIsSubDM (DM dm, PetscBool *is_sub_dm)
 
PetscErrorCode DMMoFEMGetSubRowIS (DM dm, IS *is)
 get sub problem is More...
 
PetscErrorCode DMMoFEMGetSubColIS (DM dm, IS *is)
 get sub problem is More...
 
PetscErrorCode DMMoFEMAddRowCompositeProblem (DM dm, const char prb_name[])
 Add problem to composite DM on row. More...
 
PetscErrorCode DMMoFEMAddColCompositeProblem (DM dm, const char prb_name[])
 Add problem to composite DM on col. More...
 
PetscErrorCode DMMoFEMGetIsCompDM (DM dm, PetscBool *is_comp_dm)
 Get if this DM is composite DM. More...
 
PetscErrorCode DMGlobalToLocalBegin_MoFEM (DM dm, Vec, InsertMode, Vec)
 
PetscErrorCode DMGlobalToLocalEnd_MoFEM (DM dm, Vec, InsertMode, Vec)
 
PetscErrorCode DMLocalToGlobalBegin_MoFEM (DM, Vec, InsertMode, Vec)
 
PetscErrorCode DMLocalToGlobalEnd_MoFEM (DM, Vec, InsertMode, Vec)
 
PetscErrorCode DMCreateFieldIS_MoFEM (DM dm, PetscInt *numFields, char ***fieldNames, IS **fields)
 
PetscErrorCode DMMoFEMGetFieldIS (DM dm, RowColData rc, const char field_name[], IS *is)
 get field is in the problem More...
 
PetscErrorCode DMMoFEMSetVerbosity (DM dm, const int verb)
 Set verbosity level. More...
 
MoFEMErrorCode DMMoFEMSetBlocMatData (DM dm, boost::shared_ptr< BlockStructure >)
 Set data for block mat. More...
 
MoFEMErrorCode DMMoFEMGetBlocMatData (DM dm, boost::shared_ptr< BlockStructure > &)
 Get data for block mat. More...
 
MoFEMErrorCode DMMoFEMCreateBlockMat (DM dm, Mat *mat)
 Create block matrix. More...
 
MoFEMErrorCode DMMoFEMCreateBlockMat (DM dm, SmartPetscObj< Mat > &mat)
 Create block matrix. More...
 
template<typename T >
MoFEMErrorCode DMMoFEMSetNestSchurData (DM dm, boost::shared_ptr< T >)
 Set data for nest schur (see specialisation in Schur.hpp) More...
 
MoFEMErrorCode DMMoFEMCreateNestSchurMat (DM dm, Mat *mat)
 Create nest schur matrix. More...
 
MoFEMErrorCode DMMoFEMCreateHybridL2Mat (DM dm, SmartPetscObj< Mat > &mat)
 Create matrix for hybridised system. More...
 
auto getInterfacePtr (DM dm)
 Get the Interface Ptr object. More...
 
auto getProblemPtr (DM dm)
 get problem pointer from DM More...
 
auto createDMMatrix (DM dm)
 Get smart matrix from DM. More...
 
auto createDMHybridisedL2Matrix (DM dm)
 Get smart hybridised L2 matrix from DM. More...
 
auto createDMBlockMat (DM dm)
 
auto createDMNestSchurMat (DM dm)
 
DEPRECATED auto smartCreateDMMatrix (DM dm)
 
auto createDMVector (DM dm)
 Get smart vector from DM. More...
 
DEPRECATED auto smartCreateDMVector (DM dm)
 
auto getDMKspCtx (DM dm)
 Get KSP context data structure used by DM. More...
 
DEPRECATED auto smartGetDMKspCtx (DM dm)
 
auto getDMSnesCtx (DM dm)
 Get SNES context data structure used by DM. More...
 
DEPRECATED auto smartGetDMSnesCtx (DM dm)
 
auto getDMTsCtx (DM dm)
 Get TS context data structure used by DM. More...
 
DEPRECATED auto smartGetDMTsCtx (DM dm)
 
auto getDMSubData (DM dm)
 Get sub problem data structure. More...
 
template<class S , class T0 , class T1 , class T2 >
static PetscErrorCode DMMoFEMKSPSetComputeRHS (DM dm, S fe_name, T0 method, T1 pre_only, T2 post_only)
 
template<class S , class T0 , class T1 , class T2 >
static PetscErrorCode DMMoFEMKSPSetComputeOperators (DM dm, S fe_name, T0 method, T1 pre_only, T2 post_only)
 
template<class S , class T0 , class T1 , class T2 >
static PetscErrorCode DMMoFEMSNESSetFunction (DM dm, S fe_name, T0 method, T1 pre_only, T2 post_only)
 
template<class S , class T0 , class T1 , class T2 >
static PetscErrorCode DMMoFEMSNESSetJacobian (DM dm, S fe_name, T0 method, T1 pre_only, T2 post_only)
 
template<class S , class T0 , class T1 , class T2 >
static PetscErrorCode DMMoFEMTSSetIFunction (DM dm, S fe_name, T0 method, T1 pre_only, T2 post_only)
 
template<class S , class T0 , class T1 , class T2 >
static PetscErrorCode DMMoFEMTSSetIJacobian (DM dm, S fe_name, T0 method, T1 pre_only, T2 post_only)
 
template<class S , class T0 , class T1 , class T2 >
static PetscErrorCode DMMoFEMTSSetRHSFunction (DM dm, S fe_name, T0 method, T1 pre_only, T2 post_only)
 
template<class S , class T0 , class T1 , class T2 >
static PetscErrorCode DMMoFEMTSSetRHSJacobian (DM dm, S fe_name, T0 method, T1 pre_only, T2 post_only)
 
template<class S , class T0 , class T1 , class T2 >
static PetscErrorCode DMMoFEMTSSetI2Function (DM dm, S fe_name, T0 method, T1 pre_only, T2 post_only)
 
template<class S , class T0 , class T1 , class T2 >
static PetscErrorCode DMMoFEMTSSetI2Jacobian (DM dm, S fe_name, T0 method, T1 pre_only, T2 post_only)
 
template<class S , class T0 , class T1 , class T2 >
static PetscErrorCode DMMoFEMTSSetMonitor (DM dm, TS ts, S fe_name, T0 method, T1 pre_only, T2 post_only)
 
PetscErrorCode KspRhs (KSP ksp, Vec f, void *ctx)
 Run over elements in the lists. More...
 
PetscErrorCode KspMat (KSP ksp, Mat A, Mat B, void *ctx)
 Run over elements in the list. More...
 
template<InsertMode MODE>
MoFEMErrorCode sub_mat_mult_generic (Mat a, Vec x, Vec f)
 
MoFEMErrorCode sub_mat_mult (Mat a, Vec x, Vec f)
 
MoFEMErrorCode sub_mat_mult_add (Mat a, Vec x, Vec f)
 
MoFEMErrorCode sub_mat_sor (Mat mat, Vec b, PetscReal omega, MatSORType flag, PetscReal shift, PetscInt its, PetscInt lits, Vec x)
 
MoFEMErrorCode DMMGViaApproxOrdersSetAO (DM dm, AO ao)
 Set DM ordering. More...
 
MoFEMErrorCode DMMGViaApproxOrdersPushBackCoarseningIS (DM, IS is, Mat A, bool create_sub_matrix, bool shell_sub_a)
 Push back coarsening level to MG via approximation orders. More...
 
MoFEMErrorCode DMMGViaApproxOrdersPopBackCoarseningIS (DM)
 Pop IS form MG via approximation orders. More...
 
MoFEMErrorCode DMMGViaApproxOrdersClearCoarseningIS (DM)
 Clear approximation orders. More...
 
MoFEMErrorCode DMRegister_MGViaApproxOrders (const char sname[])
 Register DM for Multi-Grid via approximation orders. More...
 
static MoFEMErrorCode ksp_set_operators (KSP ksp, Mat A, Mat B, void *ctx)
 
MoFEMErrorCode DMCreate_MGViaApproxOrders (DM dm)
 Create DM data structure for Multi-Grid via approximation orders. More...
 
PetscErrorCode DMDestroy_MGViaApproxOrders (DM dm)
 Destroy DM. More...
 
MoFEMErrorCode DMCreateMatrix_MGViaApproxOrders (DM dm, Mat *M)
 Create matrix for Multi-Grid via approximation orders. More...
 
MoFEMErrorCode DMCoarsen_MGViaApproxOrders (DM dm, MPI_Comm comm, DM *dmc)
 Coarsen DM. More...
 
MoFEMErrorCode DMCreateInterpolation_MGViaApproxOrders (DM dm1, DM dm2, Mat *mat, Vec *vec)
 Create interpolation matrix between data managers dm1 and dm2. More...
 
MoFEMErrorCode DMCreateGlobalVector_MGViaApproxOrders (DM dm, Vec *g)
 Create global vector for DMGViaApproxOrders. More...
 
boost::shared_ptr< PCMGSetUpViaApproxOrdersCtxcreatePCMGSetUpViaApproxOrdersCtx (DM dm, Mat A, bool use_shell_mat)
 createPCMGSetUpViaApproxOrdersCtx More...
 
MoFEMErrorCode PCMGSetUpViaApproxOrders (PC pc, boost::shared_ptr< PCMGSetUpViaApproxOrdersCtx > ctx, int verb=0)
 Function build MG structure. More...
 
PetscErrorCode SnesRhs (SNES snes, Vec x, Vec f, void *ctx)
 This is MoFEM implementation for the right hand side (residual vector) evaluation in SNES solver. More...
 
PetscErrorCode SnesMat (SNES snes, Vec x, Mat A, Mat B, void *ctx)
 This is MoFEM implementation for the left hand side (tangent matrix) evaluation in SNES solver. More...
 
MoFEMErrorCode SnesMoFEMSetAssemblyType (SNES snes, MatAssemblyType type)
 Set assembly type at the end of SnesMat. More...
 
MoFEMErrorCode SnesMoFEMSetBehavior (SNES snes, MoFEMTypes bh)
 Set behavior if finite element in sequence does not exist. More...
 
MoFEMErrorCode MoFEMSNESMonitorFields (SNES snes, PetscInt its, PetscReal fgnorm, SnesCtx *snes_ctx)
 Sens monitor printing residual field by field. More...
 
PetscErrorCode TsSetIFunction (TS ts, PetscReal t, Vec u, Vec u_t, Vec F, void *ctx)
 Set IFunction for TS solver. More...
 
PetscErrorCode TsSetIJacobian (TS ts, PetscReal t, Vec u, Vec u_t, PetscReal a, Mat A, Mat B, void *ctx)
 Set function evaluating jacobian in TS solver. More...
 
PetscErrorCode TsMonitorSet (TS ts, PetscInt step, PetscReal t, Vec u, void *ctx)
 Set monitor for TS solver. More...
 
PetscErrorCode TsSetRHSFunction (TS ts, PetscReal t, Vec u, Vec F, void *ctx)
 TS solver function. More...
 
PetscErrorCode TsSetRHSJacobian (TS ts, PetscReal t, Vec u, Mat A, Mat B, void *ctx)
 TS solver function. More...
 
PetscErrorCode TsSetI2Jacobian (TS ts, PetscReal t, Vec u, Vec u_t, Vec u_tt, PetscReal a, PetscReal aa, Mat A, Mat B, void *ctx)
 Calculation Jacobian for second order PDE in time. More...
 
PetscErrorCode TsSetI2Function (TS ts, PetscReal t, Vec u, Vec u_t, Vec u_tt, Vec F, void *ctx)
 Calculation the right hand side for second order PDE in time. More...
 
PetscErrorCode TSAdaptChooseMoFEM (TSAdapt adapt, TS ts, PetscReal h, PetscInt *next_sc, PetscReal *next_h, PetscBool *accept, PetscReal *wlte, PetscReal *wltea, PetscReal *wlter)
 
PetscErrorCode TSAdaptResetMoFEM (TSAdapt adapt)
 
PetscErrorCode TSAdaptDestroyMoFEM (TSAdapt adapt)
 
PetscErrorCode TSAdaptCreateMoFEM (TSAdapt adapt)
 Craete MOFEM adapt. More...
 

Variables

DEPRECATED typedef EdgeElementForcesAndSourcesCore EdgeElementForcesAndSourcesCoreBase
 
DEPRECATED typedef EntitiesFieldData DataForcesAndSourcesCore
 
DEPRECATED typedef DerivedEntitiesFieldData DerivedDataForcesAndSourcesCore
 
DEPRECATED typedef FaceElementForcesAndSourcesCore FaceElementForcesAndSourcesCoreBase
 
DEPRECATED typedef FlatPrismElementForcesAndSourcesCore FlatPrismElementForcesAndSurcesCore
 USe FlatPrismElementForcesAndSourcesCore. More...
 
DEPRECATED typedef ForcesAndSourcesCore ForcesAndSurcesCore
 
DEPRECATED typedef VolumeElementForcesAndSourcesCore VolumeElementForcesAndSourcesCoreBase
 
DEPRECATED typedef VolumeElementForcesAndSourcesCoreOnContactPrismSide VolumeElementForcesAndSourcesCoreOnContactPrismSideBase
 
DEPRECATED typedef VolumeElementForcesAndSourcesCoreOnSide VolumeElementForcesAndSourcesCoreOnSideBase
 
DEPRECATED typedef DofMethod EntMethod
 
const EntityHandle no_handle
 No entity handle is indicated by zero handle, i.e. root meshset. More...
 
static constexpr int edges_conn [] = {0, 1, 1, 2, 2, 0, 0, 3, 1, 3, 2, 3}
 
static constexpr int oposite_edge [] = {5, 3, 4, 1, 2, 0}
 
static constexpr int edge_permutations [6][6]
 
static constexpr int edge_mirror_cross [6] = {0, 3, 4, 1, 2, 5}
 
static constexpr int edge_mirror_vertical [6] = {0, 4, 3, 2, 1, 5}
 
static constexpr int cyclic_node_rotate_face_3 [3][4]
 
static constexpr int cyclic_edge_rotate_face_3 [3][6]
 
static constexpr char edge_bits_mark [] = {1, 2, 4, 8, 16, 32}
 
Tag th
 
Field_multiIndex::index< FieldName_mi_tag >::type::iterator field_it
 
VectorDouble L
 
VectorDouble K
 
constexpr bool debug_schur = false
 
constexpr int max_gemv_size = 2
 
constexpr const char MoFEM_BLOCK_MAT [] = "mofem_block_mat"
 
static char dummy_file
 

Detailed Description

implementation of Data Operators for Forces and Sources

name space of MoFEM library functions and classes

file DataOperators.cpp

Typedef Documentation

◆ BaseDerivatives

Definition at line 1126 of file EntitiesFieldData.hpp.

◆ BasicMethodsSequence

Definition at line 57 of file AuxPETSc.hpp.

◆ BcTemperature

template<CubitBC BC>
using MoFEM::BcTemperature = typedef BcScalarMeshsetType<BC>

Definition at line 16 of file BcManager.hpp.

◆ BlockFieldPair

Definition at line 566 of file ProblemsMultiIndices.hpp.

◆ CacheMatsTypeType

using MoFEM::CacheMatsTypeType = typedef std::map<std::pair<int, int>, boost::shared_ptr<MatrixDouble> >

Definition at line 19 of file BiLinearFormsIntegratorsImpl.hpp.

◆ CacheTuple

using MoFEM::CacheTuple = typedef std::tuple< std::vector<EntityCacheDofs>, std::vector<EntityCacheNumeredDofs>, std::vector<EntityCacheNumeredDofs> >

Definition at line 492 of file FEMultiIndices.hpp.

◆ CacheTupleSharedPtr

using MoFEM::CacheTupleSharedPtr = typedef boost::shared_ptr<CacheTuple>

Definition at line 495 of file FEMultiIndices.hpp.

◆ CacheTupleWeakPtr

using MoFEM::CacheTupleWeakPtr = typedef boost::weak_ptr<CacheTuple>

Definition at line 494 of file FEMultiIndices.hpp.

◆ ConstantFun

using MoFEM::ConstantFun = typedef boost::function<double()>

Constant function type.

Definition at line 166 of file FormsIntegrators.hpp.

◆ Core

using MoFEM::Core = typedef CoreTmp<0>
Examples
add_blockset.cpp, add_cubit_meshsets.cpp, adolc_plasticity.cpp, analytical_nonlinear_poisson.cpp, analytical_poisson.cpp, analytical_poisson_field_split.cpp, approx_sphere.cpp, bernstein_bezier_generate_base.cpp, bone_adaptation.cpp, boundary_marker.cpp, build_large_problem.cpp, build_problems.cpp, cell_forces.cpp, child_and_parent.cpp, continuity_check_on_contact_prism_side_ele.cpp, continuity_check_on_skeleton_3d.cpp, continuity_check_on_skeleton_with_simple_2d_for_h1.cpp, continuity_check_on_skeleton_with_simple_2d_for_hcurl.cpp, continuity_check_on_skeleton_with_simple_2d_for_hdiv.cpp, cubit_bc_test.cpp, delete_ho_nodes.cpp, dg_projection.cpp, dm_build_partitioned_mesh.cpp, dm_create_subdm.cpp, dm_partitioned_no_field.cpp, dynamic_first_order_con_law.cpp, edge_and_bubble_shape_functions_on_quad.cpp, eigen_elastic.cpp, elasticity.cpp, elasticity_mixed_formulation.cpp, ep.cpp, EshelbianPlasticity.cpp, field_blas.cpp, field_evaluator.cpp, field_to_vertices.cpp, forces_and_sources_testing_edge_element.cpp, forces_and_sources_testing_flat_prism_element.cpp, forces_and_sources_testing_users_base.cpp, free_surface.cpp, gauss_points_on_outer_product.cpp, hanging_node_approx.cpp, hcurl_check_approx_in_2d.cpp, hcurl_curl_operator.cpp, hcurl_divergence_operator_2d.cpp, hdiv_check_approx_in_3d.cpp, hdiv_divergence_operator.cpp, heat_equation.cpp, heat_method.cpp, hello_world.cpp, helmholtz.cpp, hertz_surface.cpp, higher_derivatives.cpp, level_set.cpp, log.cpp, loop_entities.cpp, lorentz_force.cpp, magnetostatic.cpp, mesh_cut.cpp, mesh_insert_interface_atom.cpp, mesh_smoothing.cpp, meshset_to_vtk.cpp, minimal_surface_area.cpp, mixed_poisson.cpp, mortar_contact.cpp, mortar_contact_thermal.cpp, navier_stokes.cpp, node_merge.cpp, nonlinear_dynamics.cpp, nonlinear_elastic.cpp, operators_tests.cpp, partition_mesh.cpp, phase.cpp, photon_diffusion.cpp, plastic.cpp, plate.cpp, plot_base.cpp, poisson_2d_dis_galerkin.cpp, poisson_2d_homogeneous.cpp, prism_elements_from_surface.cpp, prism_polynomial_approximation.cpp, quad_polynomial_approximation.cpp, reaction_diffusion.cpp, remove_entities_from_problem.cpp, remove_entities_from_problem_not_partitioned.cpp, scalar_check_approximation.cpp, schur_test_diag_mat.cpp, seepage.cpp, shallow_wave.cpp, simple_contact.cpp, simple_contact_thermal.cpp, simple_elasticity.cpp, simple_interface.cpp, simple_l2_only.cpp, split_sideset.cpp, tensor_divergence_operator.cpp, test_broken_space.cpp, test_cache_on_entities.cpp, test_jacobian_of_simple_contact_element.cpp, testing_jacobian_of_hook_element.cpp, testing_jacobian_of_hook_scaled_with_density_element.cpp, thermo_elastic.cpp, unsaturated_transport.cpp, wave_equation.cpp, and wavy_surface.cpp.

Definition at line 1148 of file Core.hpp.

◆ CreateRowComressedADJMatrix

Deprecated:
do not use, instead use CreateRowCompressedADJMatrix

Definition at line 78 of file MatrixManager.cpp.

◆ CubitMeshSet_multiIndex

Stores data about meshsets (see CubitMeshSets) storing data about boundary conditions, interfaces, sidesets, nodests, blocksets.

Parameters
Meshset_mi_tagindex by meshset handle
CubitMeshsetType_mi_tagindex by bc type, see CubitBC
CubitMeshsetMaskedType_mi_tagindex by NODESET, SIDESET, BLOCKSET only
CubitMeshsets_nameindex by meshset name
Composite_Cubit_msId_And_MeshsetType_mi_tagindex by meshset id and type NODESET, SIDESET or BLOCKSET

Example:

MeshsetsManager *m_mng;
CHKERR m_field.getInterface(m_mng);
auto &index = m_mng->getMeshsetsMultindex();
auto mit =
index.get<CubitMeshsetMaskedType_mi_tag>().lower_bound(BLOCKSET); auto
hi_mit =
index.get<CubitMeshsetMaskedType_mi_tag>().upper_bound(BLOCKSET);
// Make a loop over all BLOCKSET
for(;mit!=hi_mit;mit++) {
int id = mit->getMeshsetId(); // get blockset id
EntityHandle handle = mit->getMeshset(); // get block meshset
std::vector< double > attributes;
// get block attributes
auto mit->getAttributes(attributes);
// do something
}

Definition at line 388 of file BCMultiIndices.hpp.

◆ CubitMeshsetById

typedef CubitMeshSet_multiIndex::index<CubitMeshsetType_mi_tag>::type MoFEM::CubitMeshsetById

Definition at line 24 of file MeshsetsManager.hpp.

◆ CubitMeshsetByMask

typedef CubitMeshSet_multiIndex::index<CubitMeshsetMaskedType_mi_tag>::type MoFEM::CubitMeshsetByMask

Definition at line 18 of file MeshsetsManager.hpp.

◆ CubitMeshsetByName

typedef CubitMeshSet_multiIndex::index<CubitMeshsets_name>::type MoFEM::CubitMeshsetByName

Definition at line 21 of file MeshsetsManager.hpp.

◆ CubitMeshsetByType

typedef CubitMeshSet_multiIndex::index<CubitMeshsetType_mi_tag>::type MoFEM::CubitMeshsetByType

Definition at line 15 of file MeshsetsManager.hpp.

◆ DofEntityByUId

using MoFEM::DofEntityByUId = typedef DofEntity_multiIndex::index<Unique_mi_tag>::type

Definition at line 319 of file DofsMultiIndices.hpp.

◆ DofsAllocator

using MoFEM::DofsAllocator = typedef ublas::unbounded_array< FEDofEntity *, std::allocator<FEDofEntity *> >

Definition at line 21 of file EntitiesFieldData.hpp.

◆ EmptyFieldBlocks

Definition at line 567 of file ProblemsMultiIndices.hpp.

◆ FEFun

using MoFEM::FEFun = typedef boost::function<double(const FEMethod *fe_ptr)>

Lambda function used to scale with time.

Definition at line 160 of file FormsIntegrators.hpp.

◆ FEMethodsSequence

Definition at line 56 of file AuxPETSc.hpp.

◆ Field_multiIndex_view

typedef multi_index_container< boost::shared_ptr<Field>, indexed_by< ordered_unique<tag<BitFieldId_mi_tag>, const_mem_fun<Field, const BitFieldId &, &Field::getId>, LtBit<BitFieldId> > > > MoFEM::Field_multiIndex_view

Definition at line 516 of file FieldMultiIndices.hpp.

◆ FieldEntAllocator

using MoFEM::FieldEntAllocator = typedef ublas::unbounded_array< FieldEntity *, std::allocator<FieldEntity *> >

Definition at line 29 of file EntitiesFieldData.hpp.

◆ FieldEntity_multiIndex

using MoFEM::FieldEntity_multiIndex = typedef multi_index_container< boost::shared_ptr<FieldEntity>, indexed_by< ordered_unique<tag<Unique_mi_tag>, member<FieldEntity, UId, &FieldEntity::localUId> >, ordered_non_unique<tag<Ent_mi_tag>, const_mem_fun<FieldEntity::interface_type_RefEntity, EntityHandle, &FieldEntity::getEnt> > > >

Definition at line 489 of file FieldEntsMultiIndices.hpp.

◆ FieldEntity_multiIndex_ent_view

using MoFEM::FieldEntity_multiIndex_ent_view = typedef multi_index_container< boost::shared_ptr<FieldEntity>, indexed_by< sequenced<>, ordered_non_unique<tag<Ent_mi_tag>, const_mem_fun<FieldEntity::interface_type_RefEntity, EntityHandle, &FieldEntity::getEnt> > > >

Definition at line 456 of file FieldEntsMultiIndices.hpp.

◆ FieldEntity_multiIndex_spaceType_view

using MoFEM::FieldEntity_multiIndex_spaceType_view = typedef multi_index_container< boost::shared_ptr<FieldEntity>, indexed_by< sequenced<>, ordered_non_unique< tag<Composite_EntType_and_Space_mi_tag>, composite_key<FieldEntity, const_mem_fun<FieldEntity::interface_type_RefEntity, EntityType, &FieldEntity::getEntType>, const_mem_fun<FieldEntity::interface_type_Field, FieldSpace, &FieldEntity::getSpace> > > > >

Definition at line 476 of file FieldEntsMultiIndices.hpp.

◆ FieldEntity_vector_view

typedef std::vector<boost::weak_ptr<FieldEntity> > MoFEM::FieldEntity_vector_view

Definition at line 478 of file FieldEntsMultiIndices.hpp.

◆ i_FTIndex

template<int DIM>
using MoFEM::i_FTIndex = typedef FTensor::Index<'i', DIM>

Definition at line 1998 of file Templates.hpp.

◆ I_FTIndex

template<int DIM>
using MoFEM::I_FTIndex = typedef FTensor::Index<'I', DIM>

Definition at line 2004 of file Templates.hpp.

◆ Interface

Examples
add_blockset.cpp, add_cubit_meshsets.cpp, adolc_plasticity.cpp, analytical_nonlinear_poisson.cpp, analytical_poisson.cpp, analytical_poisson_field_split.cpp, approx_sphere.cpp, bernstein_bezier_generate_base.cpp, bone_adaptation.cpp, boundary_marker.cpp, build_large_problem.cpp, build_problems.cpp, cell_forces.cpp, child_and_parent.cpp, continuity_check_on_contact_prism_side_ele.cpp, continuity_check_on_skeleton_3d.cpp, continuity_check_on_skeleton_with_simple_2d_for_h1.cpp, continuity_check_on_skeleton_with_simple_2d_for_hcurl.cpp, continuity_check_on_skeleton_with_simple_2d_for_hdiv.cpp, cubit_bc_test.cpp, delete_ho_nodes.cpp, dg_projection.cpp, dm_build_partitioned_mesh.cpp, dm_create_subdm.cpp, dm_partitioned_no_field.cpp, dynamic_first_order_con_law.cpp, edge_and_bubble_shape_functions_on_quad.cpp, eigen_elastic.cpp, elasticity.cpp, elasticity_mixed_formulation.cpp, ElasticityMixedFormulation.hpp, ep.cpp, EshelbianPlasticity.cpp, field_blas.cpp, field_evaluator.cpp, field_to_vertices.cpp, forces_and_sources_testing_edge_element.cpp, forces_and_sources_testing_flat_prism_element.cpp, forces_and_sources_testing_users_base.cpp, free_surface.cpp, gauss_points_on_outer_product.cpp, hanging_node_approx.cpp, hcurl_check_approx_in_2d.cpp, hcurl_curl_operator.cpp, hcurl_divergence_operator_2d.cpp, hdiv_check_approx_in_3d.cpp, hdiv_divergence_operator.cpp, heat_equation.cpp, heat_method.cpp, hello_world.cpp, helmholtz.cpp, hertz_surface.cpp, higher_derivatives.cpp, HookeElement.hpp, HookeInternalStressElement.hpp, level_set.cpp, log.cpp, loop_entities.cpp, lorentz_force.cpp, MagneticElement.hpp, magnetostatic.cpp, mesh_cut.cpp, mesh_insert_interface_atom.cpp, mesh_smoothing.cpp, meshset_to_vtk.cpp, minimal_surface_area.cpp, mixed_poisson.cpp, mortar_contact.cpp, mortar_contact_thermal.cpp, navier_stokes.cpp, NavierStokesElement.hpp, node_merge.cpp, nonlinear_dynamics.cpp, nonlinear_elastic.cpp, operators_tests.cpp, partition_mesh.cpp, phase.cpp, photon_diffusion.cpp, plastic.cpp, plate.cpp, plot_base.cpp, poisson_2d_dis_galerkin.cpp, poisson_2d_homogeneous.cpp, prism_elements_from_surface.cpp, prism_polynomial_approximation.cpp, quad_polynomial_approximation.cpp, reaction_diffusion.cpp, Remodeling.cpp, Remodeling.hpp, remove_entities_from_problem.cpp, remove_entities_from_problem_not_partitioned.cpp, scalar_check_approximation.cpp, schur_test_diag_mat.cpp, seepage.cpp, shallow_wave.cpp, simple_contact.cpp, simple_contact_thermal.cpp, simple_elasticity.cpp, simple_interface.cpp, simple_l2_only.cpp, split_sideset.cpp, tensor_divergence_operator.cpp, test_broken_space.cpp, test_cache_on_entities.cpp, test_jacobian_of_simple_contact_element.cpp, testing_jacobian_of_hook_element.cpp, testing_jacobian_of_hook_scaled_with_density_element.cpp, thermo_elastic.cpp, unsaturated_transport.cpp, UnsaturatedFlow.hpp, wave_equation.cpp, and wavy_surface.cpp.

Definition at line 2010 of file Interface.hpp.

◆ j_FTIndex

template<int DIM>
using MoFEM::j_FTIndex = typedef FTensor::Index<'j', DIM>

Definition at line 1999 of file Templates.hpp.

◆ J_FTIndex

template<int DIM>
using MoFEM::J_FTIndex = typedef FTensor::Index<'J', DIM>

Definition at line 2005 of file Templates.hpp.

◆ k_FTIndex

template<int DIM>
using MoFEM::k_FTIndex = typedef FTensor::Index<'k', DIM>

Definition at line 2000 of file Templates.hpp.

◆ K_FTIndex

template<int DIM>
using MoFEM::K_FTIndex = typedef FTensor::Index<'K', DIM>

Definition at line 2006 of file Templates.hpp.

◆ l_FTIndex

template<int DIM>
using MoFEM::l_FTIndex = typedef FTensor::Index<'l', DIM>

Definition at line 2001 of file Templates.hpp.

◆ L_FTIndex

template<int DIM>
using MoFEM::L_FTIndex = typedef FTensor::Index<'L', DIM>

Definition at line 2007 of file Templates.hpp.

◆ m_FTIndex

template<int DIM>
using MoFEM::m_FTIndex = typedef FTensor::Index<'m', DIM>

Definition at line 2002 of file Templates.hpp.

◆ M_FTIndex

template<int DIM>
using MoFEM::M_FTIndex = typedef FTensor::Index<'M', DIM>

Definition at line 2008 of file Templates.hpp.

◆ n_FTIndex

template<int DIM>
using MoFEM::n_FTIndex = typedef FTensor::Index<'n', DIM>

Definition at line 2003 of file Templates.hpp.

◆ N_FTIndex

template<int DIM>
using MoFEM::N_FTIndex = typedef FTensor::Index<'N', DIM>

Definition at line 2009 of file Templates.hpp.

◆ NestSchurData

using MoFEM::NestSchurData = typedef std::tuple< std::array<SmartPetscObj<Mat>, 4>, std::array<boost::shared_ptr<BlockStructure>, 4>, boost::shared_ptr<BlockStructure>, std::pair<SmartPetscObj<IS>, SmartPetscObj<IS> > >

Definition at line 106 of file Schur.hpp.

◆ NumeredDofEntity_multiIndex_coeff_idx_ordered_non_unique

using MoFEM::NumeredDofEntity_multiIndex_coeff_idx_ordered_non_unique = typedef multi_index_container< boost::shared_ptr<NumeredDofEntity>, indexed_by<ordered_non_unique<const_mem_fun< NumeredDofEntity::interface_type_DofEntity, FieldCoefficientsNumber, &NumeredDofEntity::getDofCoeffIdx> >> >

Definition at line 521 of file DofsMultiIndices.hpp.

◆ NumeredDofEntity_multiIndex_idx_view_hashed

using MoFEM::NumeredDofEntity_multiIndex_idx_view_hashed = typedef multi_index_container< boost::shared_ptr<NumeredDofEntity>, indexed_by<hashed_unique<const_mem_fun<NumeredDofEntity, DofIdx, &NumeredDofEntity::getDofIdx> >> >

Definition at line 508 of file DofsMultiIndices.hpp.

◆ NumeredDofEntity_multiIndex_petsc_local_dof_view_ordered_non_unique

using MoFEM::NumeredDofEntity_multiIndex_petsc_local_dof_view_ordered_non_unique = typedef multi_index_container<boost::shared_ptr<NumeredDofEntity>, indexed_by<ordered_non_unique<const_mem_fun< NumeredDofEntity, DofIdx, &NumeredDofEntity::getPetscLocalDofIdx> >> >

Definition at line 514 of file DofsMultiIndices.hpp.

◆ NumeredDofEntity_multiIndex_uid_view_ordered

using MoFEM::NumeredDofEntity_multiIndex_uid_view_ordered = typedef multi_index_container<boost::shared_ptr<NumeredDofEntity>, indexed_by< ordered_unique<const_mem_fun< NumeredDofEntity::interface_type_DofEntity, UId, &NumeredDofEntity::getLocalUniqueId > > > >

Definition at line 503 of file DofsMultiIndices.hpp.

◆ OpCalculateHOJacForFace

◆ OpCalculateHOJacForFaceEmbeddedIn3DSpace

◆ OpCalculateHOJacVolume

◆ OpCalculateScalarFieldValuesDot

◆ OpCalculateScalarFieldValuesDotDot

Examples
wave_equation.cpp.

Definition at line 275 of file UserDataOperators.hpp.

◆ OpCalculateScalarValuesDot

Deprecated:
Name inconsistent with other operators

Definition at line 281 of file UserDataOperators.hpp.

◆ OpSetContrariantPiolaTransformOnEdge

Deprecated:
Name is deprecated and this is added for back compatibility

Definition at line 3100 of file UserDataOperators.hpp.

◆ OpSetContravariantPiolaTransformOnFace2D

◆ OpSetContravariantPiolaTransformOnFace2DEmbeddedIn3DSpace

Definition at line 3078 of file UserDataOperators.hpp.

◆ OpSetCovariantPiolaTransformOnFace2D

Definition at line 3028 of file UserDataOperators.hpp.

◆ OpSetInvJacHcurlFace

◆ OpSetInvJacHcurlFaceEmbeddedIn3DSpace

Definition at line 2979 of file UserDataOperators.hpp.

◆ PostProcBrokenMeshInMoabBaseBegin

Enable to run stack of post-processing elements. Use this to begin stack.

See scalar_check_approximation.cpp

Examples
EshelbianPlasticity.cpp.

Definition at line 934 of file PostProcBrokenMeshInMoabBase.hpp.

◆ PostProcBrokenMeshInMoabBaseCont

Enable to run stack of post-processing elements.

See scalar_check_approximation.cpp

Template Parameters
E

Definition at line 945 of file PostProcBrokenMeshInMoabBase.hpp.

◆ PostProcBrokenMeshInMoabBaseEnd

Enable to run stack of post-processing elements. Use this to end stack.

Examples
EshelbianPlasticity.cpp.

Definition at line 952 of file PostProcBrokenMeshInMoabBase.hpp.

◆ PostProcGenerateRefMeshPtr

Definition at line 54 of file PostProcBrokenMeshInMoabBase.hpp.

◆ RefElement_multiIndex_parents_view

typedef multi_index_container< boost::shared_ptr<RefElement>, indexed_by< ordered_unique<tag<Ent_mi_tag>, const_mem_fun<RefElement::interface_type_RefEntity, EntityHandle, &RefElement::getEnt> >, ordered_non_unique< tag<Ent_Ent_mi_tag>, const_mem_fun<RefElement::interface_type_RefEntity, EntityHandle, &RefElement::getParentEnt> >, ordered_non_unique< tag<Composite_ParentEnt_And_BitsOfRefinedEdges_mi_tag>, composite_key< RefElement, const_mem_fun<RefElement::interface_type_RefEntity, EntityHandle, &RefElement::getParentEnt>, const_mem_fun<RefElement, int, &RefElement::getBitRefEdgesUlong> > > > > MoFEM::RefElement_multiIndex_parents_view

Definition at line 30 of file MeshRefinement.cpp.

◆ RefEntity

using MoFEM::RefEntity = typedef RefEntityTmp<0>

Definition at line 566 of file RefEntsMultiIndices.hpp.

◆ RefEntity_multiIndex_view_by_ordered_parent_entity

using MoFEM::RefEntity_multiIndex_view_by_ordered_parent_entity = typedef multi_index_container< boost::shared_ptr<RefEntity>, indexed_by<ordered_non_unique<const_mem_fun<RefEntity, EntityHandle, &RefEntity::getParentEnt> >, hashed_unique< tag<Composite_EntType_and_ParentEntType_mi_tag>, composite_key<boost::shared_ptr<RefEntity>, const_mem_fun<RefEntity, EntityHandle, &RefEntity::getEnt>, const_mem_fun<RefEntity, EntityHandle, &RefEntity::getParentEnt> >> > >

Definition at line 792 of file RefEntsMultiIndices.hpp.

◆ RefEntity_multiIndex_view_sequence_ordered_view

using MoFEM::RefEntity_multiIndex_view_sequence_ordered_view = typedef multi_index_container< boost::shared_ptr<RefEntity>, indexed_by< sequenced<>, ordered_unique<tag<Ent_mi_tag>, const_mem_fun<RefEntity, EntityHandle, &RefEntity::getEnt> >> >

Definition at line 799 of file RefEntsMultiIndices.hpp.

◆ SchurFEOpsFEandFields

using MoFEM::SchurFEOpsFEandFields = typedef std::vector< std::pair<std::string, std::vector<SchurFieldPair> > >

Definition at line 73 of file Schur.hpp.

◆ SchurFieldPair

using MoFEM::SchurFieldPair = typedef std::pair<std::string, std::string>

Definition at line 67 of file Schur.hpp.

◆ SchurShellMatData

using MoFEM::SchurShellMatData = typedef std::pair<SmartPetscObj<Mat>, boost::shared_ptr<BlockStructure> >

Definition at line 88 of file Schur.hpp.

◆ Sev

◆ ShardVec

template<typename T >
using MoFEM::ShardVec = typedef boost::shared_ptr<std::vector<T> >

Definition at line 10 of file Templates.hpp.

◆ TimeFun

using MoFEM::TimeFun = typedef boost::function<double(double)>

Lambda function used to scale with time.

Definition at line 154 of file FormsIntegrators.hpp.

◆ TimeScaleVector2

Definition at line 127 of file ScalingMethod.hpp.

◆ TimeScaleVector3

Definition at line 126 of file ScalingMethod.hpp.

◆ VecOfTimeScalingMethods

using MoFEM::VecOfTimeScalingMethods = typedef std::vector<boost::shared_ptr<ScalingMethod> >

Vector of time scaling methods.

Definition at line 20 of file Natural.hpp.

◆ VecOfTimeVectorScalingMethods

template<int FIELD_DIM>
using MoFEM::VecOfTimeVectorScalingMethods = typedef std::vector<boost::shared_ptr<TimeScaleVector<FIELD_DIM> >>

Vector of time vector scaling methods.

Definition at line 28 of file Natural.hpp.

◆ VectorDofs

using MoFEM::VectorDofs = typedef ublas::vector<FEDofEntity *, DofsAllocator>

Definition at line 23 of file EntitiesFieldData.hpp.

◆ VectorFieldEntities

using MoFEM::VectorFieldEntities = typedef ublas::vector<FieldEntity *, FieldEntAllocator>

Definition at line 31 of file EntitiesFieldData.hpp.

◆ VectorFunc

typedef boost::function<VectorDouble(const double, const double, const double)> MoFEM::VectorFunc

Definition at line 98 of file NormsOperators.hpp.

Enumeration Type Documentation

◆ MPC

enum MoFEM::MPC
strong
Enumerator
TIE 
RIGID_BODY 
COUPLING 
EMBEDDED_REGION 
EQUATION 
LAST 

Definition at line 16 of file EssentialMPCsData.hpp.

Function Documentation

◆ addHOOpsFace3D()

template<typename E >
MoFEMErrorCode MoFEM::addHOOpsFace3D ( const std::string  field,
E e,
bool  hcurl,
bool  hdiv 
)
Deprecated:
do not use this function, instead use AddHOOps.
Template Parameters
E
Parameters
field
e
hcurl
hdiv
Returns
MoFEMErrorCode
Examples
elasticity.cpp, mortar_contact_thermal.cpp, nonlinear_dynamics.cpp, simple_contact.cpp, and simple_contact_thermal.cpp.

Definition at line 699 of file HODataOperators.hpp.

700  {
701  std::vector<FieldSpace> spaces;
702  if (hcurl)
703  spaces.push_back(HCURL);
704  if (hdiv)
705  spaces.push_back(HDIV);
706  return AddHOOps<2, 3, 3>::add(e.getOpPtrVector(), spaces, field);
707 }

◆ addHOOpsVol()

template<typename E >
MoFEMErrorCode MoFEM::addHOOpsVol ( const std::string  field,
E e,
bool  h1,
bool  hcurl,
bool  hdiv,
bool  l2 
)
Deprecated:
do not use this function, instead use AddHOOps.
Template Parameters
E
Parameters
field
e
h1
hcurl
hdiv
l2
Returns
MoFEMErrorCode
Examples
elasticity.cpp, HookeElement.cpp, MagneticElement.hpp, navier_stokes.cpp, nonlinear_dynamics.cpp, NonlinearElasticElementInterface.hpp, and Remodeling.cpp.

Definition at line 674 of file HODataOperators.hpp.

675  {
676  std::vector<FieldSpace> spaces;
677  if (h1)
678  spaces.push_back(H1);
679  if (hcurl)
680  spaces.push_back(HCURL);
681  if (hdiv)
682  spaces.push_back(HDIV);
683  if (l2)
684  spaces.push_back(L2);
685  return AddHOOps<3, 3, 3>::add(e.getOpPtrVector(), spaces, field);
686 }

◆ cmp_uid_hi()

static auto MoFEM::cmp_uid_hi ( const UId b,
const boost::weak_ptr< FieldEntity > &  a 
)
static

Definition at line 29 of file ForcesAndSourcesCore.cpp.

29  {
30  if (auto a_ptr = a.lock()) {
31  if (b < a_ptr->getLocalUniqueId())
32  return true;
33  else
34  return false;
35  } else {
36  return true;
37  }
38 }

◆ cmp_uid_lo()

static auto MoFEM::cmp_uid_lo ( const boost::weak_ptr< FieldEntity > &  a,
const UId b 
)
static

Definition at line 18 of file ForcesAndSourcesCore.cpp.

18  {
19  if (auto a_ptr = a.lock()) {
20  if (a_ptr->getLocalUniqueId() < b)
21  return true;
22  else
23  return false;
24  } else {
25  return false;
26  }
27 }

◆ computeEigenValuesSymmetric() [1/3]

template<int DIM, typename T1 , typename T2 , typename T3 >
MoFEMErrorCode MoFEM::computeEigenValuesSymmetric ( const FTensor::Tensor2_symmetric< T1, DIM > &  mat,
FTensor::Tensor1< T2, DIM > &  eig,
FTensor::Tensor2< T3, DIM, DIM > &  eigen_vec 
)
inline

compute eigenvalues of a symmetric tensor using lapack dsyev

Template Parameters
DIM
Parameters
matinput tensor pointer of size DIM x DIM
eigoutput eigen values sorted
eigen_vecoutput matrix of row eigen vectors
Returns
MoFEMErrorCode

Definition at line 1520 of file Templates.hpp.

1522  {
1524  for (int ii = 0; ii != DIM; ii++)
1525  for (int jj = 0; jj != DIM; jj++)
1526  eigen_vec(ii, jj) = mat(ii, jj);
1527 
1528  CHKERR computeEigenValuesSymmetric(eigen_vec, eig);
1529 
1531 }

◆ computeEigenValuesSymmetric() [2/3]

MoFEMErrorCode MoFEM::computeEigenValuesSymmetric ( const MatrixDouble mat,
VectorDouble eig,
MatrixDouble eigen_vec 
)
inline

compute eigenvalues of a symmetric matrix using lapack dsyev

Parameters
matinput symmetric matrix
eigoutput eigen values sorted
eigen_vecoutput matrix of row eigen vectors
Returns
MoFEMErrorCode
Examples
EshelbianOperators.cpp, and HenckyOps.hpp.

Definition at line 1452 of file Templates.hpp.

1454  {
1456 
1457  const size_t M = mat.size1();
1458  const size_t N = mat.size2();
1459 
1460  if (M == 0 || M != N)
1461  SETERRQ2(
1462  PETSC_COMM_SELF, MOFEM_DATA_INCONSISTENCY,
1463  "The input matrix for eigen value computation is not square %d != %d",
1464  M, N);
1465  if (eig.size() != M)
1466  eig.resize(M, false);
1467 
1468  eigen_vec = mat;
1469  const int n = M;
1470  const int lda = M;
1471  const int size = (M + 2) * M;
1472  int lwork = size;
1473  double *work = new double[size];
1474 
1475  if (lapack_dsyev('V', 'U', n, &*eigen_vec.data().begin(), lda,
1476  &*eig.data().begin(), work, lwork) > 0)
1477  SETERRQ(PETSC_COMM_SELF, MOFEM_INVALID_DATA,
1478  "The algorithm failed to compute eigenvalues.");
1479 
1480  delete[] work;
1482 }

◆ computeEigenValuesSymmetric() [3/3]

template<int DIM, typename T1 , typename T2 >
MoFEMErrorCode MoFEM::computeEigenValuesSymmetric ( FTensor::Tensor2< T1, DIM, DIM > &  eigen_vec,
FTensor::Tensor1< T2, DIM > &  eig 
)
inline

compute eigenvalues of a symmetric matrix using lapack dsyev

Template Parameters
DIM
Parameters
eigen_vecinput / output DIM x DIM matrix of row eigen vectors
eigoutput eigen values sorted
Returns
MoFEMErrorCode

Definition at line 1493 of file Templates.hpp.

1494  {
1496 
1497  const int n = DIM;
1498  const int lda = DIM;
1499  const int lwork = (DIM + 2) * DIM;
1500  std::array<double, (DIM + 2) * DIM> work;
1501 
1502  if (lapack_dsyev('V', 'U', n, &eigen_vec(0, 0), lda, &eig(0), work.data(),
1503  lwork) > 0)
1504  SETERRQ(PETSC_COMM_SELF, MOFEM_INVALID_DATA,
1505  "The algorithm failed to compute eigenvalues.");
1507 }

◆ computeMatrixInverse()

MoFEMErrorCode MoFEM::computeMatrixInverse ( MatrixDouble mat)
inline

compute matrix inverse with lapack dgetri

Parameters
matinput square matrix / output inverse matrix
Returns
MoFEMErrorCode

Definition at line 1365 of file Templates.hpp.

1365  {
1367 
1368  const size_t M = mat.size1();
1369  const size_t N = mat.size2();
1370 
1371  if (M != N)
1372  SETERRQ2(PETSC_COMM_SELF, MOFEM_DATA_INCONSISTENCY,
1373  "The input matrix for inverse computation is not square %d != %d",
1374  M, N);
1375 
1376  int *ipv = new int[N];
1377  int lwork = N * N;
1378  double *work = new double[lwork];
1379  int info;
1380  info = lapack_dgetrf(N, N, &*mat.data().begin(), N, ipv);
1381  if (info != 0)
1382  SETERRQ1(PETSC_COMM_SELF, MOFEM_DATA_INCONSISTENCY,
1383  "lapack error info = %d", info);
1384  info = lapack_dgetri(N, &*mat.data().begin(), N, ipv, work, lwork);
1385  if (info != 0)
1386  SETERRQ1(PETSC_COMM_SELF, MOFEM_OPERATION_UNSUCCESSFUL,
1387  "lapack error info = %d", info);
1388 
1389  delete[] ipv;
1390  delete[] work;
1391 
1393 }

◆ constructor_data()

static void MoFEM::constructor_data ( EntitiesFieldData data,
const EntityType  type 
)
static

Definition at line 42 of file EntitiesFieldData.cpp.

42  {
43 
45 
46  auto set_default = [&]() {
47  std::array<size_t, MBMAXTYPE> count;
48  std::fill(count.begin(), count.end(), 0);
49  const int dim_type = moab::CN::Dimension(type);
50  data->dataOnEntities[MBVERTEX].resize(1);
51  if (type != MBVERTEX) {
52  for (auto dd = dim_type; dd > 0; --dd) {
53  int nb_ents = moab::CN::NumSubEntities(type, dd);
54  for (int ii = 0; ii != nb_ents; ++ii) {
55  auto sub_ent_type = moab::CN::SubEntityType(type, dd, ii);
56  count[sub_ent_type] = nb_ents;
57  }
58  for (auto tt = moab::CN::TypeDimensionMap[dd].first;
59  tt <= moab::CN::TypeDimensionMap[dd].second; ++tt) {
60  data->dataOnEntities[tt].resize(count[tt]);
61  }
62  }
63  }
64  };
65 
66  switch (type) {
67  case MBENTITYSET:
68  break;
69 
70  default:
71  set_default();
72  }
73 }

◆ constructor_derived_data()

static void MoFEM::constructor_derived_data ( DerivedEntitiesFieldData derived_data,
const boost::shared_ptr< EntitiesFieldData > &  data_ptr 
)
static

Definition at line 86 of file EntitiesFieldData.cpp.

87  {
88 
90  using DerivedEntData = DerivedEntitiesFieldData::DerivedEntData;
91 
92  for (int tt = MBVERTEX; tt != MBMAXTYPE; ++tt) {
93  auto &ent_data = data_ptr->dataOnEntities[tt];
94  auto &derived_ent_data = derived_data->dataOnEntities[tt];
95  for (auto c = derived_ent_data.size(); c < ent_data.size(); ++c) {
96  boost::shared_ptr<EntData> ent_data_ptr(data_ptr, &ent_data[c]);
97  derived_ent_data.push_back(new DerivedEntData(ent_data_ptr));
98  }
99  derived_ent_data.resize(ent_data.size());
100  }
101 }

◆ createAOMapping()

auto MoFEM::createAOMapping ( MPI_Comm  comm,
PetscInt  napp,
const PetscInt  myapp[],
const PetscInt  mypetsc[] 
)
inline

Creates an application mapping using two integer arrays.

AOCreateMappingIS.

Parameters
commMPI communicator that is to share the AO
nappsize of integer arrays
myappinteger array that defines an ordering
mypetscinteger array that defines another ordering (may be NULL to indicate the identity ordering)
Returns
SmartPetscObj<AO>(ao);

Definition at line 338 of file PetscSmartObj.hpp.

339  {
340  AO ao;
341  CHK_THROW_MESSAGE(AOCreateMapping(comm, napp, myapp, mypetsc, &ao),
342  "create ao");
343  return SmartPetscObj<AO>(ao);
344 }

◆ createAOMappingIS()

auto MoFEM::createAOMappingIS ( IS  isapp,
IS  ispetsc 
)
inline

Creates an application mapping using two index sets.

AOCreateMappingIS.

Parameters
isappindex set that defines an ordering
ispetscindex set that defines another ordering, maybe NULL for identity
aooutthe new application ordering
Returns
SmartPetscObj<AO>(ao)
Examples
schur_test_diag_mat.cpp, and test_broken_space.cpp.

Definition at line 318 of file PetscSmartObj.hpp.

318  {
319  AO ao;
320  CHK_THROW_MESSAGE(AOCreateMappingIS(isapp, ispetsc, &ao),
321  "Failed to create AO");
322  return SmartPetscObj<AO>(ao);
323 };

◆ createBlockMat()

SchurShellMatData MoFEM::createBlockMat ( DM  dm,
boost::shared_ptr< BlockStructure data 
)

Create a Schur Mat object.

Parameters
dm
data
Returns
std::pair<SmartPetscObj<Mat>, boost::shared_ptr<BlockStructure>>
Examples
schur_test_diag_mat.cpp.

Definition at line 1379 of file Schur.cpp.

1380  {
1381 
1382  auto problem_ptr = getProblemPtr(dm);
1383  auto nb_local = problem_ptr->nbLocDofsRow;
1384  auto nb_global = problem_ptr->nbDofsRow;
1385 
1386  // check in nb, rows is equal to nb. columns.
1387  if (nb_local != problem_ptr->nbLocDofsCol) {
1388  MOFEM_LOG("SELF", Sev::error)
1389  << "Wrong size " << nb_local << " != " << problem_ptr->nbLocDofsCol;
1391  "nb. cols is inconsistent with nb. rows");
1392  }
1393  if (nb_global != problem_ptr->nbDofsCol) {
1394  MOFEM_LOG("SELF", Sev::error)
1395  << "Wrong size " << nb_global << " != " << problem_ptr->nbDofsCol;
1397  "nb. cols is inconsistent with nb. rows");
1398  }
1399 
1400  // get comm from DM
1401  MPI_Comm comm;
1402  CHKERR PetscObjectGetComm((PetscObject)dm, &comm);
1403 
1404  Mat mat_raw;
1405  CHKERR MatCreateShell(comm, nb_local, nb_local, nb_global, nb_global,
1406  (void *)data.get(), &mat_raw);
1407  CHKERR setSchurBlockMatOps(mat_raw);
1408  // CHKERR PetscObjectSetName((PetscObject)mat_raw, MoFEM_BLOCK_MAT);
1409 
1410  return std::make_pair(SmartPetscObj<Mat>(mat_raw), data);
1411 }

◆ createBlockMatStructure()

boost::shared_ptr< BlockStructure > MoFEM::createBlockMatStructure ( DM  dm,
SchurFEOpsFEandFields  schur_fe_op_vec 
)

Create a Mat Diag Blocks object.

Returns
Mat
Examples
plastic.cpp, schur_test_diag_mat.cpp, and test_broken_space.cpp.

Definition at line 1009 of file Schur.cpp.

1014  {
1015 
1016  auto cmp_uid_lo = [](const boost::weak_ptr<FieldEntity> &a, const UId &b) {
1017  if (auto a_ptr = a.lock()) {
1018  if (a_ptr->getLocalUniqueId() < b)
1019  return true;
1020  else
1021  return false;
1022  } else {
1023  return false;
1024  }
1025  };
1026 
1027  auto cmp_uid_hi = [](const UId &b, const boost::weak_ptr<FieldEntity> &a) {
1028  if (auto a_ptr = a.lock()) {
1029  if (b < a_ptr->getLocalUniqueId())
1030  return true;
1031  else
1032  return false;
1033  } else {
1034  return true;
1035  }
1036  };
1037 
1038  // get uids for fields
1039  auto get_uid_pair = [](const auto &field_id) {
1040  auto lo_uid = FieldEntity::getLocalUniqueIdCalculate(
1041  field_id, get_id_for_min_type<MBVERTEX>());
1042  auto hi_uid = FieldEntity::getLocalUniqueIdCalculate(
1043  field_id, get_id_for_max_type<MBENTITYSET>());
1044  return std::make_pair(lo_uid, hi_uid);
1045  };
1046 
1047  // get uids pair
1048  auto get_it_pair = [cmp_uid_lo, cmp_uid_hi](auto &&field_ents, auto &&p_uid) {
1049  auto lo = std::lower_bound(field_ents.begin(), field_ents.end(),
1050  p_uid.first, cmp_uid_lo);
1051  auto hi = std::upper_bound(field_ents.begin(), field_ents.end(),
1052  p_uid.second, cmp_uid_hi);
1053  return std::make_pair(lo, hi);
1054  };
1055 
1056  // extract DOFs for rows/columns. DOFs are associated with fields entities
1057  // for given problem.
1058  auto row_extractor = [](auto &e) { return e->entityCacheRowDofs; };
1059  auto col_extractor = [](auto &e) { return e->entityCacheColDofs; };
1060 
1061  auto extract_data = [](auto &&its, auto extractor) {
1062  std::vector<std::tuple<UId, int, int, int>> data;
1063  data.reserve(std::distance(its.first, its.second));
1064  // iterate field dofs
1065  for (; its.first != its.second; ++its.first) {
1066  if (auto e = its.first->lock()) {
1067  if (auto cache = extractor(e).lock()) {
1068  int nb_dofs = 0;
1069  for (auto dof = cache->loHi[0]; dof != cache->loHi[1]; ++dof) {
1070  if ((*dof)->getPetscGlobalDofIdx() != -1)
1071  ++nb_dofs;
1072  }
1073  auto uid = e->getLocalUniqueId();
1074  if (nb_dofs) {
1075 
1076  auto glob = (*cache->loHi[0])->getPetscGlobalDofIdx();
1077  auto loc = (*cache->loHi[0])->getPetscLocalDofIdx();
1078  while (glob == -1 && cache->loHi[0] != cache->loHi[1]) {
1079  ++cache->loHi[0];
1080  glob = (*cache->loHi[0])->getPetscGlobalDofIdx();
1081  loc = (*cache->loHi[0])->getPetscLocalDofIdx();
1082  }
1083  data.emplace_back(uid, glob, nb_dofs, loc);
1084 
1085 #ifndef NDEBUG
1086 
1087  for (auto lo = cache->loHi[0]; lo != cache->loHi[1]; ++lo) {
1088  auto glob = (*lo)->getPetscGlobalDofIdx();
1089  if (glob == -1) {
1091  "Wrong global index");
1092  }
1093  }
1094 
1095 #endif
1096  } else {
1097  data.emplace_back(uid, -1, 0, -1);
1098  }
1099  }
1100  }
1101  }
1102  return data;
1103  };
1104 
1105  auto data_ptr = boost::make_shared<BlockStructure>();
1106  auto m_field_ptr = getInterfacePtr(dm);
1107 
1108  // create element to extract data
1109  auto fe_method = boost::shared_ptr<MoFEM::FEMethod>(new MoFEM::FEMethod());
1110 
1111  for (auto &d : schur_fe_op_vec) {
1112 
1113  // extract bit numbers for row and column
1114  auto get_bit_numbers = [&d](auto op) {
1115  std::vector<FieldBitNumber> bit_numbers(d.second.size());
1116  std::transform(d.second.begin(), d.second.end(), bit_numbers.begin(), op);
1117  return bit_numbers;
1118  };
1119 
1120  // extract bit numbers for row
1121  auto row_bit_numbers = get_bit_numbers(
1122  [&](auto &p) { return m_field_ptr->get_field_bit_number(p.first); });
1123  // extract bit numbers for row
1124  auto col_bit_numbers = get_bit_numbers(
1125  [&](auto &p) { return m_field_ptr->get_field_bit_number(p.second); });
1126 
1127  fe_method->preProcessHook = []() { return 0; };
1128  fe_method->postProcessHook = []() { return 0; };
1129  fe_method->operatorHook = [&]() {
1131 
1132  auto fe_uid = fe_method->numeredEntFiniteElementPtr->getLocalUniqueId();
1133 
1134  for (auto f = 0; f != row_bit_numbers.size(); ++f) {
1135 
1136  auto row_data =
1137  extract_data(get_it_pair(fe_method->getRowFieldEnts(),
1138  get_uid_pair(row_bit_numbers[f])),
1139  row_extractor);
1140  auto col_data =
1141  extract_data(get_it_pair(fe_method->getColFieldEnts(),
1142  get_uid_pair(col_bit_numbers[f])),
1143  col_extractor);
1144 
1145  for (auto &r : row_data) {
1146  auto [r_uid, r_glob, r_nb_dofs, r_loc] = r;
1147  for (auto &c : col_data) {
1148  auto [c_uid, c_glob, c_nb_dofs, c_loc] = c;
1149  data_ptr->blockIndex.insert(BlockStructure::Indexes{
1150  r_uid, c_uid, fe_uid, r_glob, c_glob, r_nb_dofs, c_nb_dofs,
1151  r_loc, c_loc, -1});
1152  }
1153  }
1154  }
1155 
1157  };
1158 
1159  CHKERR DMoFEMLoopFiniteElementsUpAndLowRank(dm, d.first, fe_method, 0,
1160  m_field_ptr->get_comm_size());
1161  };
1162 
1163  // order by column (that is for matrix multiplication)
1164  auto mem_size = 0;
1165  for (auto &v : data_ptr->blockIndex.get<0>()) {
1166  v.getMatShift() = mem_size;
1167  mem_size += v.getNbCols() * v.getNbRows();
1168  }
1169 
1170  std::vector<double> tmp;
1171  if (mem_size > tmp.max_size())
1173 
1174  data_ptr->dataBlocksPtr =
1175  boost::make_shared<std::vector<double>>(mem_size, 0);
1176 
1177  auto ghost_x = createDMVector(dm);
1178  auto ghost_y = createDMVector(dm);
1179  CHKERR VecSetDM(ghost_x, PETSC_NULL);
1180  CHKERR VecSetDM(ghost_y, PETSC_NULL);
1181 
1182  data_ptr->ghostX = ghost_x;
1183  data_ptr->ghostY = ghost_y;
1184 
1185  return data_ptr;
1186 }

◆ createDM()

auto MoFEM::createDM ( MPI_Comm  comm,
const std::string  dm_type_name 
)
inline

Creates smart DM object.

DM object can be used as any other object, but is destroyed as smart pointer when no longer used.

{
auto dm = createDM(PETSC_COMM_WORLD, "MOFEM");
// ...
// dm is automatically destroyed when program goes out of the scope
}
Examples
elasticity.cpp, EshelbianPlasticity.cpp, free_surface.cpp, level_set.cpp, plastic.cpp, schur_test_diag_mat.cpp, and test_broken_space.cpp.

Definition at line 141 of file PetscSmartObj.hpp.

141  {
142  DM dm;
143  CHK_THROW_MESSAGE(DMCreate(comm, &dm), "Failed to create DM");
144  CHK_THROW_MESSAGE(DMSetType(dm, dm_type_name.c_str()), "Failed set DM type");
145  return SmartPetscObj<DM>(dm);
146 };

◆ createDMBlockMat()

auto MoFEM::createDMBlockMat ( DM  dm)
inline
Examples
plastic.cpp, and test_broken_space.cpp.

Definition at line 1076 of file DMMoFEM.hpp.

1076  {
1077  Mat raw_a;
1078  ierr = DMMoFEMCreateBlockMat(dm, &raw_a);
1079  CHKERRABORT(getCommFromPetscObject(reinterpret_cast<PetscObject>(dm)), ierr);
1080  return SmartPetscObj<Mat>(raw_a);
1081 };

◆ createDMHybridisedL2Matrix()

auto MoFEM::createDMHybridisedL2Matrix ( DM  dm)
inline

Get smart hybridised L2 matrix from DM.

Parameters
dm
Returns
auto
Examples
test_broken_space.cpp.

Definition at line 1069 of file DMMoFEM.hpp.

1069  {
1070  SmartPetscObj<Mat> a;
1072  CHKERRABORT(getCommFromPetscObject(reinterpret_cast<PetscObject>(dm)), ierr);
1073  return a;
1074 };

◆ createDMNestSchurMat()

auto MoFEM::createDMNestSchurMat ( DM  dm)
inline
Examples
plastic.cpp, and test_broken_space.cpp.

Definition at line 1083 of file DMMoFEM.hpp.

1083  {
1084  Mat raw_a;
1085  ierr = DMMoFEMCreateNestSchurMat(dm, &raw_a);
1086  CHKERRABORT(getCommFromPetscObject(reinterpret_cast<PetscObject>(dm)), ierr);
1087  return SmartPetscObj<Mat>(raw_a);
1088 };

◆ createGhostVector()

auto MoFEM::createGhostVector ( MPI_Comm  comm,
PetscInt  n,
PetscInt  N,
PetscInt  nghost,
const PetscInt  ghosts[] 
)
inline

Create smart ghost vector.

For details abut arguments see here: VecCreateGhost.

auto vec = createGhostVector(...);
Examples
ContactOps.hpp, mixed_poisson.cpp, photon_diffusion.cpp, and simple_interface.cpp.

Definition at line 179 of file PetscSmartObj.hpp.

180  {
181  Vec vv;
182  CHK_THROW_MESSAGE(VecCreateGhost(comm, n, N, nghost, ghosts, &vv),
183  "Failed to create ghosted Vec");
184  return SmartPetscObj<Vec>(vv);
185 };

◆ createISGeneral()

auto MoFEM::createISGeneral ( MPI_Comm  comm,
PetscInt  n,
const PetscInt  idx[],
PetscCopyMode  mode 
)
inline

Creates a data structure for an index set containing a list of integers.

AOCreateMappingIS.

Parameters
commthe MPI communicator
nthe length of the index set
idxthe list of integers
modePETSC_COPY_VALUES, PETSC_OWN_POINTER, or PETSC_USE_POINTER; see PetscCopyMode for meaning of this flag.
Returns
SmartPetscObj<IS>(is)

Definition at line 287 of file PetscSmartObj.hpp.

288  {
289  IS is;
290  CHK_THROW_MESSAGE(ISCreateGeneral(comm, n, idx, mode, &is), "Create IS");
291  return SmartPetscObj<IS>(is);
292 }

◆ createISLocalToGlobalMapping()

auto MoFEM::createISLocalToGlobalMapping ( IS  is)
inline

Definition at line 383 of file PetscSmartObj.hpp.

383  {
384  ISLocalToGlobalMapping map_raw;
385  CHK_THROW_MESSAGE(ISLocalToGlobalMappingCreateIS(is, &map_raw),
386  "create local to global mapping");
387  return SmartPetscObj<ISLocalToGlobalMapping>(map_raw);
388 }

◆ createKSP()

auto MoFEM::createKSP ( MPI_Comm  comm)
inline
Examples
dynamic_first_order_con_law.cpp, elasticity.cpp, free_surface.cpp, level_set.cpp, prism_polynomial_approximation.cpp, quad_polynomial_approximation.cpp, reaction_diffusion.cpp, and schur_test_diag_mat.cpp.

Definition at line 261 of file PetscSmartObj.hpp.

261  {
262  KSP ksp;
263  CHK_THROW_MESSAGE(KSPCreate(comm, &ksp), "Failed to create KSP");
264  return SmartPetscObj<KSP>(ksp);
265 };

◆ createOpSchurAssembleBegin()

OpSchurAssembleBase * MoFEM::createOpSchurAssembleBegin ( )
Examples
plastic.cpp, scalar_check_approximation.cpp, schur_test_diag_mat.cpp, and test_broken_space.cpp.

Definition at line 2181 of file Schur.cpp.

2181  {
2182  return new OpSchurAssembleBegin();
2183 }

◆ createOpSchurAssembleEnd() [1/3]

OpSchurAssembleBase * MoFEM::createOpSchurAssembleEnd ( std::vector< std::string >  fields_name,
std::vector< boost::shared_ptr< Range >>  field_ents,
SmartPetscObj< AO >  ao = SmartPetscObj< AO >(),
SmartPetscObj< Mat >  schur = SmartPetscObj< Mat >(),
bool  sym_schur = false,
bool  symm_op = false 
)

Construct a new Op Schur Assemble End object.

Parameters
fields_namelist of fields (can be empty)
field_entslist of entities on which schur complement is applied
schur_aosmaps dofs indices from main problem to schur complement
schur_matschur matrix
sym_schurtrue if schur (matrix) complement is symmetric
symm_optrue if block diagonal is symmetric
Examples
plastic.cpp, scalar_check_approximation.cpp, schur_test_diag_mat.cpp, and test_broken_space.cpp.

Definition at line 2186 of file Schur.cpp.

2189  {
2190  if (symm_op)
2191  return new OpSchurAssembleEnd<SchurDSYSV>(fields_name, field_ents, ao,
2192  schur, sym_schur, symm_op);
2193  else
2194  return new OpSchurAssembleEnd<SchurDGESV>(fields_name, field_ents, ao,
2195  schur, sym_schur, symm_op);
2196 }

◆ createOpSchurAssembleEnd() [2/3]

DEPRECATED OpSchurAssembleBase * MoFEM::createOpSchurAssembleEnd ( std::vector< std::string >  fields_name,
std::vector< boost::shared_ptr< Range >>  field_ents,
std::vector< SmartPetscObj< AO >>  sequence_of_aos,
std::vector< SmartPetscObj< Mat >>  sequence_of_mats,
std::vector< bool sym_schur,
bool  symm_op,
boost::shared_ptr< BlockStructure diag_blocks = nullptr 
)
Deprecated:
do not use

Definition at line 2199 of file Schur.cpp.

2204  {
2205  return createOpSchurAssembleEnd(
2206  fields_name, field_ents, sequence_of_aos.back(), sequence_of_mats.back(),
2207  sym_schur.back(), symm_op);
2208 }

◆ createOpSchurAssembleEnd() [3/3]

DEPRECATED OpSchurAssembleBase * MoFEM::createOpSchurAssembleEnd ( std::vector< std::string >  fields_name,
std::vector< boost::shared_ptr< Range >>  field_ents,
std::vector< SmartPetscObj< AO >>  sequence_of_aos,
std::vector< SmartPetscObj< Mat >>  sequence_of_mats,
std::vector< bool sym_schur,
std::vector< double diag_eps,
bool  symm_op,
boost::shared_ptr< BlockStructure diag_blocks = nullptr 
)
Deprecated:
do not use

Definition at line 2211 of file Schur.cpp.

2217  {
2218  return createOpSchurAssembleEnd(
2219  fields_name, field_ents, sequence_of_aos.back(), sequence_of_mats.back(),
2220  sym_schur.back(), symm_op);
2221 }

◆ createPC()

auto MoFEM::createPC ( MPI_Comm  comm)
inline
Examples
free_surface.cpp.

Definition at line 267 of file PetscSmartObj.hpp.

267  {
268  PC pc;
269  CHK_THROW_MESSAGE(PCCreate(comm, &pc), "Failed to create PC");
270  return SmartPetscObj<PC>(pc);
271 };

◆ createPCMGSetUpViaApproxOrdersCtx()

boost::shared_ptr< PCMGSetUpViaApproxOrdersCtx > MoFEM::createPCMGSetUpViaApproxOrdersCtx ( DM  dm,
Mat  A,
bool  use_shell_mat 
)

createPCMGSetUpViaApproxOrdersCtx

Parameters
dm
A
use_shell_mat
Returns
PCMGSetUpViaApproxOrdersCtx
Examples
elasticity.cpp, and test_broken_space.cpp.

Definition at line 630 of file PCMGSetUpViaApproxOrders.cpp.

630  {
631  return boost::make_shared<PCMGSetUpViaApproxOrdersCtx>(dm, A, use_shell_mat);
632 }

◆ createSchurNestedMatrix()

std::pair< SmartPetscObj< Mat >, boost::shared_ptr< NestSchurData > > MoFEM::createSchurNestedMatrix ( boost::shared_ptr< NestSchurData schur_net_data_ptr)

Create a Mat Diag Blocks object.

auto [nested_mat, nested_data_ptr] = createSchurNestedMatrix(
{schur_dm, block_dm}, shell_data,
{"TENSOR"}, {nullptr}
)
);
Returns
Mat
Examples
schur_test_diag_mat.cpp.

Definition at line 2153 of file Schur.cpp.

2153  {
2154 
2155  if (!schur_net_data_ptr)
2157 
2158  auto [mat_arrays, data_ptrs, block_mat_data_ptr, iss] = *schur_net_data_ptr;
2159  auto [schur_is, block_is] = iss;
2160 
2161  std::array<IS, 2> is_a = {schur_is, block_is};
2162  std::array<Mat, 4> mats_a = {
2163 
2164  mat_arrays[0], mat_arrays[1], mat_arrays[2], mat_arrays[3]
2165 
2166  };
2167 
2168  MPI_Comm comm;
2169  CHKERR PetscObjectGetComm((PetscObject)mat_arrays[0], &comm);
2170 
2171  Mat mat_raw;
2172  CHKERR MatCreateNest(
2173 
2174  comm, 2, is_a.data(), 2, is_a.data(), mats_a.data(), &mat_raw
2175 
2176  );
2177 
2178  return std::make_pair(SmartPetscObj<Mat>(mat_raw), schur_net_data_ptr);
2179 }

◆ createSchurNestedMatrixStruture()

boost::shared_ptr< NestSchurData > MoFEM::createSchurNestedMatrixStruture ( std::pair< SmartPetscObj< DM >, SmartPetscObj< DM >>  dms,
boost::shared_ptr< BlockStructure block_mat_data,
std::vector< std::string >  fields_name,
std::vector< boost::shared_ptr< Range >>  field_ents,
bool  add_preconditioner_block = false 
)

Get the Schur Nest Mat Array object.

Parameters
dmsschur dm, and block dm
blockmat A data
fields_namelist of fields
field_entslist of entities on which schur complement is applied
add_preconditioner_blockadd block for preconditioner
Returns
boost::shared_ptr<NestSchurData>
Examples
plastic.cpp, schur_test_diag_mat.cpp, and test_broken_space.cpp.

Definition at line 1944 of file Schur.cpp.

1952  {
1953 
1954  if (!block_mat_data_ptr) {
1955  CHK_THROW_MESSAGE(MOFEM_DATA_INCONSISTENCY, "Block data not set");
1956  }
1957 
1958  if (fields_names.size() != field_ents.size())
1960  "fields_names.size() != field_ents.size()");
1961 
1962  auto [schur_dm, block_dm] = dms;
1963  auto schur_prb = getProblemPtr(schur_dm);
1964  auto block_prb = getProblemPtr(block_dm);
1965  // auto m_field_ptr = getInterfacePtr(block_dm);
1966 
1967  auto schur_dofs_row = schur_prb->getNumeredRowDofsPtr();
1968  auto schur_dofs_col = schur_prb->getNumeredColDofsPtr();
1969  auto block_dofs_row = block_prb->getNumeredRowDofsPtr();
1970  auto block_dofs_col = block_prb->getNumeredColDofsPtr();
1971 
1972  auto ao_schur_row = schur_prb->getSubData()->getSmartRowMap();
1973  auto ao_schur_col = schur_prb->getSubData()->getSmartColMap();
1974  auto ao_block_row = block_prb->getSubData()->getSmartRowMap();
1975  auto ao_block_col = block_prb->getSubData()->getSmartColMap();
1976 
1977  auto schur_vec_x = createDMVector(schur_dm);
1978  auto block_vec_x = createDMVector(block_dm);
1979  auto schur_vec_y = vectorDuplicate(schur_vec_x);
1980  auto block_vec_y = vectorDuplicate(block_vec_x);
1981  CHKERR VecSetDM(schur_vec_x, PETSC_NULL);
1982  CHKERR VecSetDM(block_vec_x, PETSC_NULL);
1983  CHKERR VecSetDM(schur_vec_y, PETSC_NULL);
1984  CHKERR VecSetDM(block_vec_y, PETSC_NULL);
1985 
1986  auto find_field_ent = [&](auto uid, auto prb, auto rc) {
1987  boost::shared_ptr<NumeredDofEntity_multiIndex> dofs;
1988 
1989  switch (rc) {
1990  case ROW:
1991  dofs = prb->getNumeredRowDofsPtr();
1992  break;
1993  case COL:
1994  dofs = prb->getNumeredColDofsPtr();
1995  break;
1996  default:
1997  CHK_MOAB_THROW(MOFEM_NOT_IMPLEMENTED, "Wrong RowCol");
1998  break;
1999  }
2000 
2001  auto lo = dofs->get<Unique_mi_tag>().lower_bound(uid);
2002  if (lo == dofs->get<Unique_mi_tag>().end())
2003  return boost::shared_ptr<NumeredDofEntity>();
2004  auto hi = dofs->get<Unique_mi_tag>().upper_bound(
2005  DofEntity::getUniqueIdCalculate(MAX_DOFS_ON_ENTITY - 1, uid));
2006  if (lo != hi)
2007  return *lo;
2008 
2009  return boost::shared_ptr<NumeredDofEntity>();
2010  };
2011 
2012  std::array<boost::shared_ptr<BlockStructure>, 4> data_ptrs;
2013 
2014  for (auto r = 0; r != 3; ++r) {
2015  data_ptrs[r] = boost::make_shared<BlockStructure>();
2016  data_ptrs[r]->dataBlocksPtr = block_mat_data_ptr->dataBlocksPtr;
2017  }
2018  data_ptrs[3] = boost::make_shared<BlockStructure>();
2019  data_ptrs[3]->dataBlocksPtr = block_mat_data_ptr->dataBlocksPtr;
2020 
2021  data_ptrs[0]->ghostX = schur_vec_x;
2022  data_ptrs[0]->ghostY = schur_vec_y;
2023  data_ptrs[1]->ghostX = block_vec_x;
2024  data_ptrs[1]->ghostY = schur_vec_y;
2025  data_ptrs[2]->ghostX = schur_vec_x;
2026  data_ptrs[2]->ghostY = block_vec_y;
2027  data_ptrs[3]->ghostX = block_vec_x;
2028  data_ptrs[3]->ghostY = block_vec_y;
2029 
2030  int idx = 0;
2031  for (auto &d : block_mat_data_ptr->blockIndex.get<0>()) {
2032 
2033  auto insert = [&](auto &m, auto &dof_r, auto &dof_c, auto &d) {
2034  m.insert(
2035 
2036  BlockStructure::Indexes{
2037  d.getRowUId(), d.getColUId(), d.getFEUId(),
2038 
2039  dof_r->getPetscGlobalDofIdx(), dof_c->getPetscGlobalDofIdx(),
2040 
2041  d.getNbRows(), d.getNbCols(),
2042 
2043  dof_r->getPetscLocalDofIdx(), dof_c->getPetscLocalDofIdx(),
2044 
2045  d.getMatShift()}
2046 
2047  );
2048  };
2049 
2050  auto dof_schur_row = find_field_ent(d.getRowUId(), schur_prb, ROW);
2051  auto dof_schur_col = find_field_ent(d.getColUId(), schur_prb, COL);
2052  auto dof_block_row = find_field_ent(d.getRowUId(), block_prb, ROW);
2053  auto dof_block_col = find_field_ent(d.getColUId(), block_prb, COL);
2054 
2055  if (dof_schur_row && dof_schur_col) {
2056  insert(data_ptrs[0]->blockIndex, dof_schur_row, dof_schur_col, d);
2057  }
2058 
2059  if (dof_schur_row && dof_block_col) {
2060  insert(data_ptrs[1]->blockIndex, dof_schur_row, dof_block_col, d);
2061  }
2062 
2063  if (dof_block_row && dof_schur_col) {
2064  insert(data_ptrs[2]->blockIndex, dof_block_row, dof_schur_col, d);
2065  }
2066 
2067  if (dof_block_row && dof_block_col) {
2068  insert(data_ptrs[3]->blockIndex, dof_block_row, dof_block_col, d);
2069  }
2070 
2071  ++idx;
2072  }
2073 
2074  // set data for a00 solve (inverse blocks)
2075  auto set_up_a00_data = [&](auto inv_block_data) {
2077 
2078  if (add_preconditioner_block) {
2079  auto preconditioned_block = boost::make_shared<std::vector<double>>(
2080  inv_block_data->dataBlocksPtr->size(), 0);
2081  inv_block_data->preconditionerBlocksPtr = preconditioned_block;
2082  inv_block_data->multiplyByPreconditioner = true;
2083  block_mat_data_ptr->preconditionerBlocksPtr =
2084  inv_block_data->preconditionerBlocksPtr;
2085  block_mat_data_ptr->multiplyByPreconditioner = false;
2086  }
2087 
2089  };
2090 
2091  CHKERR set_up_a00_data(data_ptrs[3]);
2092 
2093  MPI_Comm comm;
2094  CHKERR PetscObjectGetComm((PetscObject)schur_dm, &comm);
2095 
2096  auto create_shell_mat = [&](auto nb_r_loc, auto nb_c_loc, auto nb_r_glob,
2097  auto nb_c_glob, auto data_ptr) {
2098  Mat mat_raw;
2099  CHKERR MatCreateShell(comm, nb_r_loc, nb_c_loc, nb_r_glob, nb_c_glob,
2100  (void *)data_ptr.get(), &mat_raw);
2101  CHKERR setSchurBlockMatOps(mat_raw);
2102  return SmartPetscObj<Mat>(mat_raw);
2103  };
2104 
2105  auto schur_nb_global = schur_prb->getNbDofsRow();
2106  auto block_nb_global = block_prb->getNbDofsRow();
2107  auto schur_nb_local = schur_prb->getNbLocalDofsRow();
2108  auto block_nb_local = block_prb->getNbLocalDofsRow();
2109 
2110  std::array<SmartPetscObj<Mat>, 4> mats_array;
2111  mats_array[0] =
2112  create_shell_mat(schur_nb_local, schur_nb_local, schur_nb_global,
2113  schur_nb_global, data_ptrs[0]);
2114  mats_array[1] =
2115  create_shell_mat(schur_nb_local, block_nb_local, schur_nb_global,
2116  block_nb_global, data_ptrs[1]);
2117  mats_array[2] =
2118  create_shell_mat(block_nb_local, schur_nb_local, block_nb_global,
2119  schur_nb_global, data_ptrs[2]);
2120  mats_array[3] =
2121  create_shell_mat(block_nb_local, block_nb_local, block_nb_global,
2122  block_nb_global, data_ptrs[3]);
2123 
2124  MOFEM_TAG_AND_LOG("SYNC", Sev::verbose, "NestedSchur")
2125  << "(0, 0) " << schur_nb_local << " " << schur_nb_global << " "
2126  << data_ptrs[0]->blockIndex.size();
2127  MOFEM_TAG_AND_LOG("SYNC", Sev::verbose, "NestedSchur")
2128  << "(0, 1) " << schur_nb_local << " " << block_nb_local << " "
2129  << schur_nb_global << " " << block_nb_global << " "
2130  << data_ptrs[1]->blockIndex.size();
2131  MOFEM_TAG_AND_LOG("SYNC", Sev::verbose, "NestedSchur")
2132  << "(1, 0) " << block_nb_local << " " << schur_nb_local << " "
2133  << block_nb_global << " " << schur_nb_global << " "
2134  << data_ptrs[2]->blockIndex.size();
2135  MOFEM_TAG_AND_LOG("SYNC", Sev::verbose, "NestedSchur")
2136  << "(1, 1) " << block_nb_local << " " << block_nb_global << " "
2137  << data_ptrs[3]->blockIndex.size();
2138 
2139  MOFEM_LOG_SEVERITY_SYNC(comm, Sev::verbose);
2140 
2141  auto schur_is = schur_prb->getSubData()->getSmartRowIs();
2142  auto block_is = block_prb->getSubData()->getSmartRowIs();
2143 
2144  return boost::make_shared<NestSchurData>(
2145 
2146  mats_array, data_ptrs, block_mat_data_ptr,
2147  std::make_pair(schur_is, block_is)
2148 
2149  );
2150 }

◆ createSmartDM()

DEPRECATED auto MoFEM::createSmartDM ( MPI_Comm  comm,
const std::string  dm_type_name 
)
inline
Deprecated:
use createDM
Examples
mortar_contact.cpp, mortar_contact_thermal.cpp, simple_contact.cpp, simple_contact_thermal.cpp, and test_jacobian_of_simple_contact_element.cpp.

Definition at line 149 of file PetscSmartObj.hpp.

150  {
151  return createDM(comm, dm_type_name);
152 }

◆ createSmartGhostVector()

DEPRECATED auto MoFEM::createSmartGhostVector ( MPI_Comm  comm,
PetscInt  n,
PetscInt  N,
PetscInt  nghost,
const PetscInt  ghosts[] 
)
inline
Deprecated:
use createGhostVector

Definition at line 188 of file PetscSmartObj.hpp.

190  {
191  return createGhostVector(comm, n, N, nghost, ghosts);
192 }

◆ createSmartVectorMPI()

DEPRECATED auto MoFEM::createSmartVectorMPI ( MPI_Comm  comm,
PetscInt  n,
PetscInt  N 
)
inline
Deprecated:
use createVectorMPI

Definition at line 209 of file PetscSmartObj.hpp.

210  {
211  return createVectorMPI(comm, n, N);
212 }

◆ createSNES()

auto MoFEM::createSNES ( MPI_Comm  comm)
inline
Examples
mortar_contact.cpp, mortar_contact_thermal.cpp, simple_contact.cpp, simple_contact_thermal.cpp, and test_jacobian_of_simple_contact_element.cpp.

Definition at line 255 of file PetscSmartObj.hpp.

255  {
256  SNES snes;
257  CHK_THROW_MESSAGE(SNESCreate(comm, &snes), "Failed to create SNES");
258  return SmartPetscObj<SNES>(snes);
259 };

◆ createTS()

auto MoFEM::createTS ( MPI_Comm  comm)
inline
Examples
ep.cpp, free_surface.cpp, and reaction_diffusion.cpp.

Definition at line 249 of file PetscSmartObj.hpp.

249  {
250  TS ts;
251  CHK_THROW_MESSAGE(TSCreate(comm, &ts), "Failed to create TS");
252  return SmartPetscObj<TS>(ts);
253 };

◆ createVecScatter()

auto MoFEM::createVecScatter ( Vec  x,
IS  ix,
Vec  y,
IS  iy 
)
inline

Create a Vec Scatter object.

VecScatterCreate.

Parameters
xa vector that defines the shape (parallel data layout of the vector) of vectors from which we scatter
ixthe indices of xin to scatter (if NULL scatters all values)
ya vector that defines the shape (parallel data layout of the vector) of vectors to which we scatter
iythe indices of yin to hold results (if NULL fills entire vector yin in order)
Returns
Examples
free_surface.cpp.

Definition at line 361 of file PetscSmartObj.hpp.

361  {
362  VecScatter s;
363  CHK_THROW_MESSAGE(VecScatterCreate(x, ix, y, iy, &s), "create scatter");
364  return SmartPetscObj<VecScatter>(s);
365 }

◆ createVectorMPI()

auto MoFEM::createVectorMPI ( MPI_Comm  comm,
PetscInt  n,
PetscInt  N 
)
inline

Create MPI Vector.

For details abut arguments see here: VecCreateMPI.

Examples
adolc_plasticity.cpp, approx_sphere.cpp, child_and_parent.cpp, EshelbianPlasticity.cpp, hanging_node_approx.cpp, higher_derivatives.cpp, HookeElement.cpp, level_set.cpp, NavierStokesElement.hpp, poisson_2d_dis_galerkin.cpp, poisson_2d_homogeneous.cpp, test_broken_space.cpp, and thermo_elastic.cpp.

Definition at line 202 of file PetscSmartObj.hpp.

202  {
203  Vec vv;
204  CHK_THROW_MESSAGE(VecCreateMPI(comm, n, N, &vv), "Failed to create Vec");
205  return SmartPetscObj<Vec>(vv);
206 };

◆ determinantTensor() [1/2]

template<typename T , int DIM>
static auto MoFEM::determinantTensor ( FTensor::Tensor2< T, DIM, DIM > &  t)
inlinestatic

Calculate the determinant of a tensor of rank DIM.

Examples
ContactOps.hpp.

Definition at line 1571 of file Templates.hpp.

1571  {
1572  return DeterminantTensorImpl<FTensor::Tensor2<T, DIM, DIM>, DIM>::get(t);
1573 }

◆ determinantTensor() [2/2]

template<typename T , int DIM>
static auto MoFEM::determinantTensor ( FTensor::Tensor2_symmetric< T, DIM > &  t)
inlinestatic

Calculate the determinant of a tensor of rank DIM.

Definition at line 1579 of file Templates.hpp.

1579  {
1580  return DeterminantTensorImpl<FTensor::Tensor2_symmetric<T, DIM>, DIM>::get(t);
1581 }