v0.14.0
Public Member Functions | Public Attributes | List of all members
MyTransport Struct Reference

Application of mix transport data structure. More...

Inheritance diagram for MyTransport:
[legend]
Collaboration diagram for MyTransport:
[legend]

Public Member Functions

 MyTransport (MoFEM::Interface &m_field)
 
MoFEMErrorCode getSource (EntityHandle ent, const double x, const double y, const double z, double &flux)
 set source term More...
 
MoFEMErrorCode getBcOnValues (const EntityHandle ent, const double x, const double y, const double z, double &value)
 
MoFEMErrorCode getBcOnFluxes (const EntityHandle ent, const double x, const double y, const double z, double &flux)
 essential (Neumann) boundary condition (set fluxes) More...
 
 MyTransport (MoFEM::Interface &m_field, BcFluxMap &bc_flux_map)
 
MoFEMErrorCode getSource (EntityHandle ent, const double x, const double y, const double z, double &flux)
 set source term More...
 
MoFEMErrorCode getBcOnValues (const EntityHandle ent, const double x, const double y, const double z, double &value)
 natural (Dirihlet) boundary conditions (set values) More...
 
MoFEMErrorCode getBcOnFluxes (const EntityHandle ent, const double x, const double y, const double z, double &flux)
 essential (Neumann) boundary condition (set fluxes) More...
 
MoFEMErrorCode addBoundaryElements (BitRefLevel &ref_level)
 set-up boundary conditions More...
 
MoFEMErrorCode refineMesh (MixTransportElement &ufe, const int nb_levels, const int order)
 Refine mesh. More...
 
MoFEMErrorCode squashBits ()
 Squash bits of entities. More...
 
MoFEMErrorCode updateMeshsetsFieldsAndElements (const int nb_levels)
 update meshsets with new entities after mesh refinement More...
 
- Public Member Functions inherited from MixTransport::MixTransportElement
 MixTransportElement (MoFEM::Interface &m_field)
 construction of this data structure More...
 
virtual ~MixTransportElement ()
 destructor More...
 
MoFEMErrorCode getDirichletBCIndices (IS *is)
 get dof indices where essential boundary conditions are applied More...
 
virtual MoFEMErrorCode getResistivity (const EntityHandle ent, const double x, const double y, const double z, MatrixDouble3by3 &inv_k)
 natural (Dirichlet) boundary conditions (set values) More...
 
virtual MoFEMErrorCode getBcOnValues (const EntityHandle ent, const int gg, const double x, const double y, const double z, double &value)
 evaluate natural (Dirichlet) boundary conditions More...
 
MoFEMErrorCode addFields (const std::string &values, const std::string &fluxes, const int order)
 Add fields to database. More...
 
MoFEMErrorCode addFiniteElements (const std::string &fluxes_name, const std::string &values_name)
 add finite elements More...
 
MoFEMErrorCode buildProblem (BitRefLevel &ref_level)
 Build problem. More...
 
MoFEMErrorCode postProc (const string out_file)
 Post process results. More...
 
MoFEMErrorCode createMatrices ()
 create matrices More...
 
MoFEMErrorCode solveLinearProblem ()
 solve problem More...
 
MoFEMErrorCode calculateResidual ()
 calculate residual More...
 
MoFEMErrorCode evaluateError ()
 Calculate error on elements. More...
 
MoFEMErrorCode destroyMatrices ()
 destroy matrices More...
 

Public Attributes

BcFluxMapbcFluxMap
 
EntityHandle lastEnt
 
double lastFlux
 
- Public Attributes inherited from MixTransport::MixTransportElement
MoFEM::InterfacemField
 
MyVolumeFE feVol
 Instance of volume element. More...
 
MyTriFE feTri
 Instance of surface element. More...
 
VectorDouble valuesAtGaussPts
 values at integration points on element More...
 
MatrixDouble valuesGradientAtGaussPts
 gradients at integration points on element More...
 
VectorDouble divergenceAtGaussPts
 divergence at integration points on element More...
 
MatrixDouble fluxesAtGaussPts
 fluxes at integration points on element More...
 
set< int > bcIndices
 
std::map< int, BlockDatasetOfBlocks
 maps block set id with appropriate BlockData More...
 
Vec D
 
Vec D0
 
Vec F
 
Mat Aij
 
map< double, EntityHandleerrorMap
 
double sumErrorFlux
 
