v0.14.0
Public Member Functions | Public Attributes | Private Attributes | List of all members
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< MatrixDouble > gradDispPtr
 
boost::shared_ptr< MatrixDouble > xAtPts
 
boost::shared_ptr< MatrixDouble > xInitAtPts
 
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  }

Member Function Documentation

◆ getBlockData()

MoFEMErrorCode DataAtIntegrationPtsSimpleRods::getBlockData ( BlockOptionDataSimpleRods data)
inline

◆ getParameters()

MoFEMErrorCode DataAtIntegrationPtsSimpleRods::getParameters ( )
inline

Definition at line 48 of file SimpleRodElement.cpp.

48  {
49  MoFEMFunctionBegin; // They will be overwritten by BlockData
50  CHKERR PetscOptionsBegin(PETSC_COMM_WORLD, "", "Problem", "none");
51 
52  ierr = PetscOptionsEnd();
53  CHKERRQ(ierr);
55  }

◆ setBlocks()

MoFEMErrorCode DataAtIntegrationPtsSimpleRods::setBlocks ( )
inline

Definition at line 67 of file SimpleRodElement.cpp.

67  {
69 
71  if (bit->getName().compare(0, 3, "ROD") == 0) {
72 
73  const int id = bit->getMeshsetId();
74  mapSimpleRod[id].eDges.clear();
75  CHKERR mField.get_moab().get_entities_by_type(
76  bit->getMeshset(), MBEDGE, mapSimpleRod[id].eDges, true);
77 
78  std::vector<double> attributes;
79  bit->getAttributes(attributes);
80  if (attributes.size() < 3) {
81  SETERRQ1(
82  PETSC_COMM_WORLD, MOFEM_ATOM_TEST_INVALID,
83  "Input mesh for ROD should have 3 attributes but there is %d",
84  attributes.size());
85  }
86  mapSimpleRod[id].iD = id;
87  mapSimpleRod[id].simpleRodYoungModulus = attributes[0];
88  mapSimpleRod[id].simpleRodSectionArea = attributes[1];
89  mapSimpleRod[id].simpleRodPreStress = attributes[2];
90 
91  // Print ROD blocks after being read
92  CHKERR PetscPrintf(PETSC_COMM_WORLD, "\nSimple rod block %d\n", id);
93  CHKERR PetscPrintf(PETSC_COMM_WORLD, "\tYoung's modulus %3.4g\n",
94  attributes[0]);
95  CHKERR PetscPrintf(PETSC_COMM_WORLD, "\tCross-section area %3.4g\n",
96  attributes[1]);
97  CHKERR PetscPrintf(PETSC_COMM_WORLD, "\tPrestress %3.4g\n",
98  attributes[2]);
99  }
100  }
101 
103  }

Member Data Documentation

◆ gradDispPtr

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

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 106 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:
BlockOptionDataSimpleRods::simpleRodSectionArea
double simpleRodSectionArea
Definition: SimpleRodElement.cpp:17
MoFEM::Types::MatrixDouble
UBlasMatrix< double > MatrixDouble
Definition: Types.hpp:77
DataAtIntegrationPtsSimpleRods::simpleRodYoungModulus
double simpleRodYoungModulus
Definition: SimpleRodElement.cpp:36
CHKERR
#define CHKERR
Inline error check.
Definition: definitions.h:535
MoFEM::CoreInterface::get_moab
virtual moab::Interface & get_moab()=0
BlockOptionDataSimpleRods::simpleRodPreStress
double simpleRodPreStress
Definition: SimpleRodElement.cpp:18
DataAtIntegrationPtsSimpleRods::mapSimpleRod
std::map< int, BlockOptionDataSimpleRods > mapSimpleRod
Definition: SimpleRodElement.cpp:40
bit
auto bit
set bit
Definition: hanging_node_approx.cpp:75
DataAtIntegrationPtsSimpleRods::setBlocks
MoFEMErrorCode setBlocks()
Definition: SimpleRodElement.cpp:67
DataAtIntegrationPtsSimpleRods::simpleRodPreStress
double simpleRodPreStress
Definition: SimpleRodElement.cpp:38
DataAtIntegrationPtsSimpleRods::mField
MoFEM::Interface & mField
Definition: SimpleRodElement.cpp:106
_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
BlockOptionDataSimpleRods::simpleRodYoungModulus
double simpleRodYoungModulus
Definition: SimpleRodElement.cpp:16
BLOCKSET
@ BLOCKSET
Definition: definitions.h:148
MoFEM::Exceptions::ierr
static MoFEMErrorCodeGeneric< PetscErrorCode > ierr
Definition: Exceptions.hpp:76
MOFEM_ATOM_TEST_INVALID
@ MOFEM_ATOM_TEST_INVALID
Definition: definitions.h:40
DataAtIntegrationPtsSimpleRods::simpleRodSectionArea
double simpleRodSectionArea
Definition: SimpleRodElement.cpp:37
MoFEMFunctionReturn
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:416
MoFEMFunctionBegin
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:346