7#ifndef __NODAL_FORCES_HPP__ 
    8#define __NODAL_FORCES_HPP__ 
   40    boost::ptr_vector<MethodForForceScaling> &
methodsOp;
 
   43                 boost::ptr_vector<MethodForForceScaling> &methods_op,
 
   44                 bool use_snes_f = 
false);
 
   51    MoFEMErrorCode 
doWork(
int side, EntityType type,
 
   52                          EntitiesFieldData::EntData &data);
 
 
   56                          bool use_snes_f = 
false);
 
 
   82    boost::shared_ptr<DofEntity> 
dOf;
 
   86      Nf *= 
dOf->getFieldData();
 
 
 
   94                                   Range *intersect_ptr = NULL) {
 
  103      CHKERR m_field.
get_moab().get_entities_by_type(it->meshset, MBTRI, tris,
 
  106      CHKERR m_field.
get_moab().get_entities_by_type(it->meshset, MBEDGE, edges,
 
  113      CHKERR m_field.
get_moab().get_entities_by_type(it->meshset, MBVERTEX,
 
  115      nodes = subtract(nodes, tris_nodes);
 
  116      nodes = subtract(nodes, edges_nodes);
 
  118        nodes = intersect(nodes, *intersect_ptr);
 
 
  127  static MoFEMErrorCode
 
  129               boost::ptr_map<std::string, NodalForce> &nodal_forces, Vec 
F,
 
  132    string fe_name = 
"FORCE_FE";
 
  133    nodal_forces.insert(fe_name, 
new NodalForce(m_field));
 
 
 
#define MoFEMFunctionReturnHot(a)
Last executable line of each PETSc function used for error handling. Replaces return()
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
#define CHKERR
Inline error check.
#define MoFEMFunctionBeginHot
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
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_row(const std::string &fe_name, const std::string name_row)=0
set field row which finite element use
virtual MoFEMErrorCode modify_finite_element_add_field_data(const std::string &fe_name, const std::string name_field)=0
set finite element field data
#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
Class used to scale loads, f.e. in arc-length control.
virtual moab::Interface & get_moab()=0
Deprecated interface functions.
default operator for VERTEX element
Operator to assemble nodal force into right hand side vector.
boost::ptr_vector< MethodForForceScaling > & methodsOp
MoFEMErrorCode doWork(int side, EntityType type, EntitiesFieldData::EntData &data)
MoFEM::Interface & mField
NodalForce(MoFEM::Interface &m_field)
MoFEMErrorCode addForce(const std::string field_name, Vec F, int ms_id, bool use_snes_f=false)
boost::ptr_vector< MethodForForceScaling > methodsOp
std::map< int, bCForce > mapForce