double sumErrorDiv
 
double sumErrorJump
 

Detailed Description

Application of mix transport data structure.

define sources and other stuff

MixTransportElement is a class collecting functions, operators and data for mix implementation of transport element. See there to learn how elements are created or how operators look like.

Some methods in MixTransportElement are abstract, f.e. user need to implement own source therm.

MixTransportElement is a class collecting functions, operators and data for mix implementation of transport element. See there to learn how elements are created or how operators look like.

Some methods in MixTransportElement are abstract, f.e. user need to implement own source therm.

Definition at line 24 of file mix_transport.cpp.

Constructor & Destructor Documentation

◆ MyTransport() [1/2]

MyTransport::MyTransport ( MoFEM::Interface m_field)
inline

Definition at line 26 of file mix_transport.cpp.

26 : MixTransportElement(m_field){};

◆ MyTransport() [2/2]

MyTransport::MyTransport ( MoFEM::Interface m_field,
BcFluxMap bc_flux_map 
)
inline

Definition at line 56 of file h_adaptive_transport.cpp.

57  : MixTransportElement(m_field), bcFluxMap(bc_flux_map), lastEnt(0),
58  lastFlux(0) {}

Member Function Documentation

◆ addBoundaryElements()

MoFEMErrorCode MyTransport::addBoundaryElements ( BitRefLevel ref_level)
inline

set-up boundary conditions

Parameters
ref_levelmesh refinement level
Note
It is assumed that user would like to something non-standard with boundary conditions, have a own type of data structures to pass to functions calculating values and fluxes on boundary. For example BcFluxMap. That way this function is implemented here not in generic class MixTransportElement.
Returns
error code

Definition at line 132 of file h_adaptive_transport.cpp.

132  {
134  Range tets;
135  CHKERR mField.getInterface<BitRefManager>()->getEntitiesByTypeAndRefLevel(
136  ref_level, BitRefLevel().set(), MBTET, tets);
137  Skinner skin(&mField.get_moab());
138  Range skin_faces; // skin faces from 3d ents
139  CHKERR skin.find_skin(0, tets, false, skin_faces);
140  // note: what is essential (dirichlet) is natural (neumann) for mix-FE
141  // compared to classical FE
142  Range natural_bc;
144  mField, NODESET | TEMPERATURESET, it)) {
145  Range tris;
146  CHKERR it->getMeshsetIdEntitiesByDimension(mField.get_moab(), 2, tris,
147  true);
148  natural_bc.insert(tris.begin(), tris.end());
149  }
151  mField, SIDESET | HEATFLUXSET, it)) {
152  HeatFluxCubitBcData mydata;
153  CHKERR it->getBcDataStructure(mydata);
154  if (mydata.data.flag1 == 1) {
155  Range tris;
156  CHKERR it->getMeshsetIdEntitiesByDimension(mField.get_moab(), 2, tris,
157  true);
158  bcFluxMap[it->getMeshsetId()].eNts = tris;
159  bcFluxMap[it->getMeshsetId()].fLux = mydata.data.value1;
160  // cerr << bcFluxMap[it->getMeshsetId()].eNts << endl;
161  // cerr << bcFluxMap[it->getMeshsetId()].fLux << endl;
162  }
163  }
164  Range essential_bc = subtract(skin_faces, natural_bc);
165  Range bit_tris;
166  CHKERR mField.getInterface<BitRefManager>()->getEntitiesByTypeAndRefLevel(
167  ref_level, BitRefLevel().set(), MBTRI, bit_tris);
168  essential_bc = intersect(bit_tris, essential_bc);
169  natural_bc = intersect(bit_tris, natural_bc);
171  "MIX_BCFLUX");
173  "MIX_BCVALUE");
174  // CHKERR
175  // mField.add_ents_to_finite_element_by_type(skin_faces,MBTRI,"MIX_BCVALUE");
177  }

◆ getBcOnFluxes() [1/2]

MoFEMErrorCode MyTransport::getBcOnFluxes ( const EntityHandle  ent,
const double  x,
const double  y,
const double  z,
double flux 
)
inlinevirtual

essential (Neumann) boundary condition (set fluxes)

Parameters
enthandle to finite element entity
xcoord
ycoord
zcoord
fluxreference to flux which is set by function
Returns
[description]

Reimplemented from MixTransport::MixTransportElement.

Definition at line 43 of file mix_transport.cpp.

