v0.14.0
MaterialBlocks.hpp
Go to the documentation of this file.
1 /** \file MaterialBlocks.hpp
2  * \brief Data structures for Meshset/Blocsk with material data
3  *
4  * Notes:
5  * - use BLOCK_ATTRIBUTES tag to store data structures
6  * - data structures are tags of meshsets
7  */
8 
9 #ifndef __MATERIALBLOCKS_HPP__
10 #define __MATERIALBLOCKS_HPP__
11 
12 namespace MoFEM {
13 
14 /*! \struct GenericAttributeData
15  * \brief Generic attribute data structure
16  */
18 
19  /**
20  * \brief get data from structure
21  * @param attributes vector of doubles
22  * @return error code
23  */
24  virtual MoFEMErrorCode fill_data(const std::vector<double> &attributes) {
26  SETERRQ(PETSC_COMM_SELF, MOFEM_DATA_INCONSISTENCY,
27  "It makes no sense for the generic attribute type");
29  }
30 
31  /**
32  * \brief set data on structure
33  * @param tag_ptr pointer to tag on meshset
34  * @param size size of data in bytes
35  * @return error code
36  */
37  virtual MoFEMErrorCode set_data(void *tag_ptr, unsigned int size) const {
39  SETERRQ(PETSC_COMM_SELF, MOFEM_DATA_INCONSISTENCY,
40  "It makes no sense for the generic attribute type");
42  }
43 
44  const CubitBCType tYpe; ///< Type of data (f.e. MAT_ELATIC)
45 
46  /**
47  * \brief get data type
48  * @return data type, see CubitBC
49  */
50  virtual const CubitBCType &getType() const { return tYpe; }
51 
52  unsigned int minNumberOfAtributes; ///< minimal number of attributes
53 
54  /**
55  * \brief get minimal number of attributes which blockset has to have
56  * @return number of minimal data attributes
57  */
58  virtual unsigned int getMinMumberOfAtributes() const {
59  return minNumberOfAtributes;
60  }
61 
62  /**
63  * \brief get data structure size
64  * @return size of structure in bytes
65  */
66  virtual std::size_t getSizeOfData() const = 0;
67 
68  /**
69  * \brief get pointer to data structure
70  * @return pointer
71  */
72  virtual const void *getDataPtr() const = 0;
73 
75  const unsigned int min_number_of_atributes)
76  : tYpe(type), minNumberOfAtributes(min_number_of_atributes) {}
77 };
78 
79 /** \brief Arbitrary block attributes data structure
80  */
82 
83  /** \brief generic block attributes
84  *
85  */
86  struct __attribute__((packed)) _data_ {
87  double User1; // User attribute 1
88  double User2; // User attribute 2
89  double User3; // User attribute 3
90  double User4; // User attribute 4
91  double User5; // User attribute 5
92  double User6; // User attribute 6
93  double User7; // User attribute 7
94  double User8; // User attribute 8
95  double User9; // User attribute 9
96  double User10; // User attribute 10
97  };
98 
99  _data_ data;
100 
101  std::size_t getSizeOfData() const { return sizeof(_data_); }
102  const void *getDataPtr() const { return &data; }
103 
105  bzero(&data, sizeof(data));
106  }
107 
108  MoFEMErrorCode fill_data(const std::vector<double> &attributes) {
110  if (8 * attributes.size() > sizeof(data)) {
111  SETERRQ(PETSC_COMM_SELF, MOFEM_DATA_INCONSISTENCY,
112  "data inconsistency, please review the number of material "
113  "properties defined");
114  }
115  bzero(&data, sizeof(data));
116  memcpy(&data, &attributes[0], 8 * attributes.size());
118  }
119  MoFEMErrorCode set_data(void *tag_ptr, unsigned int size) const {
121  if (size > sizeof(data)) {
122  SETERRQ(PETSC_COMM_SELF, MOFEM_DATA_INCONSISTENCY,
123  "data inconsistency, please review the number of material "
124  "properties defined");
125  }
126  memcpy(tag_ptr, &data, size);
128  }
129 
130  /*! \brief Print data
131  */
132  friend std::ostream &operator<<(std::ostream &os,
133  const BlockSetAttributes &e);
134 };
135 
136 /*! \struct Mat_Elastic
137  * \brief Elastic material data structure
138  */
140 
141  /** \brief block tag data structute
142  *
143  */
144  struct __attribute__((packed)) _data_ {
145  double Young; ///< Young's modulus
146  double Poisson; ///< Poisson's ratio
147  double ThermalExpansion; ///< Thermal expansion
148  double User1; // User attribute 2 // For some models is reserved for density
149  double User2; // User attribute 3
150  double User3; // User attribute 4
151  double User4; // User attribute 5
152  double User5; // User attribute 6
153  double User6; // User attribute 7
154  double User7; // User attribute 8
155  };
156 
157  _data_ data;
158  std::size_t getSizeOfData() const { return sizeof(data); };
159  const void *getDataPtr() const { return &data; }
160 
162  bzero(&data, sizeof(data));
163  };
164 
165  MoFEMErrorCode fill_data(const std::vector<double> &attributes) {
167  if (attributes.size() < minNumberOfAtributes) {
168  SETERRQ2(PETSC_COMM_SELF, MOFEM_DATA_INCONSISTENCY,
169  "Young modulus and/or Poisson ratio is not defined. (top tip: "
170  "check number of ELASTIC block attributes) %d !< %d",
171  attributes.size(), minNumberOfAtributes);
172  }
173  if (8 * attributes.size() > sizeof(data)) {
174  SETERRQ(PETSC_COMM_SELF, MOFEM_DATA_INCONSISTENCY,
175  "data inconsistency, please review the number of material "
176  "properties defined");
177  }
178  bzero(&data, sizeof(data));
179  memcpy(&data, &attributes[0], 8 * attributes.size());
181  }
182  MoFEMErrorCode set_data(void *tag_ptr, unsigned int size) const {
184  if (size > sizeof(data)) {
185  SETERRQ(PETSC_COMM_SELF, MOFEM_DATA_INCONSISTENCY,
186  "data inconsistency, please review the number of material "
187  "properties defined");
188  }
189  memcpy(tag_ptr, &data, size);
191  }
192 
193  /*! \brief Print Mat_Elastic data
194  */
195  friend std::ostream &operator<<(std::ostream &os, const Mat_Elastic &e);
196 };
197 
198 /*! \struct Mat_Thermal
199  * \brief Thermal material data structure
200  */
202 
203  /** \brief thermal block attributes
204  *
205  */
206  struct __attribute__((packed)) _data_ {
207  double Conductivity; ///< Thermal conductivity
208  double HeatCapacity; ///< Heat Capacity
209  double User2; // User attribute 2
210  double User3; // User attribute 3
211  double User4; // User attribute 4
212  double User5; // User attribute 5
213  double User6; // User attribute 6
214  double User7; // User attribute 7
215  double User8; // User attribute 8
216  double User9; // User attribute 9
217  };
218 
219  _data_ data;
220  std::size_t getSizeOfData() const { return sizeof(data); }
221  const void *getDataPtr() const { return &data; }
222 
224  bzero(&data, sizeof(data));
225  }
226 
227  MoFEMErrorCode fill_data(const std::vector<double> &attributes) {
229  if (attributes.size() < minNumberOfAtributes) {
230  SETERRQ(PETSC_COMM_SELF, MOFEM_DATA_INCONSISTENCY,
231  "Thermal conductivity is not defined. (top tip: check number of "
232  "THERMAL block atributes)");
233  }
234  if (8 * attributes.size() > sizeof(data)) {
235  SETERRQ(PETSC_COMM_SELF, MOFEM_DATA_INCONSISTENCY,
236  "data inconsistency, please review the number of material "
237  "properties defined");
238  }
239  bzero(&data, sizeof(data));
240  memcpy(&data, &attributes[0], 8 * attributes.size());
242  }
243  MoFEMErrorCode set_data(void *tag_ptr, unsigned int size) const {
245  if (size > sizeof(data)) {
246  SETERRQ(PETSC_COMM_SELF, MOFEM_DATA_INCONSISTENCY,
247  "data inconsistency, please review the number of material "
248  "properties defined");
249  }
250  memcpy(tag_ptr, &data, size);
252  }
253 
254  /*! \brief Print Mat_Elastic data
255  */
256  friend std::ostream &operator<<(std::ostream &os, const Mat_Thermal &e);
257 };
258 
259 /*! \struct Mat_Moisture
260  * \brief moisture transport material data structure
261  */
262 
264 
265  /** \brief moisture block attributes
266  *
267  */
268  struct __attribute__((packed)) _data_ {
269  double Diffusivity; ///< moisture diffusivity
270  double Viscosity; ///< Viscosity of water
271  double Permeability; ///< Permeability of material
272  double User3; // User attribute 3
273  double User4; // User attribute 4
274  double User5; // User attribute 5
275  double User6; // User attribute 6
276  double User7; // User attribute 7
277  double User8; // User attribute 8
278  double User9; // User attribute 9
279  };
280 
281  _data_ data;
282  std::size_t getSizeOfData() const { return sizeof(data); }
283  const void *getDataPtr() const { return &data; }
284 
286  bzero(&data, sizeof(data));
287  }
288 
289  MoFEMErrorCode fill_data(const std::vector<double> &attributes) {
291  if (attributes.size() < minNumberOfAtributes) {
292  SETERRQ(PETSC_COMM_SELF, MOFEM_DATA_INCONSISTENCY,
293  "moisture diffusivity is not defined. (top tip: check number of "
294  "MOISTURE block atributes)");
295  }
296  if (8 * attributes.size() > sizeof(data)) {
297  SETERRQ(PETSC_COMM_SELF, MOFEM_DATA_INCONSISTENCY,
298  "data inconsistency, please review the number of material "
299  "properties defined");
300  }
301  bzero(&data, sizeof(data));
302  memcpy(&data, &attributes[0], 8 * attributes.size());
304  }
305 
306  /*! \brief Print Mat_Elastic data
307  */
308  friend std::ostream &operator<<(std::ostream &os, const Mat_Moisture &e);
309 };
310 
311 /** \brief Body force data structure
312  */
314 
315  /** \brief body forces
316  *
317  */
318  struct __attribute__((packed)) _data_ {
319  double density; ///< material density
320  double acceleration_x; ///< acceleration X
321  double acceleration_y; ///< acceleration Y
322  double acceleration_z; ///< acceleration Z
323  double User4; // User attribute 4
324  double User5; // User attribute 5
325  double User6; // User attribute 6
326  double User7; // User attribute 7
327  double User8; // User attribute 8
328  };
329 
330  _data_ data;
331  std::size_t getSizeOfData() const { return sizeof(data); }
332  const void *getDataPtr() const { return &data; }
333 
335 
336  MoFEMErrorCode fill_data(const std::vector<double> &attributes) {
338  if (attributes.size() < minNumberOfAtributes) {
339  SETERRQ(PETSC_COMM_SELF, MOFEM_DATA_INCONSISTENCY,
340  "Material density and/or acceleration is not defined. (top tip: "
341  "check number of THERMAL block atributes)");
342  }
343  if (8 * attributes.size() > sizeof(data)) {
344  SETERRQ(PETSC_COMM_SELF, MOFEM_DATA_INCONSISTENCY,
345  "data inconsistency, please review the number of material "
346  "properties defined");
347  }
348  bzero(&data, sizeof(data));
349  memcpy(&data, &attributes[0], 8 * attributes.size());
351  }
352  MoFEMErrorCode set_data(void *tag_ptr, unsigned int size) const {
354  if (size > sizeof(data)) {
355  SETERRQ(PETSC_COMM_SELF, 1,
356  "data inconsistency, please review the number of material "
357  "properties defined");
358  }
359  memcpy(tag_ptr, &data, size);
361  }
362 
363  /*! \brief Print Mat_Elastic data
364  */
365  friend std::ostream &operator<<(std::ostream &os, const Block_BodyForces &e);
366 };
367 
368 /*! \struct Mat_Elastic_TransIso
369  * \brief Transverse Isotropic material data structure
370  */
372 
373  /** \brief transverse isotropic
374  *
375  */
376  struct __attribute__((packed)) _data_ {
377  double Youngp; ///< Young's modulus in xy plane (Ep)
378  double Youngz; ///< Young's modulus in z-direction (Ez)
379  double Poissonp; ///< Poisson's ratio in xy plane (vp)
380  double Poissonpz; ///< Poisson's ratio in z-direction (vpz)
381  double Shearzp; ///< Shear modulus in z-direction (Gzp)
382  };
383 
384  _data_ data;
385  std::size_t getSizeOfData() const { return sizeof(data); }
386  const void *getDataPtr() const { return &data; }
387 
389  bzero(&data, sizeof(data));
390  }
391 
392  MoFEMErrorCode fill_data(const std::vector<double> &attributes) {
394  // Fill data
395  if (attributes.size() < minNumberOfAtributes) {
396  SETERRQ(PETSC_COMM_SELF, MOFEM_DATA_INCONSISTENCY,
397  "All material data not defined");
398  }
399  if (8 * attributes.size() != sizeof(data)) {
400  SETERRQ(PETSC_COMM_SELF, MOFEM_DATA_INCONSISTENCY,
401  "data inconsistency, please review the number of material "
402  "properties defined");
403  }
404  memcpy(&data, &attributes[0], sizeof(data));
405  bzero(&data, sizeof(data));
406  memcpy(&data, &attributes[0], 8 * attributes.size());
407 
409  }
410  MoFEMErrorCode set_data(void *tag_ptr, unsigned int size) const {
412  if (size > sizeof(data)) {
413  SETERRQ(PETSC_COMM_SELF, MOFEM_DATA_INCONSISTENCY,
414  "data inconsistency, please review the number of material "
415  "properties defined");
416  }
417  memcpy(tag_ptr, &data, size);
419  }
420 
421  /*! \brief Print Mat_Elastic_TransIso data
422  */
423  friend std::ostream &operator<<(std::ostream &os,
424  const Mat_Elastic_TransIso &e);
425 };
426 
427 /*! \struct Mat_Interf
428  * \brief Linear interface data structure
429  */
431 
432  /** \brief inteface
433  *
434  */
435  struct __attribute__((packed)) _data_ {
436  double alpha; ///< Elastic modulus multiplier
437  double beta; ///< Damage Coupling multiplier between normal and shear
438  ///< (g=sqrt(gn^2 + beta(gt1^2 + gt2^2)))
439  double ft; ///< Maximum stress of crack
440  double Gf; ///< Fracture Energy
441  };
442 
443  _data_ data;
444  std::size_t getSizeOfData() const { return sizeof(data); }
445  const void *getDataPtr() const { return &data; }
446 
448  bzero(&data, sizeof(data));
449  }
450 
451  virtual MoFEMErrorCode fill_data(const std::vector<double> &attributes) {
453  // Fill data
454  if (8 * attributes.size() != sizeof(data)) {
455  SETERRQ(PETSC_COMM_SELF, MOFEM_DATA_INCONSISTENCY,
456  "data inconsistency, please review the number of material "
457  "properties defined");
458  }
459  memcpy(&data, &attributes[0], sizeof(data));
461  }
462  virtual MoFEMErrorCode set_data(void *tag_ptr, unsigned int size) const {
464  if (size > sizeof(data)) {
465  SETERRQ(PETSC_COMM_SELF, MOFEM_DATA_INCONSISTENCY,
466  "data inconsistency, please review the number of material "
467  "properties defined");
468  }
469  memcpy(tag_ptr, &data, size);
471  }
472 
473  /*! \brief Print Mat_Interf data
474  */
475  friend std::ostream &operator<<(std::ostream &os, const Mat_Interf &e);
476 };
477 
478 /** \brief Mat_Elastic with Fibres
479  * \brief Elastic material data structure
480  */
482 
483  /** \brief Hotzapler soft tissue
484  *
485  */
486  struct __attribute__((packed)) _data_ {
487  double Young; ///< Young's modulus
488  double Poisson; ///< Poisson's ratio
489  double k1; // User attribute 1
490  double k2; // User attribute 2
491  double a0x; // User attribute 3
492  double a0y; // User attribute 4
493  double a0z; // User attribute 5
494  double a1x; // User attribute 6
495  double a1y; // User attribute 7
496  double a1z; // User attribute 8
497  };
498 
499  _data_ data;
500  std::size_t getSizeOfData() const { return sizeof(data); }
501  const void *getDataPtr() const { return &data; }
502 
504  bzero(&data, sizeof(data));
505  }
506 
507  MoFEMErrorCode fill_data(const std::vector<double> &attributes) {
509  if (attributes.size() < minNumberOfAtributes) {
510  SETERRQ(PETSC_COMM_SELF, MOFEM_DATA_INCONSISTENCY,
511  "All material data not defined");
512  }
513  if (8 * attributes.size() > sizeof(data)) {
514  SETERRQ(PETSC_COMM_SELF, MOFEM_DATA_INCONSISTENCY,
515  "data inconsistency, please review the number of material "
516  "properties defined");
517  }
518  bzero(&data, sizeof(data));
519  memcpy(&data, &attributes[0], 8 * attributes.size());
521  }
522 
523  /*! \brief Print Mat_Elastic data
524  */
525  friend std::ostream &operator<<(std::ostream &os,
527 };
528 
529 } // namespace MoFEM
530 
531 #endif // __MATERIALBLOCKS_HPP__
MoFEMFunctionReturnHot
#define MoFEMFunctionReturnHot(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:447
MoFEM::Mat_Elastic_EberleinHolzapfel1::getSizeOfData
std::size_t getSizeOfData() const
get data structure size
Definition: MaterialBlocks.hpp:500
MoFEM::Block_BodyForces
Body force data structure.
Definition: MaterialBlocks.hpp:313
MoFEM::Block_BodyForces::set_data
MoFEMErrorCode set_data(void *tag_ptr, unsigned int size) const
set data on structure
Definition: MaterialBlocks.hpp:352
MoFEM::Mat_Thermal::Mat_Thermal
Mat_Thermal()
Definition: MaterialBlocks.hpp:223
MoFEM::Mat_Thermal::__attribute__
struct __attribute__((packed)) _data_
thermal block attributes
Definition: MaterialBlocks.hpp:206
MoFEM::GenericAttributeData::tYpe
const CubitBCType tYpe
Type of data (f.e. MAT_ELATIC)
Definition: MaterialBlocks.hpp:44
MoFEM::Mat_Moisture::data
_data_ data
Definition: MaterialBlocks.hpp:279
MoFEM::Mat_Interf::getDataPtr
const void * getDataPtr() const
get pointer to data structure
Definition: MaterialBlocks.hpp:445
MoFEM::Mat_Elastic_EberleinHolzapfel1::__attribute__
struct __attribute__((packed)) _data_
Hotzapler soft tissue.
Definition: MaterialBlocks.hpp:486
MoFEM::Mat_Interf::fill_data
virtual MoFEMErrorCode fill_data(const std::vector< double > &attributes)
get data from structure
Definition: MaterialBlocks.hpp:451
MoFEM::Mat_Interf::data
_data_ data
Definition: MaterialBlocks.hpp:441
MoFEM::Mat_Thermal::set_data
MoFEMErrorCode set_data(void *tag_ptr, unsigned int size) const
set data on structure
Definition: MaterialBlocks.hpp:243
MoFEM::Mat_Elastic_EberleinHolzapfel1::Mat_Elastic_EberleinHolzapfel1
Mat_Elastic_EberleinHolzapfel1()
Definition: MaterialBlocks.hpp:503
MoFEM::Mat_Elastic
Elastic material data structure.
Definition: MaterialBlocks.hpp:139
MoFEM::Mat_Thermal::fill_data
MoFEMErrorCode fill_data(const std::vector< double > &attributes)
get data from structure
Definition: MaterialBlocks.hpp:227
MoFEM::BlockSetAttributes::getSizeOfData
std::size_t getSizeOfData() const
get data structure size
Definition: MaterialBlocks.hpp:101
MoFEM::BlockSetAttributes::fill_data
MoFEMErrorCode fill_data(const std::vector< double > &attributes)
get data from structure
Definition: MaterialBlocks.hpp:108
MoFEM::Exceptions::MoFEMErrorCode
PetscErrorCode MoFEMErrorCode
MoFEM/PETSc error code.
Definition: Exceptions.hpp:56
MoFEM::Block_BodyForces::getSizeOfData
std::size_t getSizeOfData() const
get data structure size
Definition: MaterialBlocks.hpp:331
MoFEM::Mat_Thermal::data
_data_ data
Definition: MaterialBlocks.hpp:217
MoFEM::Mat_Elastic::getDataPtr
const void * getDataPtr() const
get pointer to data structure
Definition: MaterialBlocks.hpp:159
MoFEM::Mat_Elastic::set_data
MoFEMErrorCode set_data(void *tag_ptr, unsigned int size) const
set data on structure
Definition: MaterialBlocks.hpp:182
MoFEM::Mat_Moisture::getSizeOfData
std::size_t getSizeOfData() const
get data structure size
Definition: MaterialBlocks.hpp:282
MoFEM::Mat_Elastic_EberleinHolzapfel1
Mat_Elastic with Fibres.
Definition: MaterialBlocks.hpp:481
MoFEM::Mat_Elastic::Mat_Elastic
Mat_Elastic()
Definition: MaterialBlocks.hpp:161
MoFEM::Mat_Interf
Linear interface data structure.
Definition: MaterialBlocks.hpp:430
MoFEM::Mat_Elastic_TransIso::getDataPtr
const void * getDataPtr() const
get pointer to data structure
Definition: MaterialBlocks.hpp:386
MoFEM::Mat_Elastic_TransIso::fill_data
MoFEMErrorCode fill_data(const std::vector< double > &attributes)
get data from structure
Definition: MaterialBlocks.hpp:392
MoFEM::BlockSetAttributes::getDataPtr
const void * getDataPtr() const
get pointer to data structure
Definition: MaterialBlocks.hpp:102
MoFEM::BlockSetAttributes
Arbitrary block attributes data structure.
Definition: MaterialBlocks.hpp:81
MoFEM
implementation of Data Operators for Forces and Sources
Definition: Common.hpp:10
MoFEM::Mat_Thermal::getDataPtr
const void * getDataPtr() const
get pointer to data structure
Definition: MaterialBlocks.hpp:221
MoFEM::Mat_Elastic_TransIso::getSizeOfData
std::size_t getSizeOfData() const
get data structure size
Definition: MaterialBlocks.hpp:385
MAT_THERMALSET
@ MAT_THERMALSET
block name is "MAT_THERMAL"
Definition: definitions.h:161
MoFEM::GenericAttributeData::minNumberOfAtributes
unsigned int minNumberOfAtributes
minimal number of attributes
Definition: MaterialBlocks.hpp:52
MoFEM::GenericAttributeData::set_data
virtual MoFEMErrorCode set_data(void *tag_ptr, unsigned int size) const
set data on structure
Definition: MaterialBlocks.hpp:37
MoFEM::BlockSetAttributes::BlockSetAttributes
BlockSetAttributes()
Definition: MaterialBlocks.hpp:104
MoFEM::Mat_Elastic_TransIso::data
_data_ data
Definition: MaterialBlocks.hpp:382
BODYFORCESSET
@ BODYFORCESSET
block name is "BODY_FORCES"
Definition: definitions.h:162
MoFEM::Mat_Elastic_TransIso
Transverse Isotropic material data structure.
Definition: MaterialBlocks.hpp:371
MoFEM::Mat_Moisture
moisture transport material data structure
Definition: MaterialBlocks.hpp:263
convert.type
type
Definition: convert.py:64
MoFEM::GenericAttributeData::getType
virtual const CubitBCType & getType() const
get data type
Definition: MaterialBlocks.hpp:50
MoFEM::Block_BodyForces::operator<<
friend std::ostream & operator<<(std::ostream &os, const Block_BodyForces &e)
Print Mat_Elastic data.
Definition: MaterialBlocks.cpp:87
MoFEM::Mat_Elastic::fill_data
MoFEMErrorCode fill_data(const std::vector< double > &attributes)
get data from structure
Definition: MaterialBlocks.hpp:165
MAT_ELASTICSET
@ MAT_ELASTICSET
block name is "MAT_ELASTIC"
Definition: definitions.h:159
MoFEM::Mat_Interf::set_data
virtual MoFEMErrorCode set_data(void *tag_ptr, unsigned int size) const
set data on structure
Definition: MaterialBlocks.hpp:462
MoFEM::Block_BodyForces::__attribute__
struct __attribute__((packed)) _data_
body forces
Definition: MaterialBlocks.hpp:318
MoFEM::Mat_Thermal::operator<<
friend std::ostream & operator<<(std::ostream &os, const Mat_Thermal &e)
Print Mat_Elastic data.
Definition: MaterialBlocks.cpp:57
MoFEM::Mat_Elastic::operator<<
friend std::ostream & operator<<(std::ostream &os, const Mat_Elastic &e)
Print Mat_Elastic data.
Definition: MaterialBlocks.cpp:24
MoFEM::Mat_Elastic::__attribute__
struct __attribute__((packed)) _data_
block tag data structute
Definition: MaterialBlocks.hpp:144
MoFEM::Mat_Elastic::data
_data_ data
Definition: MaterialBlocks.hpp:155
MoFEM::Mat_Moisture::getDataPtr
const void * getDataPtr() const
get pointer to data structure
Definition: MaterialBlocks.hpp:283
MoFEM::Mat_Elastic_EberleinHolzapfel1::getDataPtr
const void * getDataPtr() const
get pointer to data structure
Definition: MaterialBlocks.hpp:501
MoFEM::GenericAttributeData
Generic attribute data structure.
Definition: MaterialBlocks.hpp:17
MoFEM::GenericAttributeData::getSizeOfData
virtual std::size_t getSizeOfData() const =0
get data structure size
MoFEM::GenericAttributeData::GenericAttributeData
GenericAttributeData(const CubitBCType type, const unsigned int min_number_of_atributes)
Definition: MaterialBlocks.hpp:74
MoFEM::Mat_Moisture::operator<<
friend std::ostream & operator<<(std::ostream &os, const Mat_Moisture &e)
Print Mat_Elastic data.
Definition: MaterialBlocks.cpp:72
MoFEM::GenericAttributeData::getMinMumberOfAtributes
virtual unsigned int getMinMumberOfAtributes() const
get minimal number of attributes which blockset has to have
Definition: MaterialBlocks.hpp:58
MoFEM::Mat_Interf::Mat_Interf
Mat_Interf()
Definition: MaterialBlocks.hpp:447
MoFEM::Block_BodyForces::data
_data_ data
Definition: MaterialBlocks.hpp:328
MoFEM::Types::CubitBCType
std::bitset< 32 > CubitBCType
Definition: Types.hpp:52
MoFEM::GenericAttributeData::fill_data
virtual MoFEMErrorCode fill_data(const std::vector< double > &attributes)
get data from structure
Definition: MaterialBlocks.hpp:24
MoFEM::BlockSetAttributes::operator<<
friend std::ostream & operator<<(std::ostream &os, const BlockSetAttributes &e)
Print data.
Definition: MaterialBlocks.cpp:8
MoFEM::Mat_Elastic_TransIso::__attribute__
struct __attribute__((packed)) _data_
transverse isotropic
Definition: MaterialBlocks.hpp:376
MoFEM::Mat_Moisture::__attribute__
struct __attribute__((packed)) _data_
moisture block attributes
Definition: MaterialBlocks.hpp:268
MoFEM::Mat_Thermal
Thermal material data structure.
Definition: MaterialBlocks.hpp:201
BLOCKSET
@ BLOCKSET
Definition: definitions.h:148
MoFEM::Mat_Elastic_TransIso::Mat_Elastic_TransIso
Mat_Elastic_TransIso()
Definition: MaterialBlocks.hpp:388
MOFEM_DATA_INCONSISTENCY
@ MOFEM_DATA_INCONSISTENCY
Definition: definitions.h:31
MoFEM::Block_BodyForces::Block_BodyForces
Block_BodyForces()
Definition: MaterialBlocks.hpp:334
MoFEM::Mat_Moisture::Mat_Moisture
Mat_Moisture()
Definition: MaterialBlocks.hpp:285
MoFEM::BlockSetAttributes::__attribute__
struct __attribute__((packed)) _data_
generic block attributes
Definition: MaterialBlocks.hpp:86
MoFEM::Block_BodyForces::getDataPtr
const void * getDataPtr() const
get pointer to data structure
Definition: MaterialBlocks.hpp:332
MoFEM::BlockSetAttributes::set_data
MoFEMErrorCode set_data(void *tag_ptr, unsigned int size) const
set data on structure
Definition: MaterialBlocks.hpp:119
MAT_INTERFSET
@ MAT_INTERFSET
Definition: definitions.h:160
MoFEM::BlockSetAttributes::data
_data_ data
Definition: MaterialBlocks.hpp:97
MoFEM::Mat_Interf::getSizeOfData
std::size_t getSizeOfData() const
get data structure size
Definition: MaterialBlocks.hpp:444
MoFEM::GenericAttributeData::getDataPtr
virtual const void * getDataPtr() const =0
get pointer to data structure
MoFEMFunctionBeginHot
#define MoFEMFunctionBeginHot
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:440
MoFEM::Mat_Moisture::fill_data
MoFEMErrorCode fill_data(const std::vector< double > &attributes)
get data from structure
Definition: MaterialBlocks.hpp:289
MoFEM::Mat_Elastic_TransIso::set_data
MoFEMErrorCode set_data(void *tag_ptr, unsigned int size) const
set data on structure
Definition: MaterialBlocks.hpp:410
MoFEM::Mat_Elastic_TransIso::operator<<
friend std::ostream & operator<<(std::ostream &os, const Mat_Elastic_TransIso &e)
Print Mat_Elastic_TransIso data.
Definition: MaterialBlocks.cpp:102
MoFEM::Mat_Elastic_EberleinHolzapfel1::data
_data_ data
Definition: MaterialBlocks.hpp:497
MAT_MOISTURESET
@ MAT_MOISTURESET
block name is "MAT_MOISTURE"
Definition: definitions.h:163
MoFEM::Block_BodyForces::fill_data
MoFEMErrorCode fill_data(const std::vector< double > &attributes)
get data from structure
Definition: MaterialBlocks.hpp:336
MoFEM::Mat_Thermal::getSizeOfData
std::size_t getSizeOfData() const
get data structure size
Definition: MaterialBlocks.hpp:220
MoFEM::Mat_Elastic_EberleinHolzapfel1::fill_data
MoFEMErrorCode fill_data(const std::vector< double > &attributes)
get data from structure
Definition: MaterialBlocks.hpp:507
MoFEM::Mat_Elastic::getSizeOfData
std::size_t getSizeOfData() const
get data structure size
Definition: MaterialBlocks.hpp:158
MoFEM::Mat_Elastic_EberleinHolzapfel1::operator<<
friend std::ostream & operator<<(std::ostream &os, const Mat_Elastic_EberleinHolzapfel1 &e)
Print Mat_Elastic data.
Definition: MaterialBlocks.cpp:40
MoFEM::Mat_Interf::__attribute__
struct __attribute__((packed)) _data_
inteface
Definition: MaterialBlocks.hpp:435
MoFEM::Mat_Interf::operator<<
friend std::ostream & operator<<(std::ostream &os, const Mat_Interf &e)
Print Mat_Interf data.
Definition: MaterialBlocks.cpp:116