v0.15.0
Loading...
Searching...
No Matches
DataAtIntegrationPtsSimpleRods Struct Reference
Collaboration diagram for DataAtIntegrationPtsSimpleRods:
[legend]

Public Member Functions

 DataAtIntegrationPtsSimpleRods (MoFEM::Interface &m_field)
 
MoFEMErrorCode getParameters ()
 
MoFEMErrorCode getBlockData (BlockOptionDataSimpleRods &data)
 
MoFEMErrorCode setBlocks ()
 

Public Attributes

boost::shared_ptr< MatrixDoublegradDispPtr
 
boost::shared_ptr< MatrixDoublexAtPts
 
boost::shared_ptr< MatrixDoublexInitAtPts
 
double simpleRodYoungModulus
 
double simpleRodSectionArea
 
double simpleRodPreStress
 
std::map< int, BlockOptionDataSimpleRodsmapSimpleRod
 

Private Attributes

MoFEM::InterfacemField
 

Detailed Description

Definition at line 27 of file SimpleRodElement.cpp.

Constructor & Destructor Documentation

◆ DataAtIntegrationPtsSimpleRods()

DataAtIntegrationPtsSimpleRods::DataAtIntegrationPtsSimpleRods ( MoFEM::Interface & m_field)
inline

Definition at line 42 of file SimpleRodElement.cpp.

42 : mField(m_field) {
43
44 ierr = setBlocks();
45 CHKERRABORT(PETSC_COMM_WORLD, ierr);
46 }
static MoFEMErrorCodeGeneric< PetscErrorCode > ierr

Member Function Documentation

◆ getBlockData()

MoFEMErrorCode DataAtIntegrationPtsSimpleRods::getBlockData ( BlockOptionDataSimpleRods & data)
inline

Definition at line 56 of file SimpleRodElement.cpp.

56 {
58
62
64 }
#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()

◆ getParameters()

MoFEMErrorCode DataAtIntegrationPtsSimpleRods::getParameters ( )
inline

Definition at line 48 of file SimpleRodElement.cpp.

48 {
49 MoFEMFunctionBegin; // They will be overwritten by BlockData
50 PetscOptionsBegin(PETSC_COMM_WORLD, "", "Problem", "none");
51
52 PetscOptionsEnd();
54 }

◆ setBlocks()

MoFEMErrorCode DataAtIntegrationPtsSimpleRods::setBlocks ( )
inline

Definition at line 66 of file SimpleRodElement.cpp.

66 {
68
70 if (bit->getName().compare(0, 3, "ROD") == 0) {
71
72 const int id = bit->getMeshsetId();
73 mapSimpleRod[id].eDges.clear();
74 CHKERR mField.get_moab().get_entities_by_type(
75 bit->getMeshset(), MBEDGE, mapSimpleRod[id].eDges, true);
76
77 std::vector<double> attributes;
78 bit->getAttributes(attributes);
79 if (attributes.size() < 3) {
80 SETERRQ(
81 PETSC_COMM_WORLD, MOFEM_ATOM_TEST_INVALID,
82 "Input mesh for ROD should have 3 attributes but there is %ld",
83 attributes.size());
84 }
85 mapSimpleRod[id].iD = id;
86 mapSimpleRod[id].simpleRodYoungModulus = attributes[0];
87 mapSimpleRod[id].simpleRodSectionArea = attributes[1];
88 mapSimpleRod[id].simpleRodPreStress = attributes[2];
89
90 // Print ROD blocks after being read
91 CHKERR PetscPrintf(PETSC_COMM_WORLD, "\nSimple rod block %d\n", id);
92 CHKERR PetscPrintf(PETSC_COMM_WORLD, "\tYoung's modulus %3.4g\n",
93 attributes[0]);
94 CHKERR PetscPrintf(PETSC_COMM_WORLD, "\tCross-section area %3.4g\n",
95 attributes[1]);
96 CHKERR PetscPrintf(PETSC_COMM_WORLD, "\tPrestress %3.4g\n",
97 attributes[2]);
98 }
99 }
100
102 }
@ BLOCKSET
@ MOFEM_ATOM_TEST_INVALID
Definition definitions.h:40
#define CHKERR
Inline error check.
#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.
auto bit
set bit
std::map< int, BlockOptionDataSimpleRods > mapSimpleRod
virtual moab::Interface & get_moab()=0

Member Data Documentation

◆ gradDispPtr

boost::shared_ptr<MatrixDouble> DataAtIntegrationPtsSimpleRods::gradDispPtr
Initial value:
=
boost::shared_ptr<MatrixDouble>(new MatrixDouble())
UBlasMatrix< double > MatrixDouble
Definition Types.hpp:77

Definition at line 29 of file SimpleRodElement.cpp.

◆ mapSimpleRod

std::map<int, BlockOptionDataSimpleRods> DataAtIntegrationPtsSimpleRods::mapSimpleRod

Definition at line 40 of file SimpleRodElement.cpp.

◆ mField

MoFEM::Interface& DataAtIntegrationPtsSimpleRods::mField
private

Definition at line 105 of file SimpleRodElement.cpp.

◆ simpleRodPreStress

double DataAtIntegrationPtsSimpleRods::simpleRodPreStress

Definition at line 38 of file SimpleRodElement.cpp.

◆ simpleRodSectionArea

double DataAtIntegrationPtsSimpleRods::simpleRodSectionArea

Definition at line 37 of file SimpleRodElement.cpp.

◆ simpleRodYoungModulus

double DataAtIntegrationPtsSimpleRods::simpleRodYoungModulus

Definition at line 36 of file SimpleRodElement.cpp.

◆ xAtPts

boost::shared_ptr<MatrixDouble> DataAtIntegrationPtsSimpleRods::xAtPts
Initial value:
=
boost::shared_ptr<MatrixDouble>(new MatrixDouble())

Definition at line 31 of file SimpleRodElement.cpp.

◆ xInitAtPts

boost::shared_ptr<MatrixDouble> DataAtIntegrationPtsSimpleRods::xInitAtPts
Initial value:
=
boost::shared_ptr<MatrixDouble>(new MatrixDouble())

Definition at line 33 of file SimpleRodElement.cpp.


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