44  {
46  flux = 0;
48  }

◆ getBcOnFluxes() [2/2]

MoFEMErrorCode MyTransport::getBcOnFluxes ( const EntityHandle  ent,
const double  x,
const double  y,
const double  z,
double flux 
)
inlinevirtual

essential (Neumann) boundary condition (set fluxes)

Parameters
enthandle to finite element entity
xcoord
ycoord
zcoord
fluxreference to flux which is set by function
Returns
[description]

Reimplemented from MixTransport::MixTransportElement.

Definition at line 101 of file h_adaptive_transport.cpp.

102  {
104  if (lastEnt == ent) {
105  flux = lastFlux;
106  } else {
107  flux = 0;
108  for (BcFluxMap::iterator mit = bcFluxMap.begin(); mit != bcFluxMap.end();
109  mit++) {
110  Range &tris = mit->second.eNts;
111  if (tris.find(ent) != tris.end()) {
112  flux = mit->second.fLux;
113  }
114  }
115  lastEnt = ent;
116  lastFlux = flux;
117  }
119  }

◆ getBcOnValues() [1/2]

MoFEMErrorCode MyTransport::getBcOnValues ( const EntityHandle  ent,
const double  x,
const double  y,
const double  z,
double value 
)
inline

Definition at line 36 of file mix_transport.cpp.

37  {
39  value = 1;
41  }

◆ getBcOnValues() [2/2]

MoFEMErrorCode MyTransport::getBcOnValues ( const EntityHandle  ent,
const double  x,
const double  y,
const double  z,
double value 
)
inline

natural (Dirihlet) boundary conditions (set values)

Parameters
enthandle to finite element entity
xcoord
ycoord
zcoord
valuereference to value set by function
Returns
error code

Definition at line 85 of file h_adaptive_transport.cpp.

86  {
88  value = 0;
90  }

◆ getSource() [1/2]

MoFEMErrorCode MyTransport::getSource ( EntityHandle  ent,
const double  x,
const double  y,
const double  z,
double flux 
)
inlinevirtual

set source term

Parameters
enthandle to entity on which function is evaluated
xcoord
ycoord
zcoord
fluxreference to source term set by function
Returns
error code

Reimplemented from MixTransport::MixTransportElement.

Definition at line 28 of file mix_transport.cpp.

29  {
31  // double d = std::sqrt(x*x+y*y+z*z);
32  flux = 1; //-pow(d,5./4.);
34  }

◆ getSource() [2/2]

MoFEMErrorCode MyTransport::getSource ( EntityHandle  ent,
const double  x,
const double  y,
const double  z,
double flux 
)
inlinevirtual

set source term

Parameters
enthandle to entity on which function is evaluated
xcoord
ycoord
zcoord
fluxreference to source term set by function
Returns
error code

Reimplemented from MixTransport::MixTransportElement.

Definition at line 69 of file h_adaptive_transport.cpp.

70  {
72  flux = 0;
74  }

◆ refineMesh()

MoFEMErrorCode MyTransport::refineMesh ( MixTransportElement ufe,
const int  nb_levels,
const int  order 
)
inline

Refine mesh.

Parameters
ufegeneral data structure
nb_levelsnumber of refinement levels
orderset order of approximation
Returns
errpr code

Refinement of could result in distorted mesh, for example, imagine when you have two levels of non-uniform refinement. Some tetrahedra on the mesh at first refinement instance are only refined by splitting subset of edges on it. Then refined child tetrahedra usually will have worse quality than quality of parent element. Refining such element in subsequent mesh refinement, potentially will deteriorate elements quality even worse. To prevent that adding new refinement level, recreate whole hierarchy of meshes.

Note on subsequent improvement could include refinement of tetrahedra from different levels, including initial mesh. So refinement two could split elements created during refinement one and also split elements from an initial mesh.

That adding the new refinement level creates refinement hierarchy of meshes from a scratch, not adding to existing one.

Entities from previous hierarchy are used in that process, but bit levels on those entities are squashed.

Definition at line 206 of file h_adaptive_transport.cpp.

