v0.14.0
Loading...
Searching...
No Matches
Classes | Static Public Member Functions | List of all members
MetaNodalForces Struct Reference

#include <users_modules/basic_finite_elements/src/NodalForce.hpp>

Classes

struct  DofForceScale
 Scale force based on some DOF value. More...
 
struct  TagForceScale
 Scale force based on tag value "_LoadFactor_Scale_". More...
 

Static Public Member Functions

static MoFEMErrorCode addElement (MoFEM::Interface &m_field, const std::string field_name, Range *intersect_ptr=NULL)
 Add element taking information from NODESET. More...
 
static MoFEMErrorCode setOperators (MoFEM::Interface &m_field, boost::ptr_map< std::string, NodalForce > &nodal_forces, Vec F, const std::string field_name)
 Set integration point operators. More...
 

Detailed Description

Definition at line 59 of file NodalForce.hpp.

Member Function Documentation

◆ addElement()

static MoFEMErrorCode MetaNodalForces::addElement ( MoFEM::Interface m_field,
const std::string  field_name,
Range intersect_ptr = NULL 
)
inlinestatic

Add element taking information from NODESET.

Examples
Remodeling.cpp, elasticity.cpp, elasticity_mixed_formulation.cpp, and nonlinear_dynamics.cpp.

Definition at line 92 of file NodalForce.hpp.

94 {
96 CHKERR m_field.add_finite_element("FORCE_FE", MF_ZERO);
101 it)) {
102 Range tris;
103 CHKERR m_field.get_moab().get_entities_by_type(it->meshset, MBTRI, tris,
104 true);
105 Range edges;
106 CHKERR m_field.get_moab().get_entities_by_type(it->meshset, MBEDGE, edges,
107 true);
108 Range tris_nodes;
109 CHKERR m_field.get_moab().get_connectivity(tris, tris_nodes);
110 Range edges_nodes;
111 CHKERR m_field.get_moab().get_connectivity(edges, edges_nodes);
112 Range nodes;
113 CHKERR m_field.get_moab().get_entities_by_type(it->meshset, MBVERTEX,
114 nodes, true);
115 nodes = subtract(nodes, tris_nodes);
116 nodes = subtract(nodes, edges_nodes);
117 if (intersect_ptr) {
118 nodes = intersect(nodes, *intersect_ptr);
119 }
120 CHKERR m_field.add_ents_to_finite_element_by_type(nodes, MBVERTEX,
121 "FORCE_FE");
122 }
124 }
@ MF_ZERO
Definition: definitions.h:98
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:346
@ FORCESET
Definition: definitions.h:151
@ NODESET
Definition: definitions.h:146
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:416
#define CHKERR
Inline error check.
Definition: definitions.h:535
virtual MoFEMErrorCode add_finite_element(const std::string &fe_name, enum MoFEMTypes bh=MF_EXCL, int verb=DEFAULT_VERBOSITY)=0
add finite element
virtual MoFEMErrorCode modify_finite_element_add_field_col(const std::string &fe_name, const std::string name_row)=0
set field col which finite element use
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
virtual MoFEMErrorCode modify_finite_element_add_field_data(const std::string &fe_name, const std::string name_filed)=0
set finite element field data
virtual MoFEMErrorCode modify_finite_element_add_field_row(const std::string &fe_name, const std::string name_row)=0
set field row which finite element use
#define _IT_CUBITMESHSETS_BY_BCDATA_TYPE_FOR_LOOP_(MESHSET_MANAGER, CUBITBCTYPE, IT)
Iterator that loops over a specific Cubit MeshSet in a moFEM field.
constexpr auto field_name
virtual moab::Interface & get_moab()=0

◆ setOperators()

static MoFEMErrorCode MetaNodalForces::setOperators ( MoFEM::Interface m_field,
boost::ptr_map< std::string, NodalForce > &  nodal_forces,
Vec  F,
const std::string  field_name 
)
inlinestatic

Set integration point operators.

Examples
Remodeling.cpp, elasticity.cpp, and elasticity_mixed_formulation.cpp.

Definition at line 128 of file NodalForce.hpp.

130 {
132 string fe_name = "FORCE_FE";
133 nodal_forces.insert(fe_name, new NodalForce(m_field));
135 it)) {
136 CHKERR nodal_forces.at(fe_name).addForce(field_name, F,
137 it->getMeshsetId());
138 }
140 }
@ F
Force applied to nodes.
Definition: NodalForce.hpp:13

The documentation for this struct was generated from the following file: