v0.5.86
Functions
Field Basic Algebra

Basic algebraic operation on fields. More...

Collaboration diagram for Field Basic Algebra:

Functions

PetscErrorCode MoFEM::FieldBlas::fieldAxpy (const double alpha, const std::string &field_name_x, const std::string &field_name_y, bool error_if_missing=false, bool creat_if_missing=false)
 axpy fields More...
 
PetscErrorCode MoFEM::FieldBlas::setField (const double val, const EntityType type, const std::string &field_name)
 scale field More...
 
PetscErrorCode MoFEM::FieldBlas::setField (const double val, const EntityType type, const Range &ents, const std::string &field_name)
 set field More...
 
PetscErrorCode MoFEM::FieldBlas::fieldScale (const double alpha, const std::string &field_name)
 set field More...
 

Field algebra

virtual DEPRECATED PetscErrorCode MoFEM::Interface::field_axpy (const double alpha, const std::string &fiel_name_x, const std::string &field_name_y, bool error_if_missing=false, bool creat_if_missing=false)=0
 axpy fields More...
 
virtual DEPRECATED PetscErrorCode MoFEM::Interface::field_scale (const double alpha, const std::string &field_name)=0
 scale field More...
 
virtual DEPRECATED PetscErrorCode MoFEM::Interface::set_field (const double val, const EntityType type, const std::string &field_name)=0
 use FieldBlas More...
 
virtual DEPRECATED PetscErrorCode MoFEM::Interface::set_field (const double val, const EntityType type, const Range &ents, const std::string &field_name)=0
 set field More...
 

Detailed Description

Basic algebraic operation on fields.

Function Documentation

◆ field_axpy()

virtual DEPRECATED PetscErrorCode MoFEM::Interface::field_axpy ( const double  alpha,
const std::string &  fiel_name_x,
const std::string &  field_name_y,
bool  error_if_missing = false,
bool  creat_if_missing = false 
)
pure virtual

axpy fields

Deprecated:
use FieldBlas
Todo:
should be moved to independent interface, i.e. FieldAlgebra

field_y = field_y + alpha*field_x

Parameters
alpha
field_name_xname of field_x
field_name_yname of field_y
error_if_missingthrow error if entity/dof exist in field_x but not on field_y
create_if_missingcreat dof in field_y from fiedl_x if it is not database

Implemented in MoFEM::Core.

◆ field_scale()

virtual DEPRECATED PetscErrorCode MoFEM::Interface::field_scale ( const double  alpha,
const std::string &  field_name 
)
pure virtual

scale field

Deprecated:
use FieldBlas
Todo:
should be moved to independent interface, i.e. FieldAlgebra
Parameters
alphais a scaling factor is a field name

Implemented in MoFEM::Core.

◆ fieldAxpy()

PetscErrorCode MoFEM::FieldBlas::fieldAxpy ( const double  alpha,
const std::string &  field_name_x,
const std::string &  field_name_y,
bool  error_if_missing = false,
bool  creat_if_missing = false 
)

axpy fields

Todo:
should be moved to independent interface, i.e. FieldAlgebra

field_y = field_y + alpha*field_x

Parameters
alpha
field_name_xname of field_x
field_name_yname of field_y
error_if_missingthrow error if entity/dof exist in field_x but not on field_y
create_if_missingcreat dof in field_y from fiedl_x if it is not database

Definition at line 74 of file FieldBlas.cpp.

77  {
78  const MoFEM::Interface &m_field = cOre;
79  const Field_multiIndex *fields_ptr;
80  const FieldEntity_multiIndex *field_ents;
81  const DofEntity_multiIndex *dofs_ptr;
82  PetscFunctionBegin;
83  ierr = m_field.get_fields(&fields_ptr); CHKERRQ(ierr);
84  ierr = m_field.get_field_ents(&field_ents); CHKERRQ(ierr);
85  ierr = m_field.get_dofs(&dofs_ptr); CHKERRQ(ierr);
86  Field_multiIndex::index<FieldName_mi_tag>::type::iterator x_fit = fields_ptr->get<FieldName_mi_tag>().find(field_name_x);
87  if(x_fit==fields_ptr->get<FieldName_mi_tag>().end()) {
88  SETERRQ1(PETSC_COMM_SELF,1,"x field < %s > not found, (top tip: check spelling)",field_name_x.c_str());
89  }
90  Field_multiIndex::index<FieldName_mi_tag>::type::iterator y_fit = fields_ptr->get<FieldName_mi_tag>().find(field_name_y);
91  if(y_fit==fields_ptr->get<FieldName_mi_tag>().end()) {
92  SETERRQ1(PETSC_COMM_SELF,1,"y field < %s > not found, (top tip: check spelling)",field_name_y.c_str());
93  }
94  if((*x_fit)->getSpace() != (*y_fit)->getSpace()) {
95  SETERRQ2(PETSC_COMM_SELF,1,"space for field < %s > and field <%s> are not compatible",field_name_x.c_str(),field_name_y.c_str());
96  }
97  if((*x_fit)->getNbOfCoeffs() != (*y_fit)->getNbOfCoeffs()) {
98  SETERRQ2(PETSC_COMM_SELF,1,"rank for field < %s > and field <%s> are not compatible",field_name_x.c_str(),field_name_y.c_str());
99  }
100  FieldEntityByFieldName::iterator x_eit;
101  x_eit = field_ents->get<FieldName_mi_tag>().lower_bound(field_name_x.c_str());
102  for(;x_eit!=field_ents->get<FieldName_mi_tag>().upper_bound(field_name_x.c_str());x_eit++) {
103  int nb_dofs_on_x_entity = (*x_eit)->tag_FieldData_size/sizeof(FieldData);
104  for(int dd = 0;dd<nb_dofs_on_x_entity;dd++) {
105  ApproximationOrder dof_order = (*x_eit)->getDofOrderMap()[dd];
106  FieldCoefficientsNumber dof_rank = dd%(*x_eit)->getNbOfCoeffs();
107  FieldData data = (*x_eit)->tag_FieldData[dd];
108  DofEntity_multiIndex::index<Composite_Name_Ent_Order_And_CoeffIdx_mi_tag>::type::iterator dit;
109  dit = dofs_ptr->get<Composite_Name_Ent_Order_And_CoeffIdx_mi_tag>().find(
110  boost::make_tuple(field_name_y.c_str(),(*x_eit)->getEnt(),dof_order,dof_rank)
111  );
112  if(dit == dofs_ptr->get<Composite_Name_Ent_Order_And_CoeffIdx_mi_tag>().end()) {
113  if(creat_if_missing) {
114  SETERRQ(PETSC_COMM_SELF,MOFEM_DATA_INCONSISTENCY,"not yet implemented");
115  } else {
116  if(error_if_missing) {
117  std::ostringstream ss;
118  ss << "dof on ent " << (*x_eit)->getEnt() << " order " << dof_order << " rank " << dof_rank << " does not exist";
119  SETERRQ(PETSC_COMM_SELF,MOFEM_DATA_INCONSISTENCY,ss.str().c_str());
120  } else {
121  continue;
122  }
123  }
124  }
125  (*dit)->getFieldData() += alpha*data;
126  }
127  }
128  PetscFunctionReturn(0);
129  }
int FieldCoefficientsNumber
Number of field coefficients.
Definition: Common.hpp:34
static PetscErrorCode ierr
Definition: Common.hpp:26
double FieldData
Field data type.
Definition: Common.hpp:32
virtual PetscErrorCode get_fields(const Field_multiIndex **fields_ptr) const =0
Get fields multi-index from database.
multi_index_container< boost::shared_ptr< FieldEntity >, indexed_by< ordered_unique< tag< Unique_mi_tag >, member< FieldEntity, UId,&FieldEntity::globalUid > >, ordered_non_unique< tag< FieldName_mi_tag >, const_mem_fun< FieldEntity::interface_type_Field, boost::string_ref,&FieldEntity::getNameRef > >, hashed_non_unique< tag< Ent_mi_tag >, const_mem_fun< FieldEntity, EntityHandle,&FieldEntity::getEnt > >, ordered_non_unique< tag< Composite_Name_And_Ent_mi_tag >, composite_key< FieldEntity, const_mem_fun< FieldEntity::interface_type_Field, boost::string_ref,&FieldEntity::getNameRef >, const_mem_fun< FieldEntity, EntityHandle,&FieldEntity::getEnt > > > >> FieldEntity_multiIndex
MultiIndex container keeps FieldEntity.
multi_index_container< boost::shared_ptr< DofEntity >, indexed_by< ordered_unique< tag< Unique_mi_tag >, const_mem_fun< DofEntity, UId,&DofEntity::getGlobalUniqueId > >, ordered_unique< tag< Composite_Ent_and_ShortId_mi_tag >, composite_key< DofEntity, const_mem_fun< DofEntity, EntityHandle,&DofEntity::getEnt >, const_mem_fun< DofEntity, ShortId,&DofEntity::getNonNonuniqueShortId > > >, ordered_unique< tag< Composite_Name_And_Ent_And_EntDofIdx_mi_tag >, composite_key< DofEntity, const_mem_fun< DofEntity::interface_type_Field, boost::string_ref,&DofEntity::getNameRef >, const_mem_fun< DofEntity, EntityHandle,&DofEntity::getEnt >, const_mem_fun< DofEntity, DofIdx,&DofEntity::getEntDofIdx > > >, ordered_non_unique< tag< Unique_Ent_mi_tag >, const_mem_fun< DofEntity, UId,&DofEntity::getEntGlobalUniqueId > >, ordered_non_unique< const_mem_fun< DofEntity, char,&DofEntity::getActive > >, ordered_non_unique< tag< FieldName_mi_tag >, const_mem_fun< DofEntity::interface_type_Field, boost::string_ref,&DofEntity::getNameRef > >, ordered_non_unique< tag< Ent_mi_tag >, const_mem_fun< DofEntity, EntityHandle,&DofEntity::getEnt > >, ordered_non_unique< tag< Composite_Name_And_Ent_mi_tag >, composite_key< DofEntity, const_mem_fun< DofEntity::interface_type_Field, boost::string_ref,&DofEntity::getNameRef >, const_mem_fun< DofEntity, EntityHandle,&DofEntity::getEnt > > >, ordered_non_unique< tag< Composite_Name_And_Type_mi_tag >, composite_key< DofEntity, const_mem_fun< DofEntity::interface_type_Field, boost::string_ref,&DofEntity::getNameRef >, const_mem_fun< DofEntity::interface_type_RefEntity, EntityType,&DofEntity::getEntType > > >, ordered_non_unique< tag< Composite_Name_Ent_Order_And_CoeffIdx_mi_tag >, composite_key< DofEntity, const_mem_fun< DofEntity::interface_type_Field, boost::string_ref,&DofEntity::getNameRef >, const_mem_fun< DofEntity, EntityHandle,&DofEntity::getEnt >, const_mem_fun< DofEntity, ApproximationOrder,&DofEntity::getDofOrder >, const_mem_fun< DofEntity, FieldCoefficientsNumber,&DofEntity::getDofCoeffIdx > > > >> DofEntity_multiIndex
MultiIndex container keeps DofEntity.
const MoFEM::Interface & cOre
Definition: FieldBlas.hpp:37
multi_index_container< boost::shared_ptr< Field >, indexed_by< hashed_unique< tag< BitFieldId_mi_tag >, const_mem_fun< Field, const BitFieldId &,&Field::getId >, HashBit< BitFieldId >, EqBit< BitFieldId > >, ordered_unique< tag< Meshset_mi_tag >, member< Field, EntityHandle,&Field::meshSet > >, ordered_unique< tag< FieldName_mi_tag >, const_mem_fun< Field, boost::string_ref,&Field::getNameRef > >, ordered_non_unique< tag< BitFieldId_space_mi_tag >, const_mem_fun< Field, FieldSpace,&Field::getSpace > > > > Field_multiIndex
Field_multiIndex for Field.
CHKERRQ(ierr)
const Tensor2_symmetric_Expr< const ddTensor0< T, Dim, i, j >, typename promote< T, double >::V, Dim, i, j > dd(const Tensor0< T *> &a, const Index< i, Dim > index1, const Index< j, Dim > index2, const Tensor1< int, Dim > &d_ijk, const Tensor1< double, Dim > &d_xyz)
Definition: ddTensor0.hpp:28
int ApproximationOrder
Approximation on the entity.
Definition: Common.hpp:33
virtual PetscErrorCode get_dofs(const DofEntity_multiIndex **dofs_ptr) const =0
Get dofs multi index.
virtual PetscErrorCode get_field_ents(const FieldEntity_multiIndex **field_ents) const =0
Get field multi index.
InterfaceThis interface is used by user to:
Definition: Interface.hpp:38