207  {
208  MeshRefinement *refine_ptr;
210  // get refined edges having child vertex
211  auto ref_ents_ptr = mField.get_ref_ents();
212  typedef RefEntity_multiIndex::index<
214  const RefEntsByComposite &ref_ents =
215  ref_ents_ptr->get<Composite_EntType_and_ParentEntType_mi_tag>();
216  RefEntsByComposite::iterator rit, hi_rit;
217  rit = ref_ents.lower_bound(boost::make_tuple(MBVERTEX, MBEDGE));
218  hi_rit = ref_ents.upper_bound(boost::make_tuple(MBVERTEX, MBEDGE));
219  Range refined_edges;
220  // thist loop is over vertices which parent is edge
221  for (; rit != hi_rit; rit++) {
222  refined_edges.insert((*rit)->getParentEnt()); // get parent edge
223  }
224  // get tets which has large error
225  Range tets_to_refine;
226  const double max_error = ufe.errorMap.rbegin()->first;
227  // int size = ((double)5/6)*ufe.errorMap.size();
228  for (map<double, EntityHandle>::iterator mit = ufe.errorMap.begin();
229  mit != ufe.errorMap.end(); mit++) {
230  // cerr << mit->first << " " << mit->second << endl;
231  // if((size--)>0) continue;
232  if (mit->first < 0.25 * max_error)
233  continue;
234  tets_to_refine.insert(mit->second);
235  }
236  Range tets_to_refine_edges;
237  CHKERR mField.get_moab().get_adjacencies(
238  tets_to_refine, 1, false, tets_to_refine_edges, moab::Interface::UNION);
239  refined_edges.merge(tets_to_refine_edges);
240  CHKERR mField.getInterface(refine_ptr);
241  for (int ll = 0; ll != nb_levels; ll++) {
242  Range edges;
243  CHKERR mField.getInterface<BitRefManager>()->getEntitiesByTypeAndRefLevel(
244  BitRefLevel().set(ll), BitRefLevel().set(), MBEDGE, edges);
245  edges = intersect(edges, refined_edges);
246  // add edges to refine at current level edges (some of the where refined
247  // before)
249  edges, BitRefLevel().set(ll + 1));
250  // get tets at current level
251  Range tets;
252  CHKERR mField.getInterface<BitRefManager>()->getEntitiesByTypeAndRefLevel(
253  BitRefLevel().set(ll), BitRefLevel().set(), MBTET, tets);
254  CHKERR refine_ptr->refineTets(tets, BitRefLevel().set(ll + 1));
256  }
257 
258  // update fields and elements
259  EntityHandle ref_meshset;
260  CHKERR mField.get_moab().create_meshset(MESHSET_SET, ref_meshset);
261  {
262  // cerr << BitRefLevel().set(nb_levels) << endl;
263  CHKERR mField.getInterface<BitRefManager>()->getEntitiesByTypeAndRefLevel(
264  BitRefLevel().set(nb_levels), BitRefLevel().set(), MBTET,
265  ref_meshset);
266 
267  Range ref_tets;
268  CHKERR mField.get_moab().get_entities_by_type(ref_meshset, MBTET,
269  ref_tets);
270 
271  // add entities to field
272  CHKERR mField.add_ents_to_field_by_type(ref_meshset, MBTET, "FLUXES");
273  CHKERR mField.add_ents_to_field_by_type(ref_meshset, MBTET, "VALUES");
274  CHKERR mField.set_field_order(0, MBTET, "FLUXES", order + 1);
275  CHKERR mField.set_field_order(0, MBTRI, "FLUXES", order + 1);
276  CHKERR mField.set_field_order(0, MBTET, "VALUES", order);
277 
278  // add entities to skeleton
279  Range ref_tris;
280  CHKERR mField.getInterface<BitRefManager>()->getEntitiesByTypeAndRefLevel(
281  BitRefLevel().set(nb_levels), BitRefLevel().set(), MBTRI, ref_tris);
283  "MIX_SKELETON");
284 
285  // add entities to finite elements
287  mField, BLOCKSET | MAT_THERMALSET, it)) {
288  Mat_Thermal temp_data;
289  CHKERR it->getAttributeDataStructure(temp_data);
290  setOfBlocks[it->getMeshsetId()].cOnductivity =
291  temp_data.data.Conductivity;
292  setOfBlocks[it->getMeshsetId()].cApacity = temp_data.data.HeatCapacity;
293  CHKERR mField.get_moab().get_entities_by_type(
294  it->meshset, MBTET, setOfBlocks[it->getMeshsetId()].tEts, true);
295  setOfBlocks[it->getMeshsetId()].tEts =
296  intersect(ref_tets, setOfBlocks[it->getMeshsetId()].tEts);
298  setOfBlocks[it->getMeshsetId()].tEts, MBTET, "MIX");
299  }
300  }
301  CHKERR mField.get_moab().delete_entities(&ref_meshset, 1);
303  }

