v0.14.0
Static Public Member Functions | List of all members
MetaSimpleRodElement Struct Reference

Set of functions declaring elements and setting operators for simple rod element. More...

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

Static Public Member Functions

static MoFEMErrorCode addSimpleRodElements (MoFEM::Interface &m_field, const std::string field_name, const std::string mesh_nodals_positions="MESH_NODE_POSITIONS")
 Declare SimpleRod element. More...
 
static MoFEMErrorCode setSimpleRodOperators (MoFEM::Interface &m_field, boost::shared_ptr< EdgeElementForcesAndSourcesCore > fe_simple_rod_lhs_ptr, boost::shared_ptr< EdgeElementForcesAndSourcesCore > fe_simple_rod_rhs_ptr, const std::string field_name, const std::string mesh_nodals_positions="MESH_NODE_POSITIONS")
 Implementation of SimpleRod element. Set operators to calculate LHS and RHS. More...
 

Detailed Description

Set of functions declaring elements and setting operators for simple rod element.

Definition at line 13 of file SimpleRodElement.hpp.

Member Function Documentation

◆ addSimpleRodElements()

MoFEMErrorCode MetaSimpleRodElement::addSimpleRodElements ( MoFEM::Interface m_field,
const std::string  field_name,
const std::string  mesh_nodals_positions = "MESH_NODE_POSITIONS" 
)
static

Declare SimpleRod element.

Search cubit sidesets and blockset ROD and declare volume element

Blockset has to have name "ROD". The first attribute of the blockset is Young's modulus.

Parameters
m_fieldInterface insurance
field_nameField name (e.g. SPATIAL_POSITION)
mesh_nodals_positionsName of field on which ho-geometry is defined
Returns
Error code
Examples
elasticity.cpp.

Definition at line 270 of file SimpleRodElement.cpp.

272  {
274 
275  // Define boundary element that operates on rows, columns and data of a
276  // given field
277  CHKERR m_field.add_finite_element("SIMPLE_ROD", MF_ZERO);
281  if (m_field.check_field(mesh_nodals_positions)) {
282  CHKERR m_field.modify_finite_element_add_field_data("SIMPLE_ROD",
283  mesh_nodals_positions);
284  }
285  // Add entities to that element, here we add all eDges with ROD
286  // from cubit
288  if (bit->getName().compare(0, 3, "ROD") == 0) {
289  CHKERR m_field.add_ents_to_finite_element_by_type(bit->getMeshset(),
290  MBEDGE, "SIMPLE_ROD");
291  }
292  }
293  CHKERR m_field.build_finite_elements("SIMPLE_ROD");
294 
296 }

◆ setSimpleRodOperators()

MoFEMErrorCode MetaSimpleRodElement::setSimpleRodOperators ( MoFEM::Interface m_field,
boost::shared_ptr< EdgeElementForcesAndSourcesCore fe_simple_rod_lhs_ptr,
boost::shared_ptr< EdgeElementForcesAndSourcesCore fe_simple_rod_rhs_ptr,
const std::string  field_name,
const std::string  mesh_nodals_positions = "MESH_NODE_POSITIONS" 
)
static

Implementation of SimpleRod element. Set operators to calculate LHS and RHS.

Parameters
m_fieldInterface insurance
fe_simple_rod_lhs_ptrPointer to the FE instance for LHS
fe_simple_rod_rhs_ptrPointer to the FE instance for RHS
field_nameField name (e.g. SPATIAL_POSITION)
mesh_nodals_positionsName of field on which ho-geometry is defined
Returns
Error code
Examples
elasticity.cpp.

Definition at line 298 of file SimpleRodElement.cpp.

304  {
306 
307  // Push operators to instances for SimpleRod elements
308  // loop over blocks
309  boost::shared_ptr<DataAtIntegrationPtsSimpleRods> commonDataPtr =
310  boost::make_shared<DataAtIntegrationPtsSimpleRods>(m_field);
311  CHKERR commonDataPtr->getParameters();
312 
313  for (auto &sitSimpleRod : commonDataPtr->mapSimpleRod) {
314  fe_simple_rod_lhs_ptr->getOpPtrVector().push_back(
315  new OpSimpleRodK(commonDataPtr, sitSimpleRod.second, field_name));
316 
317  fe_simple_rod_rhs_ptr->getOpPtrVector().push_back(new OpSimpleRodPreStress(
318  commonDataPtr, sitSimpleRod.second, field_name));
319  }
320 
322 }

The documentation for this struct was generated from the following files:
OpSimpleRodPreStress
Add ROD pre-stress to the RHS *.
Definition: SimpleRodElement.cpp:216
MoFEM::CoreInterface::modify_finite_element_add_field_row
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
OpSimpleRodK
Assemble contribution of SimpleRod element to LHS *.
Definition: SimpleRodElement.cpp:112
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::add_finite_element
virtual MoFEMErrorCode add_finite_element(const std::string &fe_name, enum MoFEMTypes bh=MF_EXCL, int verb=DEFAULT_VERBOSITY)=0
add finite element
MoFEM::CoreInterface::modify_finite_element_add_field_col
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
MoFEM::CoreInterface::build_finite_elements
virtual MoFEMErrorCode build_finite_elements(int verb=DEFAULT_VERBOSITY)=0
Build finite elements.
bit
auto bit
set bit
Definition: hanging_node_approx.cpp:75
MoFEM::CoreInterface::check_field
virtual bool check_field(const std::string &name) const =0
check if field is in database
MoFEM::CoreInterface::modify_finite_element_add_field_data
virtual MoFEMErrorCode modify_finite_element_add_field_data(const std::string &fe_name, const std::string name_field)=0
set finite element field data
field_name
constexpr auto field_name
Definition: poisson_2d_homogeneous.cpp:13
MF_ZERO
@ MF_ZERO
Definition: definitions.h:111
_IT_CUBITMESHSETS_BY_SET_TYPE_FOR_LOOP_
#define _IT_CUBITMESHSETS_BY_SET_TYPE_FOR_LOOP_(MESHSET_MANAGER, CUBITBCTYPE, IT)
Iterator that loops over a specific Cubit MeshSet having a particular BC meshset in a moFEM field.
Definition: MeshsetsManager.hpp:71
BLOCKSET
@ BLOCKSET
Definition: definitions.h:161
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