◆ fieldScale()

PetscErrorCode MoFEM::FieldBlas::fieldScale ( const double  alpha,
const std::string &  field_name 
)

set field

Todo:
should be moved to independent interface, i.e. FieldAlgebra

field_y = val

Parameters
val
entitytype
onenties
field_name

Definition at line 171 of file FieldBlas.cpp.

171  {
172  const MoFEM::Interface &m_field = cOre;
173  const DofEntity_multiIndex *dofs_ptr;
174  PetscFunctionBegin;
175  ierr = m_field.get_dofs(&dofs_ptr); CHKERRQ(ierr);
176  DofEntityByFieldName::iterator dit,hi_dit;
177  dit = dofs_ptr->get<FieldName_mi_tag>().lower_bound(field_name);
178  hi_dit = dofs_ptr->get<FieldName_mi_tag>().upper_bound(field_name);
179  for(;dit!=hi_dit;dit++) {
180  (*dit)->getFieldData() *= alpha;
181  }
182  PetscFunctionReturn(0);
183  }
static PetscErrorCode ierr
Definition: Common.hpp:26
multi_index_container< boost::shared_ptr< DofEntity >, indexed_by< ordered_unique< tag< Unique_mi_tag >, const_mem_fun< DofEntity, UId,&DofEntity::getGlobalUniqueId > >, ordered_unique< tag< Composite_Ent_and_ShortId_mi_tag >, composite_key< DofEntity, const_mem_fun< DofEntity, EntityHandle,&DofEntity::getEnt >, const_mem_fun< DofEntity, ShortId,&DofEntity::getNonNonuniqueShortId > > >, ordered_unique< tag< Composite_Name_And_Ent_And_EntDofIdx_mi_tag >, composite_key< DofEntity, const_mem_fun< DofEntity::interface_type_Field, boost::string_ref,&DofEntity::getNameRef >, const_mem_fun< DofEntity, EntityHandle,&DofEntity::getEnt >, const_mem_fun< DofEntity, DofIdx,&DofEntity::getEntDofIdx > > >, ordered_non_unique< tag< Unique_Ent_mi_tag >, const_mem_fun< DofEntity, UId,&DofEntity::getEntGlobalUniqueId > >, ordered_non_unique< const_mem_fun< DofEntity, char,&DofEntity::getActive > >, ordered_non_unique< tag< FieldName_mi_tag >, const_mem_fun< DofEntity::interface_type_Field, boost::string_ref,&DofEntity::getNameRef > >, ordered_non_unique< tag< Ent_mi_tag >, const_mem_fun< DofEntity, EntityHandle,&DofEntity::getEnt > >, ordered_non_unique< tag< Composite_Name_And_Ent_mi_tag >, composite_key< DofEntity, const_mem_fun< DofEntity::interface_type_Field, boost::string_ref,&DofEntity::getNameRef >, const_mem_fun< DofEntity, EntityHandle,&DofEntity::getEnt > > >, ordered_non_unique< tag< Composite_Name_And_Type_mi_tag >, composite_key< DofEntity, const_mem_fun< DofEntity::interface_type_Field, boost::string_ref,&DofEntity::getNameRef >, const_mem_fun< DofEntity::interface_type_RefEntity, EntityType,&DofEntity::getEntType > > >, ordered_non_unique< tag< Composite_Name_Ent_Order_And_CoeffIdx_mi_tag >, composite_key< DofEntity, const_mem_fun< DofEntity::interface_type_Field, boost::string_ref,&DofEntity::getNameRef >, const_mem_fun< DofEntity, EntityHandle,&DofEntity::getEnt >, const_mem_fun< DofEntity, ApproximationOrder,&DofEntity::getDofOrder >, const_mem_fun< DofEntity, FieldCoefficientsNumber,&DofEntity::getDofCoeffIdx > > > >> DofEntity_multiIndex
MultiIndex container keeps DofEntity.
const MoFEM::Interface & cOre
Definition: FieldBlas.hpp:37
CHKERRQ(ierr)
virtual PetscErrorCode get_dofs(const DofEntity_multiIndex **dofs_ptr) const =0
Get dofs multi index.
InterfaceThis interface is used by user to:
Definition: Interface.hpp:38