◆ squashBits()

MoFEMErrorCode MyTransport::squashBits ( )
inline

Squash bits of entities.

Information about hierarchy of meshsets is lost, but entities are not deleted from the mesh. After squash entities bits, new hierarchy can be created.

Returns
error code

Definition at line 313 of file h_adaptive_transport.cpp.

313  {
315  BitRefLevel all_but_0;
316  all_but_0.set(0);
317  all_but_0.flip();
318  BitRefLevel garbage_bit;
319  garbage_bit.set(BITREFLEVEL_SIZE - 1); // Garbage level
320  auto ref_ents_ptr = mField.get_ref_ents();
321  RefEntity_multiIndex::iterator mit = ref_ents_ptr->begin();
322  for (; mit != ref_ents_ptr->end(); mit++) {
323  if (mit->get()->getEntType() == MBENTITYSET)
324  continue;
325  BitRefLevel bit = mit->get()->getBitRefLevel();
326  if ((all_but_0 & bit) == bit) {
327  *(const_cast<RefEntity *>(mit->get())->getBitRefLevelPtr()) =
328  garbage_bit;
329  } else {
330  *(const_cast<RefEntity *>(mit->get())->getBitRefLevelPtr()) =
331  BitRefLevel().set(0);
332  }
333  }
335  }

◆ updateMeshsetsFieldsAndElements()

MoFEMErrorCode MyTransport::updateMeshsetsFieldsAndElements ( const int  nb_levels)
inline

update meshsets with new entities after mesh refinement

Parameters
nb_levelsnb_levels
orderappropriate order
Returns
error code

Definition at line 343 of file h_adaptive_transport.cpp.

343  {
344  BitRefLevel ref_level;
346  ref_level.set(nb_levels);
348  EntityHandle meshset = it->meshset;
350  ->updateMeshsetByEntitiesChildren(meshset, ref_level, meshset,
351  MBMAXTYPE, true);
352  }
354  }

Member Data Documentation

◆ bcFluxMap

BcFluxMap& MyTransport::bcFluxMap

Definition at line 52 of file h_adaptive_transport.cpp.

◆ lastEnt

EntityHandle MyTransport::lastEnt

Definition at line 53 of file h_adaptive_transport.cpp.

◆ lastFlux

double MyTransport::lastFlux

Definition at line 54 of file h_adaptive_transport.cpp.


The documentation for this struct was generated from the following files:
MoFEMFunctionReturnHot
#define MoFEMFunctionReturnHot(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:460
MoFEM::UnknownInterface::getInterface
MoFEMErrorCode getInterface(IFACE *&iface) const
Get interface reference to pointer of interface.
Definition: UnknownInterface.hpp:93
SIDESET
@ SIDESET
Definition: definitions.h:160
MixTransport::MixTransportElement::MixTransportElement
MixTransportElement(MoFEM::Interface &m_field)
construction of this data structure
Definition: MixTransportElement.hpp:70
MyTransport::updateMeshsetsFieldsAndElements
MoFEMErrorCode updateMeshsetsFieldsAndElements(const int nb_levels)
update meshsets with new entities after mesh refinement
Definition: h_adaptive_transport.cpp:343
EntityHandle
MoFEM::MeshRefinement::addVerticesInTheMiddleOfEdges
MoFEMErrorCode addVerticesInTheMiddleOfEdges(const EntityHandle meshset, const BitRefLevel &bit, const bool recursive=false, int verb=QUIET, EntityHandle start_v=0)
make vertices in the middle of edges in meshset and add them to refinement levels defined by bit
Definition: MeshRefinement.cpp:42
_IT_CUBITMESHSETS_BY_BCDATA_TYPE_FOR_LOOP_
#define _IT_CUBITMESHSETS_BY_BCDATA_TYPE_FOR_LOOP_(MESHSET_MANAGER, CUBITBCTYPE, IT)
Iterator that loops over a specific Cubit MeshSet in a moFEM field.
Definition: MeshsetsManager.hpp:49
MoFEM::RefEntityTmp< 0 >
Struct keeps handle to refined handle.
Definition: RefEntsMultiIndices.hpp:141
nb_levels
constexpr int nb_levels
Definition: level_set.cpp:58
MoFEM::Mat_Thermal::data
_data_ data
Definition: MaterialBlocks.hpp:217
MoFEM::CoreInterface::add_ents_to_field_by_type
virtual MoFEMErrorCode add_ents_to_field_by_type(const Range &ents, const EntityType type, const std::string &name, int verb=DEFAULT_VERBOSITY)=0
Add entities to field meshset.
order
constexpr int order
Definition: dg_projection.cpp:18
MoFEM::MeshRefinement::refineTets
MoFEMErrorCode refineTets(const EntityHandle meshset, const BitRefLevel &bit, int verb=QUIET, const bool debug=false)
refine TET in the meshset
Definition: MeshRefinement.cpp:197
MoFEM::Composite_EntType_and_ParentEntType_mi_tag
Definition: TagMultiIndices.hpp:77
NODESET
@ NODESET
Definition: definitions.h:159
MoFEM::CoreInterface::add_ents_to_finite_element_by_type
virtual MoFEMErrorCode add_ents_to_finite_element_by_type(const EntityHandle entities, const EntityType type, const std::string &name, const bool recursive=true)=0
add entities to finite element
CHKERR
#define CHKERR
Inline error check.
Definition: definitions.h:548
MoFEM::CoreInterface::get_moab
virtual moab::Interface & get_moab()=0
MyTransport::lastFlux
double lastFlux
Definition: h_adaptive_transport.cpp:54
MAT_THERMALSET
@ MAT_THERMALSET
block name is "MAT_THERMAL"
Definition: definitions.h:174
MoFEM::MeshRefinement
Mesh refinement interface.
Definition: MeshRefinement.hpp:26
bit
auto bit
set bit
Definition: hanging_node_approx.cpp:75
convert.type
type
Definition: convert.py:64
MyTransport::bcFluxMap
BcFluxMap & bcFluxMap
Definition: h_adaptive_transport.cpp:52
MixTransport::MixTransportElement::setOfBlocks
std::map< int, BlockData > setOfBlocks
maps block set id with appropriate BlockData
Definition: MixTransportElement.hpp:185
Range
MoFEM::Mat_Thermal
Thermal material data structure.
Definition: MaterialBlocks.hpp:201
BLOCKSET
@ BLOCKSET
Definition: definitions.h:161
BITREFLEVEL_SIZE
#define BITREFLEVEL_SIZE
max number of refinements
Definition: definitions.h:232
MoFEM::CoreInterface::get_ref_ents
virtual const RefEntity_multiIndex * get_ref_ents() const =0
Get the ref ents object.
TEMPERATURESET
@ TEMPERATURESET
Definition: definitions.h:168
MixTransport::MixTransportElement::errorMap
map< double, EntityHandle > errorMap
Definition: MixTransportElement.hpp:1365
MyTransport::lastEnt
EntityHandle lastEnt
Definition: h_adaptive_transport.cpp:53
MoFEM::HeatFluxCubitBcData
Definition of the heat flux bc data structure.
Definition: BCData.hpp:427
_IT_CUBITMESHSETS_FOR_LOOP_
#define _IT_CUBITMESHSETS_FOR_LOOP_(MESHSET_MANAGER, IT)
Iterator that loops over all the Cubit MeshSets in a moFEM field.
Definition: MeshsetsManager.hpp:34
MoFEM::BitRefManager
Managing BitRefLevels.
Definition: BitRefManager.hpp:21
MoFEM::Types::BitRefLevel
std::bitset< BITREFLEVEL_SIZE > BitRefLevel
Bit structure attached to each entity identifying to what mesh entity is attached.
Definition: Types.hpp:40
MoFEM::HeatFluxCubitBcData::data
_data_ data
Definition: BCData.hpp:441
MoFEMFunctionBeginHot
#define MoFEMFunctionBeginHot
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:453
HEATFLUXSET
@ HEATFLUXSET
Definition: definitions.h:169
MoFEM::CoreInterface::set_field_order
virtual MoFEMErrorCode set_field_order(const EntityHandle meshset, const EntityType type, const std::string &name, const ApproximationOrder order, int verb=DEFAULT_VERBOSITY)=0
Set order approximation of the entities in the field.
MixTransport::MixTransportElement::mField
MoFEM::Interface & mField
Definition: MixTransportElement.hpp:36
MoFEMFunctionReturn
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:429
MoFEMFunctionBegin
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:359