◆ set_field() [1/2]

virtual DEPRECATED PetscErrorCode MoFEM::Interface::set_field ( const double  val,
const EntityType  type,
const std::string &  field_name 
)
pure virtual

use FieldBlas

set field

Todo:
should be moved to independent interface, i.e. FieldAlgebra

field_y = val

Parameters
val
entitytype
field_name

Implemented in MoFEM::Core.

Examples:
elasticity.cpp.

◆ set_field() [2/2]

virtual DEPRECATED PetscErrorCode MoFEM::Interface::set_field ( const double  val,
const EntityType  type,
const Range &  ents,
const std::string &  field_name 
)
pure virtual

set field

Deprecated:
use FieldBlas
Todo:
should be moved to independent interface, i.e. FieldAlgebra

field_y = val

Parameters
val
entitytype
onenties
field_name

Implemented in MoFEM::Core.

◆ setField() [1/2]

PetscErrorCode MoFEM::FieldBlas::setField ( const double  val,
const EntityType  type,
const std::string &  field_name 
)

scale field

Todo:
should be moved to independent interface, i.e. FieldAlgebra
Parameters
alphais a scaling factor is a field name

Definition at line 131 of file FieldBlas.cpp.

131  {
132  const MoFEM::Interface &m_field = cOre;
133  const DofEntity_multiIndex *dofs_ptr;
134  PetscFunctionBegin;
135  ierr = m_field.get_dofs(&dofs_ptr); CHKERRQ(ierr);
136  DofEntity_multiIndex::index<Composite_Name_And_Type_mi_tag >::type::iterator dit,hi_dit;
137  dit = dofs_ptr->get<Composite_Name_And_Type_mi_tag >().lower_bound(boost::make_tuple(field_name,type));
138  hi_dit = dofs_ptr->get<Composite_Name_And_Type_mi_tag >().upper_bound(boost::make_tuple(field_name,type));
139  for(;dit!=hi_dit;dit++) {
140  (*dit)->getFieldData() = val;
141  }
142  PetscFunctionReturn(0);
143  }
static PetscErrorCode ierr
Definition: Common.hpp:26
multi_index_container< boost::shared_ptr< DofEntity >, indexed_by< ordered_unique< tag< Unique_mi_tag >, const_mem_fun< DofEntity, UId,&DofEntity::getGlobalUniqueId > >, ordered_unique< tag< Composite_Ent_and_ShortId_mi_tag >, composite_key< DofEntity, const_mem_fun< DofEntity, EntityHandle,&DofEntity::getEnt >, const_mem_fun< DofEntity, ShortId,&DofEntity::getNonNonuniqueShortId > > >, ordered_unique< tag< Composite_Name_And_Ent_And_EntDofIdx_mi_tag >, composite_key< DofEntity, const_mem_fun< DofEntity::interface_type_Field, boost::string_ref,&DofEntity::getNameRef >, const_mem_fun< DofEntity, EntityHandle,&DofEntity::getEnt >, const_mem_fun< DofEntity, DofIdx,&DofEntity::getEntDofIdx > > >, ordered_non_unique< tag< Unique_Ent_mi_tag >, const_mem_fun< DofEntity, UId,&DofEntity::getEntGlobalUniqueId > >, ordered_non_unique< const_mem_fun< DofEntity, char,&DofEntity::getActive > >, ordered_non_unique< tag< FieldName_mi_tag >, const_mem_fun< DofEntity::interface_type_Field, boost::string_ref,&DofEntity::getNameRef > >, ordered_non_unique< tag< Ent_mi_tag >, const_mem_fun< DofEntity, EntityHandle,&DofEntity::getEnt > >, ordered_non_unique< tag< Composite_Name_And_Ent_mi_tag >, composite_key< DofEntity, const_mem_fun< DofEntity::interface_type_Field, boost::string_ref,&DofEntity::getNameRef >, const_mem_fun< DofEntity, EntityHandle,&DofEntity::getEnt > > >, ordered_non_unique< tag< Composite_Name_And_Type_mi_tag >, composite_key< DofEntity, const_mem_fun< DofEntity::interface_type_Field, boost::string_ref,&DofEntity::getNameRef >, const_mem_fun< DofEntity::interface_type_RefEntity, EntityType,&DofEntity::getEntType > > >, ordered_non_unique< tag< Composite_Name_Ent_Order_And_CoeffIdx_mi_tag >, composite_key< DofEntity, const_mem_fun< DofEntity::interface_type_Field, boost::string_ref,&DofEntity::getNameRef >, const_mem_fun< DofEntity, EntityHandle,&DofEntity::getEnt >, const_mem_fun< DofEntity, ApproximationOrder,&DofEntity::getDofOrder >, const_mem_fun< DofEntity, FieldCoefficientsNumber,&DofEntity::getDofCoeffIdx > > > >> DofEntity_multiIndex
MultiIndex container keeps DofEntity.
const MoFEM::Interface & cOre
Definition: FieldBlas.hpp:37
CHKERRQ(ierr)
virtual PetscErrorCode get_dofs(const DofEntity_multiIndex **dofs_ptr) const =0
Get dofs multi index.
InterfaceThis interface is used by user to:
Definition: Interface.hpp:38

◆ setField() [2/2]

PetscErrorCode MoFEM::FieldBlas::setField ( const double  val,
const EntityType  type,
const Range &  ents,
const std::string &  field_name 
)

set field

Todo:
should be moved to independent interface, i.e. FieldAlgebra

field_y = val

Parameters
val
entitytype
field_name

Definition at line 145 of file FieldBlas.cpp.

145  {
146  const MoFEM::Interface &m_field = cOre;
147  const DofEntity_multiIndex *dofs_ptr;
148  PetscFunctionBegin;
149  ierr = m_field.get_dofs(&dofs_ptr); CHKERRQ(ierr);
150  DofEntity_multiIndex::index<Composite_Name_And_Type_mi_tag >::type::iterator dit,hi_dit;
151  dit = dofs_ptr->get<Composite_Name_And_Type_mi_tag >().lower_bound(boost::make_tuple(field_name,type));
152  hi_dit = dofs_ptr->get<Composite_Name_And_Type_mi_tag >().upper_bound(boost::make_tuple(field_name,type));
153  EntityHandle ent,last = 0;
154  bool cont = true;
155  for(;dit!=hi_dit;dit++) {
156  ent = (*dit)->getEnt();
157  if(ent != last) {
158  if(ents.find(ent)==ents.end()) {
159  cont = true;
160  } else {
161  cont = false;
162  }
163  last = ent;
164  }
165  if(cont) continue;
166  (*dit)->getFieldData() = val;
167  }
168  PetscFunctionReturn(0);
169  }
static PetscErrorCode ierr
Definition: Common.hpp:26
multi_index_container< boost::shared_ptr< DofEntity >, indexed_by< ordered_unique< tag< Unique_mi_tag >, const_mem_fun< DofEntity, UId,&DofEntity::getGlobalUniqueId > >, ordered_unique< tag< Composite_Ent_and_ShortId_mi_tag >, composite_key< DofEntity, const_mem_fun< DofEntity, EntityHandle,&DofEntity::getEnt >, const_mem_fun< DofEntity, ShortId,&DofEntity::getNonNonuniqueShortId > > >, ordered_unique< tag< Composite_Name_And_Ent_And_EntDofIdx_mi_tag >, composite_key< DofEntity, const_mem_fun< DofEntity::interface_type_Field, boost::string_ref,&DofEntity::getNameRef >, const_mem_fun< DofEntity, EntityHandle,&DofEntity::getEnt >, const_mem_fun< DofEntity, DofIdx,&DofEntity::getEntDofIdx > > >, ordered_non_unique< tag< Unique_Ent_mi_tag >, const_mem_fun< DofEntity, UId,&DofEntity::getEntGlobalUniqueId > >, ordered_non_unique< const_mem_fun< DofEntity, char,&DofEntity::getActive > >, ordered_non_unique< tag< FieldName_mi_tag >, const_mem_fun< DofEntity::interface_type_Field, boost::string_ref,&DofEntity::getNameRef > >, ordered_non_unique< tag< Ent_mi_tag >, const_mem_fun< DofEntity, EntityHandle,&DofEntity::getEnt > >, ordered_non_unique< tag< Composite_Name_And_Ent_mi_tag >, composite_key< DofEntity, const_mem_fun< DofEntity::interface_type_Field, boost::string_ref,&DofEntity::getNameRef >, const_mem_fun< DofEntity, EntityHandle,&DofEntity::getEnt > > >, ordered_non_unique< tag< Composite_Name_And_Type_mi_tag >, composite_key< DofEntity, const_mem_fun< DofEntity::interface_type_Field, boost::string_ref,&DofEntity::getNameRef >, const_mem_fun< DofEntity::interface_type_RefEntity, EntityType,&DofEntity::getEntType > > >, ordered_non_unique< tag< Composite_Name_Ent_Order_And_CoeffIdx_mi_tag >, composite_key< DofEntity, const_mem_fun< DofEntity::interface_type_Field, boost::string_ref,&DofEntity::getNameRef >, const_mem_fun< DofEntity, EntityHandle,&DofEntity::getEnt >, const_mem_fun< DofEntity, ApproximationOrder,&DofEntity::getDofOrder >, const_mem_fun< DofEntity, FieldCoefficientsNumber,&DofEntity::getDofCoeffIdx > > > >> DofEntity_multiIndex
MultiIndex container keeps DofEntity.
const MoFEM::Interface & cOre
Definition: FieldBlas.hpp:37
CHKERRQ(ierr)
virtual PetscErrorCode get_dofs(const DofEntity_multiIndex **dofs_ptr) const =0
Get dofs multi index.
InterfaceThis interface is used by user to:
Definition: Interface.hpp:38