MIDAS  0.75
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Friends Macros
attribute.h
Go to the documentation of this file.
1 #ifndef MIDAS_ATTRIBUTE_H
2 #define MIDAS_ATTRIBUTE_H
3 
4 #include "alias.h"
5 #include "substructs.h"
6 
7 #include "gelib.h"
8 #include "librw.h"
9 #include "mathlib.h"
10 
11 
18 namespace midaspace {
19 
20 // ********************************************************************************************
21 // *** *** *** *** CLASS ATTRIBUTE *** *** *** ***
22 // ********************************************************************************************
23 class Attribute : public ProblemSubject
24 {
25  protected:
26  long sifid; // sifel local id [SIFEL]
27  char *linerec; // line record of characteristics in string
28 
29  public:
31  Attribute (const Problem *pd, long gid) : ProblemSubject (gid, pd) { sifid = -1; linerec = NULL; }
33  virtual ~Attribute() { deallocateCheck(linerec, false); }
34 
36  virtual classID give_classid() const { return classAttribute; }
38  virtual bool initialize_from (const char *&str, femFileFormat ff, bool all=true) { SP_scan_line_alloc(str, linerec); return true; }
39 
42  long give_sifid (void) const { return sifid; }
43 
45  void scan_linerec (const char *str);
47  void print_linerec (FILE *stream, bool pure) const;
49  virtual void print_row (FILE *stream, femFileFormat fff, long did) const { fprintf(stream, "%s\n", linerec); }
50 };
51 
52 
53 // ********************************************************************************************
54 // *** *** *** *** CLASS LOAD TIME FUNCTION *** *** *** ***
55 // ********************************************************************************************
57 {
58  public:
60  LoadTimeFunction (const Problem *pd, long i) : Attribute (pd, i) { }
62  virtual ~LoadTimeFunction() { }
63 
65  virtual void checkConsistency (void) const
66  {
68 
69  if (this->give_ID() == 0) {
70  const char *str = linerec;
71  if ( ! SP_scan_expected_word (str, "ConstantFunction", CASE) ||
72  ! SP_scan_expected_word (str, "1" , CASE) ||
73  ! SP_scan_expected_word (str, "f(t)" , CASE) ||
74  ! SP_scan_expected_word (str, "1.0" , CASE) )
75  _errorr ("The first LTF is not constant 1 1.0");
76  }
77  }
78 
80  void initialize_first (void)
81  {
82  linerec = new char[28];
83  sprintf (linerec, "ConstantFunction 1 f(t) 1.0");
84  }
85 };
86 
87 
88 // ********************************************************************************************
89 // *** *** *** *** CLASS PROBLEMANALYSIS *** *** *** ***
90 // ********************************************************************************************
91 class ProblemAnalysis : public Attribute
92 {
93  protected:
94  PAGroup group; // group of problem == mechanics x transport
95  PAType type; // global type of problem analysis
96  PAType loctype; // local type of problem analysis
97 
98  long nsteps; // number of steps
99  long nroots; // number of eigenvalues
100  double tolerance; // tolerance
101 
102  AdaptivityParameters *adpa; // adaptivity parameters
103 
107  int compder1[3], compder2[3]; // compute 1.derivative (strain/gradients), 2.derivative (stress/flux)
108  int compoth1[3], compoth2[3]; // compute other boundary/eqother (reactions/...)
109  int gravity; // gravity in transport problem
110  int stoch, homog, renumb; // stochastic, homogenization, renumbering [SIFEL]
112  double start_time, end_time, timef; //
113 
114  StiffMatrixType stiffmattype; // type of storage of stiffness matrix
115  LinearSolverType linsoltype; // type of solver of system of linear equations
116 
117 
118  public:
120  ProblemAnalysis (const Problem *pd) : Attribute (pd, 0) {
123  nsteps = 1;
124  nroots = 1;
125  tolerance = 1.0e-6;
126  adpa = NULL;
127 
129  compder1[0] = compder2[0] = compoth1[0] = compoth2[0] = 0;
130  stoch = homog = renumb = 0;
133  }
135  virtual ~ProblemAnalysis() { delete adpa; }
136 
138  virtual classID give_classid() const { return classProblemAnalysis; }
140  virtual bool initialize_from (const char *&str, femFileFormat ff, bool all=true);
141  ; bool initialize_from (FILE *stream, femFileFormat fff);
143  //virtual void initialize (void);
144 
145  // // *** GET ***
146  PAGroup give_group (void) const { return group; }
147  PAType give_type (void) const { return type; }
148  PAType give_loctype(void) const { return ( (type == PAT_OOFEM) ? loctype : type); }
149  long give_nsteps (void) const { return nsteps; }
150 
151  // *** SET ***
152  // void set_type3d (void) { type = CST_3d; }
153  // void set_lcs (LCSdirection dir, LCStype typ, long num) { if (lcs) _errorr("e"); lcs = new LocalCoordSystem(dir, typ, num); }
154 
155  // docasne
157 
159  void print_row_OOFEM (FILE *stream) const;
161  void print_block_SIFEL (FILE *stream) const;
162 };
163 
164 
165 // ********************************************************************************************
166 // *** *** *** *** CLASS CROSSSECTION *** *** *** ***
167 // ********************************************************************************************
168 class CrossSection : public Attribute
169 {
170  protected:
171  // type == CST_OOFEM && loctype == CST_LayeredCS - u OOFEMrec zjistim, ze to je typu CST_LayeredCS; pokud rozparsuju cely record, tak se type zmeni na prislusny CST_2d nebo CST_Beam ...
172  // type == CST_Truss | CST_2d | CST_3d ...
173  // type == CST_Beam && loctype == CST_Rectangle ...
174  CrossSectType type; // global type of cross section
175  CrossSectType loctype; // local type of cross section
176 
177  // rozmery
178  double width, height; // dimension in direction of axis y and z
179  double thickness; // thickness
180  bool tube; //
181  //
182  double bsc; // beam shear coefficient
183  bool cable; //
184 
185  // spocitatelne veliciny
186  double area; // area
187  double Iy, Iz, Ik; //
188 
189  // zadani
190  LCS_beam *lcs; // reference node, for [Li]BeamXd elements for OOFEM
191 
192  // layers
193  int nlayers; //
195 
196 
197  public:
199  CrossSection (const Problem *pd, long i) : Attribute (pd, i) {
200  type = loctype = CST_Void;
201  width = height = thickness = area = Iy = Iz = Ik = bsc = -1.0;
202  tube = cable = false; lcs = NULL; nlayers = 0;
203  }
205  virtual ~CrossSection() { delete lcs; }
206 
208  virtual classID give_classid() const { return classCrossSection; }
210  virtual bool initialize_from (const char *&str, femFileFormat ff, bool all=true);
212  virtual void initialize (void);
213 
214  // *** GET ***
215  CrossSectType give_type (void) const { return type; }
216  //CrossSectType give_loctype (void) const { return loctype; }
217  CrossSectType give_loctype_or_type (void) const { return ( loctype ? loctype : type ); }
218  const LCS_beam* give_lcs (void) const { return lcs; }
219  double give_area (void) const { return area; }
220  double give_width (void) const { return width; }
221  double give_height (void) const { return height; }
222  double give_thickness (void) const { return thickness; }
223  double give_Iy (void) const { return Iy; }
224  double give_Iz (void) const { return Iz; }
225  int give_nlayers (void) const { return nlayers; }
226  const Material* give_mat (int i) const { return mats[i]; }
227 
228  // *** SET ***
229  void set_type3d (void) { type = CST_3d; }
230  void set_lcs (LCSdirection dir, LCStype typ, long num) { if (lcs) _errorr("e"); lcs = new LCS_beam(dir, typ, num); }
231 
233  void add_areaYyYz (double w, double h);
234 
236  virtual void print_row (FILE *stream, femFileFormat fff, long did) const;
237 };
238 
239 
240 // ********************************************************************************************
241 // *** *** *** *** CLASS MATERIAL *** *** *** ***
242 // ********************************************************************************************
243 class Material : public Attribute
244 {
245  protected:
246  MaterialType type; // global type of material
247  MaterialType loctype; // local type of material
248  double density; // density
249  double E; // Young's modulus
250  double ny; // Poisson's ratio
251  double tAlpha; //
252  double Ry; // plasticity
253  double IHM; // isotropicHardening
254  double Capac; // capacity
255  double Conduct; // conductivity
256 
257  public:
259  Material (const Problem *pd, long i) : Attribute (pd, i) {
260  type = loctype = MAT_Void;
261  density = E = ny = tAlpha = Ry = IHM = 0.0;
262  }
264  virtual ~Material() { }
265 
267  virtual classID give_classid() const { return classMaterial; }
269  virtual bool initialize_from (const char *&str, femFileFormat ff, bool all=true);
271  virtual void initialize (void) {
273  if (type == MAT_RIGID && !Pd->give_PDBO(PDBO_RIGIDmatToRAN)) _errorr("Don't you want to use -P_RigidBodyToRigidArm parameter? I am sure you do!"); // musis naimplementovat rigidni material == s velikym E
274  }
275 
276  // *** GET ***
277  MaterialType give_type (void) const { return type; }
278  MaterialType give_loctype (void) const { return ( (type == MAT_OOFEM || type == MAT_SIFEL) ? loctype : type); }
279  double give_Ry (void) const { return Ry; }
281  bool isOOFEMplast (void) const { return (loctype == MAT_j2mat); }
282 
284  virtual void print_row (FILE *stream, femFileFormat fff, long did) const;
285 };
286 
287 
288 // ********************************************************************************************
289 // *** *** *** *** CLASS BoundaryCondition *** *** *** ***
290 // ********************************************************************************************
291 class BoundaryCond : public Attribute
292 {
293  protected:
294  BCType type; // global type of boundary condition
295  BCType loctype; // local type of boundary condition
296  int ncomp; // number of components
297  double *components; // main values
298  long ltf; // load time function [OOFEM]
299  bool constant; // constant over the whole element
300  DOFsPerNode dpn; // dofs per node
301  const BoundaryCond* bcbr; // same bc with different dpn; different DOFs are zero
302 
303  public:
305  BoundaryCond (const Problem *pd, long i) : Attribute (pd, i) {
306  type = loctype = BC_Void;
307  ncomp = 0; components = NULL; // new double[n];
308  ltf=1;
309  constant = true;
310  dpn = DPN_Void;
311  bcbr = NULL;
312  }
314  virtual ~BoundaryCond() { delete [] components; }
316  bool is_identical_with (BoundaryCond *val) const {
317  if (type != val->type ||
318  loctype != val->loctype ||
319  ncomp != val->ncomp ||
320  ltf != val->ltf ||
321  constant != val->constant ||
322  dpn != val->dpn ) return false;
323 
324  for (int i=0; i<ncomp; i++)
325  if (! isZero (1.0e-5*components[i], components[i] - val->components[i]))
326  return false;
327 
328  return true;
329  }
330  void copy_bcbr (const BoundaryCond* bc, DOFsPerNode dpn_old, DOFsPerNode dpn_new)
331  {
332  ((BoundaryCond*)bc)->set_bcbr(this);
333  this->set_bcbr(bc);
334 
335  type = bc->type;
336  loctype = bc->loctype;
337  ltf = bc->ltf;
338  constant = bc->constant;
339 
340  if (dpn_old != DPN_DxyzRxyz || dpn_new != DPN_DxyzR___) errol;
341 
342  dpn = dpn_new;
343  ncomp = 3;
344  components = new double[3];
345  components[0] = bc->components[0];
346  components[1] = bc->components[1];
347  components[2] = bc->components[2];
348 
349  if (bc->components[3] != 0.0 || bc->components[4] != 0.0 || bc->components[5] != 0.0) errol;
350  }
351 
353  virtual classID give_classid() const { return classBoundaryCond; }
355  virtual bool initialize_from (const char *&str, femFileFormat ff, bool all=true);
357  //virtual void finitialize (void);
359  virtual void checkConsistency (void) const;
360 
362  void initialize_BC_NL_SIFEL(FILE *stream);
363 
364  // *** SET ***
365  void setadd_loctype_sifif (BCType loct, int locid);
366  void set_bcbr (const BoundaryCond* bc) { bcbr = bc; }
367  // *** GET ***
368  BCType give_type (void) const { return type; }
369  BCType give_loctype (void) const { return ( (type == BC_OOFEM || type == BC_SIFEL) ? loctype : type); }
370  int give_ncomp (void) const { return ncomp; }
371  double give_component(int i) const { return components[i]; }
372  DOFsPerNode give_dpn (void) const { return ( dpn ? dpn : Pd->give_DOFspnod() ); }
373  const BoundaryCond* give_bcbr(void) const { return bcbr; }
374  void check_dpn (const DOFsPerNode eldpn) const {
375  if (this->give_dpn() == DPN_DxyzRxyz && eldpn == DPN_DxyzR___ && (components[3]+components[4]+components[5]) == 0.0 )
376  ;
377  else errol;
378  }
379 
381  void initialize_the_first_BC (void);
382 
384  bool is_the_first_BC (void);
386  bool scan_components (FILE *stream, int ncmp) { ncomp = ncmp; return FP_scan_array (stream, ncomp, components); }
387 
389  virtual void print_row (FILE *stream, femFileFormat fff, long did) const;
390  void print_components_oo (FILE *stream) const;
391  void print_components (FILE *stream) const;
392 };
393 
394 
395 
396 // ********************************************************************************************
397 // *** *** *** *** CLASS Assign *** *** *** ***
398 // ********************************************************************************************
399 enum ASGType {
400  ASG_non , // none
401  ASG_prop , // property of component (element or node)
402  ASG_id , // id of component (element or node)
403  ASG_coord , // node coord
404  ASG_faceprop // property of surface (of element)
405 };
406 // ********************************************************************************************
407 // *** *** *** *** CLASS Assign *** *** *** ***
408 // ********************************************************************************************
409 class Assign : public GeometrySubject
410 {
411  public:
413  Assign (const Problem *pd, long gid) : GeometrySubject (gid, pd) { }
415  virtual ~Assign() { }
416 
418  virtual void initialize (void);
419 };
420 
421 // ********************************************************************************************
422 // *** *** *** *** CLASS AssignFix *** *** *** ***
423 // ********************************************************************************************
425 class AssignFix : public Assign
426 {
427  protected:
428  long elemid; // element id
429  ASGType type; // type of assignment
430  bool node; // type of fixed entity, true == node, false == element
431  //
432  long ncn; // count of control numbers
433  long *icn; // control numbers integer
434 
435  public:
437  AssignFix (const Problem *pd, long gid) : Assign (pd, gid) {
438  elemid = 0; type = ASG_non;
439  ncn = 0; icn = NULL;
440  }
442  virtual ~AssignFix() { delete [] icn; }
443 
445  virtual bool initialize_from (const char *&str, femFileFormat ff, bool all=true);
447  virtual void initialize (void);
448 
450  //virtual void print_row (FILE *stream, femFileFormat fff, long did) const { _errorr ("empty"); }
451 };
452 
453 
454 // ********************************************************************************************
455 // *** *** *** *** CLASS AssignBC *** *** *** ***
456 // ********************************************************************************************
457 class AssignBC : public Assign
458 {
459  // long id // id of BC, which should be assigned
460  protected:
461  const BoundaryCond *bc; // pointer to boundary condition
462  ASGType type; // type of assignment
463  //
464  long ncn; // count of control numbers
465  long *icn; // control numbers integer
466  double *fcn; // control numbers float
467 
468  public:
470  AssignBC (const Problem *pd, long gid) : Assign (pd, gid) {
471  bc = NULL; type = ASG_non;
472  ncn = 0; icn = NULL; fcn = NULL;
473  }
475  virtual ~AssignBC() { delete [] icn; delete [] fcn; }
476 
478  virtual bool initialize_from (const char *&str, femFileFormat ff, bool all=true);
480  virtual void initialize (void);
481 
483  virtual void print_row (FILE *stream, femFileFormat fff, long did) const { _errorr ("empty"); }
484 };
485 
486 
487 // ***************************
488 // *** CLASS ABC_NLOAD *** // *** NL - Nodal Loads ***
489 // ***************************
490 class ABC_NLoad : public AssignBC
491 {
492  public:
494  ABC_NLoad (const Problem *pd, long gid) : AssignBC (pd, gid) { }
496  virtual ~ABC_NLoad() { }
498  virtual classID give_classid() const { return classABC_NLoad; }
499 
501  virtual void initialize (void);
502 };
503 
504 // ****************************
505 // *** CLASS ABC_CELOAD *** // *** CEL - Constant Edge Loads ***
506 // ****************************
507 class ABC_CELoad : public AssignBC
508 {
509  public:
511  ABC_CELoad (const Problem *pd, long gid) : AssignBC (pd, gid) { }
513  virtual ~ABC_CELoad() { }
515  virtual classID give_classid() const { return classABC_CELoad; }
516 
518  virtual void initialize (void);
519 };
520 
521 // ****************************
522 // *** CLASS ABC_CFLOAD *** // *** CSL - Constant Face Loads ***
523 // ****************************
524 class ABC_CFLoad : public AssignBC
525 {
526  public:
528  ABC_CFLoad (const Problem *pd, long gid) : AssignBC (pd, gid) { }
530  virtual ~ABC_CFLoad() { }
532  virtual classID give_classid() const { return classABC_CFLoad; }
533 
535  virtual void initialize (void);
536 };
537 
538 // ****************************
539 // *** CLASS ABC_CBLOAD *** // *** CBL - Constant Body Loads ***
540 // ****************************
541 class ABC_CBLoad : public AssignBC
542 {
543  public:
545  ABC_CBLoad (const Problem *pd, long gid) : AssignBC (pd, gid) { }
547  virtual ~ABC_CBLoad() { }
549  virtual classID give_classid() const { return classABC_CBLoad; }
550 
552  virtual void initialize (void);
553 };
554 
555 
556 
557 
558 // ********************************************************************************************
559 // *** *** *** *** CLASS ATTRIBUTES *** *** *** ***
560 // ********************************************************************************************
562 {
563  protected:
564  long prop; // property / identification number
565 
567  GPA<const BoundaryCond> loads; // pointers to loads = boundary conditions [nLoads ; 1]; see help.txt
568  // load je kumulativni, je pouze na attributech s ownerem
569 
570 
571  public:
573  Attributes (const GeometryComponent *owner, long p) : GeomCompSubject (-1, owner) { prop = p; }
575  Attributes (const GeometryComponent *owner, const Attributes *src) : GeomCompSubject (-1, owner) {
576  prop = src->prop;
577  loads.be_copy_of(&src->loads);
578  }
580  virtual ~Attributes() { }
581 
583  virtual bool initialize_from (const char *&str, femFileFormat ff, bool all=true) = 0;
585  virtual void print_row (FILE *stream, femFileFormat fff, long did) const = 0;
586 
587  // *** SET ***
588  void set_prop (long val) { prop = val; }
589  void add_load (const BoundaryCond *val) { if (!GC) errol; loads.add(val); }
590  void add_load (int i);
591 
592  // *** GET ***
593  long give_prop (void) const { return prop; }
594  const GPA<const BoundaryCond>* give_loads (void) const { return &loads; }
595  const BoundaryCond * give_load (int i) const { return loads[i]; }
596  long give_cloads (void) const { return loads(); }
598  bool is_loaded (void) const { return loads(); }
599 
600 };
601 
602 
603 // ********************************************************************************************
604 // *** *** *** *** CLASS CellAttribs *** *** *** ***
605 // ********************************************************************************************
606 class CellAttribs : public Attributes
607 {
608  public:
610  CellAttribs (const Cell *owner, long p) : Attributes ((const GeometryComponent *)owner, p) { }
612  CellAttribs (const Cell *owner, const CellAttribs *src) : Attributes ((const GeometryComponent *)owner, src) { }
614  virtual ~CellAttribs() { }
615 };
616 
617 
618 // ********************************************************************************************
619 // *** *** *** *** CLASS FacedgeAttribs *** *** *** ***
620 // ********************************************************************************************
622 {
623  protected:
626  double elemSize;
627  long elemCount;
628 
629  public:
631  FacedgeAttribs (const Facedge *owner, long p) : CellAttribs ((const Cell *)owner, p) { elemSize = 0.0; elemCount = 0; }
633  FacedgeAttribs (const Facedge *owner, const FacedgeAttribs *src) : CellAttribs ((const Cell *)owner, src) { elemSize = src->elemSize; elemCount = src->elemCount; }
635  virtual ~FacedgeAttribs() { }
636 
638  virtual bool initialize_from (const char *&str, femFileFormat ff, bool all=true) { errol; return false; }
640  virtual void print_row (FILE *stream, femFileFormat fff, long did) const { errol; }
641 
642  // *** SET ***
643  void set_elemSize (double val) { elemSize = val; }
644  void set_elemCount (long val) { elemCount = val; }
645 
646  //
647  void set_new (const FacedgeAttribs *src);
648 
649  // *** GET ***
650 
652  double give_elemSize_loc (void) const { return elemSize; }
653  long give_elemCount_loc (void) const { return elemCount; }
654 
656  double give_elemSize (void) const;
657  double give_elemCount (void) const;
658 
659 };
660 
661 // ********************************************************************************************
662 // *** *** *** *** CLASS EdgeAttribs *** *** *** ***
663 // ********************************************************************************************
665 {
666  public:
668  EdgeAttribs (const Edge *owner, long p) : FacedgeAttribs ((const Facedge *)owner, p) { }
670  EdgeAttribs (const Edge *owner, const EdgeAttribs *src) : FacedgeAttribs ((const Facedge *)owner, src) { }
672  virtual ~EdgeAttribs() { }
673 
675  virtual void checkConsistency (void) const;
676 
678  const Edge* owner() const { return (Edge*)GC; } // owner Edge
679 };
680 
681 // ********************************************************************************************
682 // *** *** *** *** CLASS FaceAttribs *** *** *** ***
683 // ********************************************************************************************
685 {
686  public:
688  FaceAttribs (const Face *owner, long p) : FacedgeAttribs ((const Facedge *)owner, p) { }
690  FaceAttribs (const Face *owner, const FaceAttribs *src) : FacedgeAttribs ((const Facedge *)owner, src) { }
692  virtual ~FaceAttribs() { }
693 
695  virtual void checkConsistency (void) const;
696 
698  const Face* owner() const { return (Face*)GC; } // owner Face
699 };
700 
701 
703 // ********************************************************************************************
704 // *** *** *** *** CLASS ELEMENTATTRIBS *** *** *** ***
705 // ********************************************************************************************
707 class ElemAttribs : public CellAttribs
708 {
709  // Tato trida je postavena tak, ze muze byt ve dvou modech.
710  // a) owner == null => genatt == NULL - toto je OBECNY elematt, neni vyhradne prirazen zadnemu elementu
711  // b) owner != null -- - toto je OSOBNI elematt nejakeho elementu (ownera)
712  // -- genatt == NULL - k property ownera neni prirazen obecny elematt
713  // -- genatt != NULL - k property ownera je prirazen obecny elematt
714  protected:
717 
719  const Element* owner() const { return (Element*)GC; } // owner Element
720  const ElemAttribs *Patt; // superior element attributes according to property of owner
721  const ElemAttribs *Gatt; // superior element attributes according to geometry of owner
722  //const ElemAttribs *Satt; // superior element attributes according to subdomain of owner
723  const ElemAttribs *Datt; // superior element attributes according to domain of owner
724 
726  // CellGeometry cg = owner->give_cellGeom()
727  DOFsPerNode dpn; // dofs per node
728  SStype sst; // special type of stress/strain state of element
729  FEApproximation approx; // approximation
730  static const int ord = -4; // degree of polynomial aproximation on Element zatim jen nepouzivat, je to tady je abych nezapomel nektere veci az to implementovat budu
731  FiniteElementType expltype; // explicit type of FE
732 
734  IntPointSet IPset; // set of integration points
735  bool *HNmstr; // HN master : NULL nonactivated, false/true
736  bool *nlgeo; // nonlinear geometry: NULL nonactivated, false/true
737 
740  const CrossSection *cs; // pointer to cross section
741  const Material *mat; // pointer to material
742  //
743  // Ted je to debilne. Index edge/face je dany pozici v druhe dimenzi, kde je ale pouze jeden ukazatel nenulovy,
744  // idyz dany prvek bude mit vice hran/faces zatizenych stejnym CEL/CSL. Je to dany jednodussim allokovanim add_Ebc
745  // Ale ted koukam, ze v sifel.in to tak neni...
746  //GPA<GPA<const BoundaryCond> > Ebc; // pointers to edge boundary conditions [nEbc ; ned ; 1]
747  //GPA<GPA<const BoundaryCond> > Fbc; // pointers to face boundary conditions [nFbc ; nfa ; 1]
748  //GPA< const BoundaryCond> Bbc; // pointers to body boundary conditions [nBbc ; 1]
749 
751  LCS_beam *lcs; // local coordinate system, for [Li]BeamXd elements for OOFEM
752  Dvctr *MatStiffMtrx; // Explicit Material Stiffness Matrix
753  GPA<PointDOFsCondense> *conDOFs; // length of gpa is number of nodes; conDOFs[0]==NULL - first node has no condensed dof; more details see help.txt
754 
755 
756  public:
758  ElemAttribs (const Element *ow, long p, ElAttLevel eal);
760  ElemAttribs (const Element *ow, const ElemAttribs* src, char samegeom);
762  virtual ~ElemAttribs();
763 
765  virtual classID give_classid() const = 0;
767  virtual bool initialize_from (const char *&str, femFileFormat ff, bool all=true);
769  virtual void initialize (void);
771  virtual void finitialize (void);
773  virtual void checkConsistency (void) const;
774 
776  void integrate_duplicated_one (const ElemAttribs *slv);
777 
779  void EALdirectCheck (void) const { if (EAL != EAL_direct) _errorr("this attribute container has no owner"); }
780 
781  // *** SET ***
782  void set_Patt (void);
783  void set_FETS (const FiniteElementTypeSet *val);
784  void set_dpn (DOFsPerNode val) { dpn = val; }
785  void set_sst (SStype val) { sst = val; }
786  void set_approx (FEApproximation val) { approx = val; }
787 
788  //
790  void set_cs (int i) { cs = (i==-1) ? NULL : Pd->give_CS (i); if (i != -1 && cs == NULL) _errorr2("There is no cross-section with ID = %d",i+1); }
791  void set_cs_of_type (CrossSectType type, int id) { cs = Pd->give_CS_of_type (type, id); }
792  void set_mat (int i) { mat = Pd->give_Mat(i); if (mat==NULL) _errorr2("There is no material with ID = %d",i+1); }
793  void set_load (int i, char flag='\0', int indx=-1);
794  void set_load (const BoundaryCond* bc, char flag='\0', int indx=-1);
795  void set_HNmstr (bool val){ if (!HNmstr) HNmstr = new bool; *HNmstr = val; }
796  void set_nlgeo (bool val) { if (!nlgeo) nlgeo = new bool; *nlgeo = val; }
797  void set_MatStiffMtrx(int n, double *src);
798  void set_mat_of_type (MaterialType type, int id) { mat = Pd->give_Mat_of_type (type, id); }
800  //void add_Ebc (int indx, const BoundaryCond *val);
801  //void add_Fbc (int indx, const BoundaryCond *val);
802  //void add_Ebc (GPA<const BoundaryCond> *val) { Ebc.add(val); }
803  //void add_Fbc (GPA<const BoundaryCond> *val) { Fbc.add(val); }
804  //void add_Bbc ( const BoundaryCond *val) { Bbc.add(val); }
806  void set_lcs (LCSdirection dir, LCStype typ, long num) { if (lcs) errol; lcs = new LCS_beam(dir, typ, num); }
807  void set_lcs (LCSdirection dir, LCStype typ, const double *auxDv) { if (lcs) errol; lcs = new LCS_beam(dir, typ, auxDv); }
808 
809 
810  // *** GET ***
811 
813  DOFsPerNode give_dpn_default (void) const;
814  SStype give_sst_default (void) const;
815 
817  DOFsPerNode give_dpn_loc (void) const { return dpn; }
818  SStype give_sst_loc (void) const { return sst; }
819  FEApproximation give_approx_loc (void) const { return approx; }
821  int give_ord (void) const { return ord; }
822  //
823  IntPointSet give_IPset_loc (void) const { return IPset; }
824  bool* give_HNmstr_loc (void) const { return HNmstr; }
825  //
826  const CrossSection* give_cs_loc (void) const { return cs; }
827  const Material* give_mat_loc (void) const { return mat; }
828  //
829  const LCS_beam* give_lcs_loc (void) const { return lcs; }
830  const GPA<PointDOFsCondense>* give_conDOFs (void) const { return conDOFs; }
831  const PointDOFsCondense * give_conDOFs (const Point* p) const;
832  //const DOFatt* give_conDOFs_loc (void) const { return conDOFs;}
833 
837  DOFsPerNode give_dpn (void) const { EALdirectCheck(); return ( this->give_dpn_loc() ? this->give_dpn_loc() : ((Patt && Patt->give_dpn_loc() ) ? Patt->give_dpn_loc() : ((Gatt && Gatt->give_dpn_loc() ) ? Gatt->give_dpn_loc() : (Datt->give_dpn_loc() ? Datt->give_dpn_loc() : this->give_dpn_default())))); }
838  SStype give_sst (void) const { EALdirectCheck(); return ( this->give_sst_loc() ? this->give_sst_loc() : ((Patt && Patt->give_sst_loc() ) ? Patt->give_sst_loc() : ((Gatt && Gatt->give_sst_loc() ) ? Gatt->give_sst_loc() : (Datt->give_sst_loc() ? Datt->give_sst_loc() : this->give_sst_default())))); }
841  //
843  bool give_HNmstr (void) const { EALdirectCheck(); return ( this->give_HNmstr_loc() ?*this->give_HNmstr_loc() : ((Patt && Patt->give_HNmstr_loc()) ?*Patt->give_HNmstr_loc() : ((Gatt && Gatt->give_HNmstr_loc()) ?*Gatt->give_HNmstr_loc() : (Datt->give_HNmstr_loc() ?*Datt->give_HNmstr_loc() : false )))); }
844  //
845  const CrossSection* give_cs (void) const { EALdirectCheck(); return ( this->give_cs_loc() ? this->give_cs_loc() : ((Patt && Patt->give_cs_loc() ) ? Patt->give_cs_loc() : ((Gatt && Gatt->give_cs_loc() ) ? Gatt->give_cs_loc() : (Datt->give_cs_loc() ? Datt->give_cs_loc() : NULL )))); }
846  const Material* give_mat (void) const { EALdirectCheck(); return ( this->give_mat_loc() ? this->give_mat_loc() : ((Patt && Patt->give_mat_loc() ) ? Patt->give_mat_loc() : ((Gatt && Gatt->give_mat_loc() ) ? Gatt->give_mat_loc() : (Datt->give_mat_loc() ? Datt->give_mat_loc() : NULL )))); }
847  //
848  const LCS_beam* give_lcs (void) const { EALdirectCheck(); return ( this->give_lcs_loc() ? this->give_lcs_loc() : ((Patt && Patt->give_lcs_loc() ) ? Patt->give_lcs_loc() : ((Gatt && Gatt->give_lcs_loc() ) ? Gatt->give_lcs_loc() : (Datt->give_lcs_loc() ? Datt->give_lcs_loc() : NULL )))); }
849  //
850  const LCS_beam* give_lcs_global (void) const { return this->give_lcs() ? this->give_lcs() : (this->give_cs() ? this->give_cs()->give_lcs() : NULL); }
851 
853  //int give_cBbc_loc (void) const { return Bbc(); }
854  //int give_cFbc_loc (void) const { return Fbc.give_num_nonNULL_ptrs2 (); }
855  //int give_cEbc_loc (void) const { return Ebc.give_num_nonNULL_ptrs2 (); }
856  //int give_cBbc (void) const { return this->give_Bbc() ? (*this->give_Bbc())() : 0; }
857  //int give_cFbc (void) const { return this->give_Fbc() ? (*this->give_Fbc())() : 0; }
858  //int give_cEbc (void) const { return this->give_Ebc() ? (*this->give_Ebc())() : 0; }
859  //int give_cBbc_sum (void) const { return Bbc() + (Patt ? Patt->give_cBbc_loc() : 0) + (Gatt ? Gatt->give_cBbc_loc() : 0) + Datt->give_cBbc_loc(); }
860  //int give_cFbc_sum (void) const { return Fbc() + (Patt ? Patt->give_cFbc_loc() : 0) + (Gatt ? Gatt->give_cFbc_loc() : 0) + Datt->give_cFbc_loc(); }
861  //int give_cEbc_sum (void) const { return Ebc() + (Patt ? Patt->give_cEbc_loc() : 0) + (Gatt ? Gatt->give_cEbc_loc() : 0) + Datt->give_cEbc_loc(); }
862 
863  //const GPA< const BoundaryCond >* give_Bbc_loc (void) const { return Bbc() ? &Bbc : NULL; }
864  //const GPA<GPA<const BoundaryCond> >* give_Fbc_loc (void) const { return Fbc() ? &Fbc : NULL; }
865  //const GPA<GPA<const BoundaryCond> >* give_Ebc_loc (void) const { return Ebc() ? &Ebc : NULL; }
866 
867  //const GPA< const BoundaryCond >* give_Bbc (void) const { return Bbc() ? &Bbc : (Patt && Patt->give_cBbc_loc() ? Patt->give_Bbc_loc() : (Gatt && Gatt->give_cBbc_loc() ? Gatt->give_Bbc_loc() : Datt->give_Bbc_loc() )); }
868  //const GPA<GPA<const BoundaryCond> >* give_Fbc (void) const { return Fbc() ? &Fbc : (Patt && Patt->give_cFbc_loc() ? Patt->give_Fbc_loc() : (Gatt && Gatt->give_cFbc_loc() ? Gatt->give_Fbc_loc() : Datt->give_Fbc_loc() )); }
869  //const GPA<GPA<const BoundaryCond> >* give_Ebc (void) const { return Ebc() ? &Ebc : (Patt && Patt->give_cEbc_loc() ? Patt->give_Ebc_loc() : (Gatt && Gatt->give_cEbc_loc() ? Gatt->give_Ebc_loc() : Datt->give_Ebc_loc() )); }
870 
871  //const ElemAttribs* give_Bbc_prnt (void) const { return Bbc() ? this : (Patt && Patt->give_cBbc_loc() ? Patt : (Gatt && Gatt->give_cBbc_loc() ? Gatt : Datt )); }
872  //const ElemAttribs* give_Fbc_prnt (void) const { return Fbc() ? this : (Patt && Patt->give_cFbc_loc() ? Patt : (Gatt && Gatt->give_cFbc_loc() ? Gatt : Datt )); }
873  //const ElemAttribs* give_Ebc_prnt (void) const { return Ebc() ? this : (Patt && Patt->give_cEbc_loc() ? Patt : (Gatt && Gatt->give_cEbc_loc() ? Gatt : Datt )); }
874 
875  //const BoundaryCond** give_Bbc (void) const { return ( Bbc ? Bbc : ((Patt && Patt-> give_Bbc_loc() ) ? Patt-> give_Bbc_loc() : ((Gatt && Gatt-> give_Bbc_loc() ) ? Gatt-> give_Bbc_loc() : Datt-> give_Bbc_loc() ))); }
876  //const BoundaryCond** give_Fbc (void) const { return ( Fbc ? Fbc : ((Patt && Patt-> give_Fbc_loc() ) ? Patt-> give_Fbc_loc() : ((Gatt && Gatt-> give_Fbc_loc() ) ? Gatt-> give_Fbc_loc() : Datt-> give_Fbc_loc() ))); }
877  //bool give_nlgeo (void) const { return ( nlgeo ? *nlgeo : (genatt ? genatt->give_nlgeo() : false)); }
878  //const DOFatt* give_conDOFs (void) const { return ( conDOFs ? conDOFs: ((Patt && Patt->give_conDOFs_loc()) ? Patt->give_conDOFs_loc(): ((Gatt && Gatt->give_conDOFs_loc()) ? Gatt->give_conDOFs_loc(): Datt->give_conDOFs_loc()))); }
879  //bool has_lcs(void) { return lcs || ( (cs && cs->give_lcs()) ? true : false ); }
880  //bool is_loaded (void) const { return ( this->give_Bbc() || this->give_Fbc() || this->give_Ebc() ); }
881 
883  void set_fullhinge_at (int point);
885  bool has_fullhinge_ends (void) const;
887  void switch_dpn_Line (void);
888 
890  long give_mat_ID (void) { const Material* m = this->give_mat(); return m ? m->give_ID() : -1; }
891 
892  // *** PRINT ***
894  void print_Bbc_SIFEL (FILE *stream) const;
895  void print_Fbc_SIFEL (FILE *stream) const;
896  void print_Ebc_SIFEL (FILE *stream) const;
897 };
898 
899 // ********************************************************************************************
900 // *** *** *** *** CLASS FELEMENTATTRIBS *** *** *** ***
901 // ********************************************************************************************
902 class FElemAttribs : public ElemAttribs
903 {
904  private:
906  const FElement* f_owner() const { return (FElement*)GC; } // owner FElement
907 
908  public:
910  FElemAttribs (const Element *ow, long p, ElAttLevel eal, const Problem *pd=NULL);
912  FElemAttribs (const Element *ow, const FElemAttribs *src, char samegeom);
913  FElemAttribs (const Element *ow, const GelemAttribs *src, char samegeom);
915  virtual ~FElemAttribs();
916 
918  virtual classID give_classid() const { return classFEelemAttribs; }
919 
921  virtual void initialize (void);
922 
923  protected:
924 
926  virtual void print_row (FILE *stream, femFileFormat fff, long did) const;
927 };
928 
929 // ********************************************************************************************
930 // *** *** *** *** CLASS GELEMENTATTRIBS *** *** *** ***
931 // ********************************************************************************************
932 class GelemAttribs : public ElemAttribs
933 {
934  private:
936  PointDOFsBCPM *dofbc; // DOF boundary conditions - contain ndofs, BC array, DofIDMask array
937  bool virt; // if yes, owner is virtual geometry element only, it will not be meshed; only for assign of dofbc to edge
938 
939  public:
941  GelemAttribs (const Element *ow, long p, ElAttLevel eal) : ElemAttribs (ow, p, eal) { dofbc = NULL; virt = false; }
943  GelemAttribs (const Element *ow, const GelemAttribs *src, ElAttLevel eal) : ElemAttribs (ow, src, eal) {
944  dofbc = NULL;
945  if (src->dofbc) errol;
946  if (src->lcs) errol;
947  }
949  virtual ~GelemAttribs() { delete dofbc; delete lcs; }
950 
952  virtual classID give_classid() const { return classGelemAttribs; }
954  virtual void checkConsistency (void) const;
955 
956  //* *** SET ***
957  void set_dofbc_with_ID (int i) {
958  dofbc = Pd->give_PV(i);
959  if (dofbc == NULL) _errorr2("There is no PV with ID = %d", i+1);
960  if (!GC) errol; // docasne
961  dofbc = new PointDOFsBCPM((const PointDOFsBCPM*)dofbc, GC);
962  }
963  void set_nDOFs_BC (int nd, int *bc);
964  void set_nDOFs_BC (int nd, long *bc);
965  //void set_nDOFs_BC (const PointDOFsBCPM *src);
966  void set_virtual (bool val) { virt = val; }
967  // *** GET ***
968  const PointDOFsBCPM* give_dofbc (void) const { return dofbc; }
969  bool give_virtual (void) const { return virt; }
970 
972  bool is_supported (void) const {
973  const PointDOFsBCPM * dbc = this->give_dofbc();
974  return dbc ? dbc->is_supported() : false;
975  }
976 
978  virtual void print_row (FILE *stream, femFileFormat fff, long did) const { errol; }
979 };
980 
981 
982 
983 // ********************************************************************************************
984 // *** *** *** *** CLASS POINTATTRIBS *** *** *** ***
985 // ********************************************************************************************
986 class PointAttribs : public Attributes
987 {
988  // Tato trida je postavena tak, ze muze byt ve dvou modech.
989  // a) owner == null => genatt == NULL - toto je OBECNY pointatt, neni vyhradne prirazen zadnemu uzlu
990  // b) owner != null -- - toto je OSOBNI pointatt nejakeho uzlu (ownera)
991  // -- genatt == NULL - k property ownera neni prirazen obecny pointatt
992  // -- genatt != NULL - k property ownera je prirazen obecny pointatt
993  protected:
995  const Point* owner() const { return (Point*)GC; } // owner Point
996  const PointAttribs *genatt; // superior point attributes according to property of owner
997 
999  int hinge; // hinge for all connected elements; see help.txt
1000 
1002  PointDOFsBCPM *dofbc; // prescribed values = DOF boundary conditions - contain ndofs, BC array, DofIDMask array
1003 
1005  const CrossSection *cs; // pointer to cross section
1006 
1009 
1010  public:
1012  PointAttribs (const Point *ow, long p, const Problem *pd=NULL, const PointAttribs *gena=NULL);
1014  PointAttribs (const Point *ow, const Attributes *src);
1016  virtual ~PointAttribs();
1017 
1019  virtual classID give_classid() const { return classPointAttribs; }
1021  virtual bool initialize_from (const char *&str, femFileFormat ff, bool all=true);
1023  virtual void initialize (void);
1025  virtual void finitialize (void);
1027  virtual void checkConsistency (void) const;
1028 
1030  //void EALdirectCheck (void) const { if (EAL != EAL_direct) _errorr("this attribute container has no owner"); }
1031 
1032  // *** SET ***
1033  void set_dofbc_with_ID (int i) {
1034  dofbc = Pd->give_PV(i);
1035  if (dofbc == NULL) _errorr2("There is no PV with ID = %d", i+1);
1036  if (!GC) errol; // docasne
1037  dofbc = new PointDOFsBCPM((const PointDOFsBCPM*)dofbc, GC);
1038  }
1039  void set_nDOFs_BC (int nd, int *bc);
1040  void set_nDOFs_BC (int nd, long *bc);
1041  void set_nDOFs_BC (const PointDOFsBCPM *src);
1042  void set_hinge (int val) { hinge = val; }
1043  void set_cs_of_type (CrossSectType type, int id) { cs = Pd->give_CS_of_type (type, id); }
1044  void set_dofbc (const char *str, femFileFormat ff=FFF_Void) {
1045  if (ff == FFF_SIFEL) {
1046  dofbc->rescan_att(str);
1048  }
1049  }
1050  void set_dofbc_copy_of (const PointDOFsBCPM *src) {
1051  dofbc = new PointDOFsBCPM(src, GC);
1052  }
1054 
1055  // *** GET ***
1056  int give_nDOFs (void) const { return (dofbc ? dofbc->give_ndofs() : (genatt ? genatt->give_nDOFs() : Pd->give_global_nDOFs())); }
1057  const PointDOFsBCPM* give_DOFbc (void) const { return (dofbc ? dofbc : (genatt ? genatt->give_DOFbc() : NULL )); }
1058  const CrossSection* give_cs (void) const { return (cs ? cs : (genatt ? genatt->give_cs() : NULL )); }
1059  int give_hinge (void) const { return (hinge>=0 ? hinge : (genatt ? genatt->give_hinge() : false )); }
1060  //
1061  //const BoundaryCond* give_bc (int i) const { EALdirectCheck(); return (bc ? bc : (genatt ? genatt->give_bc_local() : NULL)); }
1062  const int* give_dofBCmask (void) const { return ( (give_DOFbc() && give_DOFbc()->give_mask()) ? give_DOFbc()->give_mask() : Pd->give_DOFbc_mask()); }
1063 
1065  bool is_supported (void) const {
1066  const PointDOFsBCPM * dbc = this->give_DOFbc();
1067  return dbc ? dbc->is_supported() : false;
1068  }
1069 
1072  const PointDOFsBCPM * dbc = this->give_DOFbc();
1073  if (dbc) dbc->assemble_full_constrained (aa);
1074  else {
1075  aa->resize_ignore_vals(6);
1076  aa->fillYourselfBy (-1);
1077  }
1078  }
1079 
1080  void setup_full_alloc_DOFvals (Dvctr *answer, const Dvctr *values) const;
1081 
1083  void checkEqualityWith (const PointAttribs *slave) const;
1084 
1085  // *** READ ***
1086  void read_bc (FILE *stream, femFileFormat fff);
1087 
1088  // *** PRINT ***
1089  bool print_prescribed_values (FILE *stream, femFileFormat fff) const;
1090  void print_supported_BC_to_line (FILE *stream, femFileFormat fff) const;
1091  void print_DofIDMask_OOFEM (FILE *stream ) const;
1092  void print_bc (FILE *stream, femFileFormat fff) const;
1094  virtual void print_row (FILE *stream, femFileFormat fff, long did) const;
1095 };
1096 
1097 
1098 // ********************************************************************************************
1099 // *** *** *** *** CLASS RANAttribs *** *** *** ***
1100 // ********************************************************************************************
1101 class RANAttribs : public PointAttribs
1102 {
1103  protected: // *** RAN - Rigid Arm Nodes ***
1104  long AUX_msprop; // property of RAN master; if != -1, have to find master
1105  long AUX_mslid; // local ID of RAN master; if != -1, have to find master
1106  const Node *master; // pointer to RAN master
1109 
1110  public:
1112  RANAttribs (const Point *ow, long p, const Problem *pd=NULL, const PointAttribs *gena=NULL);
1114  RANAttribs (const Point *ow, const PointAttribs *src) : PointAttribs (ow, src) {
1115  if (src->give_classid() == classPointAttribs) {
1116  AUX_msprop = AUX_mslid = -1;
1117  master = NULL;
1118  doftype = NULL;
1119  }
1120  else errol;
1121  }
1123  virtual ~RANAttribs();
1124 
1126  virtual classID give_classid() const { return classRANAttribs; }
1128  virtual bool initialize_from (const char *&str, femFileFormat ff, bool all=true);
1130  virtual void initialize (void);
1132  virtual void checkConsistency (void) const;
1133 
1135  void complete_setup_yourself (const Node *mstr);
1136 
1138  void add_master_to_domain (long did);
1139 
1141  virtual void print_row (FILE *stream, femFileFormat fff, long did) const;
1142 };
1143 
1144 
1145 // ********************************************************************************************
1146 // *** *** *** *** CLASS HNAttribs *** *** *** ***
1147 // ********************************************************************************************
1148 class HNAttribs : public PointAttribs
1149 {
1150  protected: // *** HN - Hanging Nodes ***
1151  int type; // type of HN: 0 = noninitialized
1152  long cm; // count of master nodes
1153  long *AUX_msprops; // property of HN masters
1154  long *AUX_mslids; // local ID of HN masters
1155  const Node **masters; // pointers to HN masters
1157  // master mask, !!! v OOFEM na HN mastermask neni ????!!!!
1159 
1161  double *contrib; // contributions of masters
1163  const Cell *MC; // pointer to master component (edge/surf/elem...)
1164  long dimMC; // dimmension of master component, 1=edge, 2=face, 3=element
1165  long ordMC; // degree of polynomial aproximation of master component
1166  PoinT *nc; // natural(triangular) coordinates of hangingnode
1167 
1168  public:
1170  HNAttribs (const Point *ow, long a, const Problem *pd=NULL, const PointAttribs *gena=NULL);
1172  HNAttribs (const Point *ow, const PointAttribs *src);
1174  virtual ~HNAttribs();
1175 
1177  virtual classID give_classid() const { return classHNAttribs; }
1179  virtual bool initialize_from (const char *&str, femFileFormat ff, bool all=true);
1181  virtual void initialize (void);
1183  virtual void checkConsistency (void) const;
1184 
1186  const Cell* give_MC (void) const { return MC; }
1187  long give_dimMC (void) const { return dimMC; }
1188 
1190  void initialize_general (long countMN, const Node **mns, const double *cntrb, int n, int *val);
1192  void initialize_atelemet (const Cell *mc, long dimmc, long ordmc, long countMN, const Node **mns, const PoinT *natcoords);
1193 
1195  void add_masters_to_domain (long did);
1197  void check_masters_at_domain (long did) const;
1199  void find_hndomain (void);
1200 
1202  void print_one_row (FILE *stream, long hid) const;
1204  virtual void print_row (FILE *stream, femFileFormat fff, long did) const;
1205 };
1206 
1207 
1208 } // namespace midaspace
1209 
1210 #endif // MIDAS_ATTRIBUTE_H
virtual ~ProblemAnalysis()
DESTRUCTOR.
Definition: attribute.h:135
Attribute(const Problem *pd, long gid)
CONSTRUCTOR.
Definition: attribute.h:31
void set_virtual(bool val)
Definition: attribute.h:966
ABC_NLoad(const Problem *pd, long gid)
CONSTRUCTOR.
Definition: attribute.h:494
const BoundaryCond * bc
Definition: attribute.h:461
bool is_supported(void) const
Definition: attribute.h:972
virtual void checkConsistency(void) const
Checks data consistency.
Definition: attribute.cpp:2135
void setup_full_alloc_DOFvals(Dvctr *answer, const Dvctr *values) const
Definition: attribute.cpp:1875
const BoundaryCond * give_load(int i) const
Definition: attribute.h:595
AdaptivityParameters * adpa
Definition: attribute.h:102
FacedgeAttribs(const Facedge *owner, const FacedgeAttribs *src)
CONSTRUCTOR COPY.
Definition: attribute.h:633
void set_elemSize(double val)
Definition: attribute.h:643
virtual ~BoundaryCond()
DESTRUCTOR.
Definition: attribute.h:314
femFileFormat
Definition: alias.h:632
void set_load(int i, char flag='\0', int indx=-1)
EdgeAttribs(const Edge *owner, const EdgeAttribs *src)
CONSTRUCTOR COPY.
Definition: attribute.h:670
LCS_pure * lcs
local coordinate systen at node
Definition: attribute.h:1008
void set_cs(int i)
void set_NIP (int val) { NIP = val; }
Definition: attribute.h:790
bool give_PDBO(ProbDescBoolOpt pdbo) const
Definition: problem.h:187
void checkEqualityWith(const PointAttribs *slave) const
Definition: attribute.cpp:1894
const GPA< PointDOFsCondense > * give_conDOFs(void) const
Definition: attribute.h:830
void check_dpn(const DOFsPerNode eldpn) const
Definition: attribute.h:374
virtual void finitialize(void)
finalize preprocessing
Definition: attribute.cpp:1829
const Material * mat
Definition: attribute.h:741
virtual void checkConsistency(void) const
Checks data consistency.
Definition: attribute.cpp:2389
virtual void initialize(void)
= 0; = 0;
Definition: subject.h:37
virtual void print_row(FILE *stream, femFileFormat fff, long did) const
print row to solver input file
Definition: attribute.cpp:512
int give_hinge(void) const
Definition: attribute.h:1059
void set_hinge(int val)
Definition: attribute.h:1042
virtual ~FacedgeAttribs()
DESTRUCTOR.
Definition: attribute.h:635
ABC_CBLoad(const Problem *pd, long gid)
CONSTRUCTOR.
Definition: attribute.h:545
DOFsPerNode give_dpn(void) const
Definition: attribute.h:372
ElemAttribs(const Element *ow, long p, ElAttLevel eal)
CONSTRUCTOR.
Definition: attribute.cpp:946
virtual ~FaceAttribs()
DESTRUCTOR.
Definition: attribute.h:692
void set_dofbc(const char *str, femFileFormat ff=FFF_Void)
Definition: attribute.h:1044
int give_ndofs(void) const
Definition: substructs.h:72
CrossSectType type
Definition: attribute.h:174
virtual classID give_classid() const
Returns classID - class identification.
Definition: attribute.h:36
const Point * owner() const
POINTERS TO SUPERIORS.
Definition: attribute.h:995
AssignFix(const Problem *pd, long gid)
CONSTRUCTOR.
Definition: attribute.h:437
DOFsPerNode
Definition: alias.h:700
void EALdirectCheck(void) const
check this is nongeneral == this has to have owner
Definition: attribute.h:779
void print_linerec(FILE *stream, bool pure) const
Definition: attribute.cpp:26
FEApproximation give_approx(void) const
Definition: attribute.h:839
double give_elemSize(void) const
GLOBAL.
Definition: attribute.cpp:909
General functions.
void set_cs_of_type(CrossSectType type, int id)
Definition: attribute.h:1043
virtual void checkConsistency(void) const
Checks data consistency.
Definition: subject.h:41
void set_nDOFs_BC(int nd, int *bc)
Definition: attribute.cpp:1675
virtual ~ABC_CBLoad()
DESTRUCTOR.
Definition: attribute.h:547
CrossSectType
Definition: alias.h:435
virtual bool initialize_from(const char *&str, femFileFormat ff, bool all=true)
initialize form input string
Definition: attribute.cpp:2070
void set_FETS(const FiniteElementTypeSet *val)
Definition: attribute.cpp:1273
virtual classID give_classid() const
Returns classID - class identification.
Definition: attribute.h:952
const LCS_beam * give_lcs_global(void) const
Definition: attribute.h:850
virtual void initialize(void)
initialize yourself
Definition: attribute.cpp:1134
FiniteElementType give_expltype_loc(void) const
Definition: attribute.h:820
void set_MatStiffMtrx(int n, double *src)
Definition: attribute.cpp:1284
Attributes(const GeometryComponent *owner, long p)
CONSTRUCTOR.
Definition: attribute.h:573
sifel i/o native ff
Definition: alias.h:644
Input / output function.
virtual void print_row(FILE *stream, femFileFormat fff, long did) const
print row to solver input file
Definition: attribute.h:49
virtual bool initialize_from(const char *&str, femFileFormat ff, bool all=true)
initialize form input string
Definition: attribute.cpp:219
DOFsPerNode give_dpn(void) const
Definition: attribute.h:837
void set_lcs(LCSdirection dir, LCStype typ, const double *auxDv)
Definition: attribute.h:807
long give_dimMC(void) const
Definition: attribute.h:1187
double elemSize
vytvorit vedle edge a face jeste volume, pak presunout loads a size VALUES
Definition: attribute.h:626
GPA< const Material > mats
Definition: attribute.h:194
AssignBC(const Problem *pd, long gid)
CONSTRUCTOR.
Definition: attribute.h:470
const PointDOFsBCPM * give_dofbc(void) const
Definition: attribute.h:968
bool is_supported(void) const
Definition: attribute.h:1065
virtual ~LoadTimeFunction()
DESTRUCTOR.
Definition: attribute.h:62
bool is_supported(void) const
Definition: substructs.h:153
long give_mat_ID(void)
give material ID, or -1 if mat==NULL
Definition: attribute.h:890
void print_components(FILE *stream) const
Definition: attribute.cpp:735
void print_Bbc_SIFEL(FILE *stream) const
Definition: attribute.cpp:1374
PointDOFsBCPM * give_PV(long i) const
Definition: problem.h:323
virtual classID give_classid() const
Returns classID - class identification.
Definition: attribute.h:208
void set_nDOFs_BC(int nd, int *bc)
Definition: attribute.cpp:1850
const GPA< const BoundaryCond > * give_loads(void) const
Definition: attribute.h:594
virtual void finitialize(void)
finalize preprocessing
Definition: attribute.cpp:1142
void read_bc(FILE *stream, femFileFormat fff)
Definition: attribute.cpp:1904
StiffMatrixType stiffmattype
Definition: attribute.h:114
void set_HNmstr(bool val)
Definition: attribute.h:795
const Material * give_mat(void) const
Definition: attribute.h:846
virtual ~Attribute()
DESTRUCTOR.
Definition: attribute.h:33
void check_masters_at_domain(long did) const
Definition: attribute.cpp:2474
virtual classID give_classid() const
Returns classID - class identification.
Definition: attribute.h:267
double give_Ry(void) const
Definition: attribute.h:279
void initialize_atelemet(const Cell *mc, long dimmc, long ordmc, long countMN, const Node **mns, const PoinT *natcoords)
initialize hanging node at element type
Definition: attribute.cpp:2440
bool give_HNmstr(void) const
Definition: attribute.h:843
virtual void initialize(void)
initialize yourself
Definition: attribute.h:271
MaterialType
Definition: alias.h:505
const PointAttribs * genatt
Definition: attribute.h:996
FEApproximation approx
Definition: attribute.h:729
virtual bool initialize_from(const char *&str, femFileFormat ff, bool all=true)
initialize form input string
Definition: attribute.cpp:576
void assemble_full_constrained(Lvctr *aa) const
Definition: attribute.h:1071
virtual void print_row(FILE *stream, femFileFormat fff, long did) const
print row to solver input file
Definition: attribute.cpp:705
virtual classID give_classid() const
Returns classID - class identification.
Definition: attribute.h:1177
CellAttribs(const Cell *owner, const CellAttribs *src)
CONSTRUCTOR COPY.
Definition: attribute.h:612
ElAttLevel EAL
LEVEL.
Definition: attribute.h:716
LCSdirection
Definition: taux.h:217
virtual classID give_classid() const =0
Returns classID - class identification.
virtual ~PointAttribs()
DESTRUCTOR.
Definition: attribute.cpp:1754
const BoundaryCond * give_bcbr(void) const
Definition: attribute.h:373
virtual ~ABC_NLoad()
DESTRUCTOR.
Definition: attribute.h:496
void rescan_att(const char *&str)
Definition: substructs.h:99
long give_cloads(void) const
Definition: attribute.h:596
const Cell * give_MC(void) const
Definition: attribute.h:1186
double * contrib
type == 1 ** HN general
Definition: attribute.h:1161
PAType give_loctype(void) const
Definition: attribute.h:148
PointDOFsRANHN * doftype
RAN DOF types - contain ndofs, dof type array, master mask array.
Definition: attribute.h:1108
DOFsPerNode give_dpn_loc(void) const
LOCAL.
Definition: attribute.h:817
virtual void print_row(FILE *stream, femFileFormat fff, long did) const
print row to solver input file
Definition: attribute.cpp:2533
Alias.
long give_ID() const
Definition: subject.h:45
double give_thickness(void) const
Definition: attribute.h:222
void set_new(const FacedgeAttribs *src)
Definition: attribute.cpp:903
LinearSolverType linsoltype
Definition: attribute.h:115
static const int ord
Definition: attribute.h:730
long give_sifid(void) const
*** SET *** *** GET ***
Definition: attribute.h:42
#define errol
Definition: gelib.h:142
CrossSectType loctype
Definition: attribute.h:175
void set_dofbc_with_ID(int i)
check this is nongeneral == this has to have owner
Definition: attribute.h:1033
CellAttribs(const Cell *owner, long p)
CONSTRUCTOR.
Definition: attribute.h:610
const CrossSection * give_cs_loc(void) const
Definition: attribute.h:826
const PointDOFsBCPM * give_DOFbc(void) const
Definition: attribute.h:1057
Derived class for management of RAN (rigid arm node) or HN (hanging node) connection of DOFs (Degrees...
Definition: substructs.h:232
virtual void initialize(void)
initialize yourself
Definition: attribute.cpp:860
const CrossSection * give_cs(void) const
Definition: attribute.h:1058
#define _errorr2(_1, _2)
Definition: gelib.h:145
const LCS_beam * give_lcs(void) const
Definition: attribute.h:848
int transpmatter
[SIFEL] only - dej jim predponu SIF_
Definition: attribute.h:105
virtual void print_row(FILE *stream, femFileFormat fff, long did) const =0
print row to solver input file
LCS_beam * lcs
OWNED OBJECTS.
Definition: attribute.h:751
virtual ~CrossSection()
DESTRUCTOR.
Definition: attribute.h:205
CrossSection(const Problem *pd, long i)
CONSTRUCTOR.
Definition: attribute.h:199
Assign(const Problem *pd, long gid)
CONSTRUCTOR.
Definition: attribute.h:413
virtual ~ABC_CFLoad()
DESTRUCTOR.
Definition: attribute.h:530
PAGroup give_group(void) const
initialize yourself
Definition: attribute.h:146
MaterialType loctype
Definition: attribute.h:247
ABC_CFLoad(const Problem *pd, long gid)
CONSTRUCTOR.
Definition: attribute.h:528
void print_Fbc_SIFEL(FILE *stream) const
Definition: attribute.cpp:1412
void switch_dpn_Line(void)
Definition: attribute.cpp:1348
virtual classID give_classid() const
Returns classID - class identification.
Definition: attribute.h:498
PointAttribs(const Point *ow, long p, const Problem *pd=NULL, const PointAttribs *gena=NULL)
CONSTRUCTOR.
Definition: attribute.cpp:1702
virtual void initialize(void)
initialize yourself
Definition: attribute.cpp:2097
virtual classID give_classid() const
Returns classID - class identification.
Definition: attribute.h:138
virtual ~EdgeAttribs()
DESTRUCTOR.
Definition: attribute.h:672
IntPointSet
Definition: alias.h:1248
int give_ord(void) const
Definition: attribute.h:821
virtual bool initialize_from(const char *&str, femFileFormat ff, bool all=true)
initialize form input string
Definition: attribute.h:38
virtual void checkConsistency(void) const
Checks data consistency.
Definition: attribute.cpp:931
void print_components_oo(FILE *stream) const
Definition: attribute.cpp:729
RANAttribs(const Point *ow, long p, const Problem *pd=NULL, const PointAttribs *gena=NULL)
CONSTRUCTOR.
Definition: attribute.cpp:2055
Local coordinate system at beam element.
Definition: taux.h:235
void set_lcs(LCSdirection dir, LCStype typ, long num)
Definition: attribute.h:230
LinearSolverType
Linear solver type.
Definition: alias.h:293
virtual void print_row(FILE *stream, femFileFormat fff, long did) const
print row to solver input file
Definition: attribute.h:978
long give_nsteps(void) const
Definition: attribute.h:149
bool isZero(double zero, double a)
Definition: mathlib.cpp:308
virtual bool initialize_from(const char *&str, femFileFormat ff, bool all=true)
initialize form input string
Definition: attribute.cpp:1030
ABC_CELoad(const Problem *pd, long gid)
CONSTRUCTOR.
Definition: attribute.h:511
virtual void print_row(FILE *stream, femFileFormat fff, long did) const
print row to solver input file
Definition: attribute.cpp:2168
virtual void initialize(void)
initialize yourself
Definition: attribute.cpp:775
virtual void print_row(FILE *stream, femFileFormat fff, long did) const
print row to solver input file
Definition: attribute.cpp:2008
const int * give_dofBCmask(void) const
Definition: attribute.h:1062
void scan_linerec(const char *str)
Definition: attribute.cpp:17
long SP_scan_line_alloc(const char *&src, char *&dest)
... line; return value is length of the line; dest is NULL and allocated here
Definition: librw.cpp:559
virtual void initialize(void)
initialize yourself
Definition: attribute.cpp:817
void initialize_BC_NL_SIFEL(FILE *stream)
Definition: attribute.cpp:644
virtual void checkConsistency(void) const
Checks data consistency.
Definition: attribute.cpp:1834
bool is_identical_with(BoundaryCond *val) const
IDENTICAL.
Definition: attribute.h:316
bool is_the_first_BC(void)
Definition: attribute.cpp:683
long give_prop(void) const
Definition: attribute.h:593
virtual bool initialize_from(const char *&str, femFileFormat ff, bool all=true)=0
initialize form input string
void print_bc(FILE *stream, femFileFormat fff) const
Definition: attribute.cpp:1972
void add_load(const BoundaryCond *val)
Definition: attribute.h:589
const Material * give_mat_loc(void) const
Definition: attribute.h:827
virtual void initialize(void)
initialize yourself
Definition: attribute.cpp:826
bool has_fullhinge_ends(void) const
Definition: attribute.cpp:1337
virtual classID give_classid() const
Returns classID - class identification.
Definition: attribute.h:549
const Edge * owner() const
POINTERS TO SUPERIORS.
Definition: attribute.h:678
virtual void print_row(FILE *stream, femFileFormat fff, long did) const
print row to solver input file
Definition: attribute.cpp:393
virtual void checkConsistency(void) const
finalize preprocessing
Definition: attribute.cpp:653
const Problem * Pd
Pointer to owner = parent problem.
Definition: subject.h:24
void set_approx(FEApproximation val)
Definition: attribute.h:786
void set_nlgeo(bool val)
Definition: attribute.h:796
Material(const Problem *pd, long i)
CONSTRUCTOR.
Definition: attribute.h:259
void reset_dofbc_support_all_rot_dofs(void)
Definition: attribute.cpp:1867
void initialize_first(void)
initialize the first LTF
Definition: attribute.h:80
virtual classID give_classid() const
Returns classID - class identification.
Definition: attribute.h:532
virtual void print_row(FILE *stream, femFileFormat fff, long did) const
print row to solver input file
Definition: attribute.h:483
SStype give_sst_loc(void) const
Definition: attribute.h:818
const ElemAttribs * Gatt
Definition: attribute.h:721
virtual ~AssignFix()
DESTRUCTOR.
Definition: attribute.h:442
void print_supported_BC_to_line(FILE *stream, femFileFormat fff) const
Definition: attribute.cpp:1935
virtual void checkConsistency(void) const
Checks data consistency.
Definition: attribute.cpp:916
void set_mat(int i)
Definition: attribute.h:792
double give_Iz(void) const
Definition: attribute.h:224
ProblemAnalysis(const Problem *pd)
CONSTRUCTOR.
Definition: attribute.h:120
const Material * give_mat(int i) const
Definition: attribute.h:226
virtual void initialize(void)
initialize yourself
Definition: attribute.cpp:843
Material * give_Mat_of_type(MaterialType type, int id) const
Definition: problem.cpp:300
CrossSectType give_loctype_or_type(void) const
Definition: attribute.h:217
void integrate_duplicated_one(const ElemAttribs *slv)
Definition: attribute.cpp:1237
void set_bcbr(const BoundaryCond *bc)
Definition: attribute.h:366
const LCS_beam * give_lcs(void) const
Definition: attribute.h:218
CrossSection * give_CS(long i) const
Definition: problem.h:320
const CrossSection * cs
POINTERS TO ATTRIBUTES listed in problem class cs, mat, ...
Definition: attribute.h:740
virtual classID give_classid() const
Returns classID - class identification.
Definition: attribute.h:515
HNAttribs(const Point *ow, long a, const Problem *pd=NULL, const PointAttribs *gena=NULL)
CONSTRUCTOR.
Definition: attribute.cpp:2194
void copy_bcbr(const BoundaryCond *bc, DOFsPerNode dpn_old, DOFsPerNode dpn_new)
Definition: attribute.h:330
Lvctr * resize_ignore_vals(long newsize)
resize, ignore values
Definition: arrays.h:472
void setadd_loctype_sifif(BCType loct, int locid)
Definition: attribute.cpp:664
const BoundaryCond * bcbr
Definition: attribute.h:301
virtual bool initialize_from(const char *&str, femFileFormat ff, bool all=true)
initialize form input string
Definition: attribute.h:638
GPA - Generic Pointer Array, template class manages 1d array of pointers to objects of type T...
Definition: gpa.h:23
virtual classID give_classid() const
Returns classID - class identification.
Definition: attribute.h:918
Attributes(const GeometryComponent *owner, const Attributes *src)
CONSTRUCTOR COPY.
Definition: attribute.h:575
const LCS_beam * give_lcs_loc(void) const
Definition: attribute.h:829
GPA< PointDOFsCondense > * conDOFs
Definition: attribute.h:753
void complete_setup_yourself(const Node *mstr)
Definition: attribute.cpp:2151
FiniteElementType
Definition: alias.h:995
#define _errorr(_1)
Definition: gelib.h:151
const Node * master
Definition: attribute.h:1106
Derived class for management of boundary conditions and physical meanings of DOFs (Degrees Of Freedom...
Definition: substructs.h:131
SStype
type of stress/strain state of element; especially results depends on this variable => described at M...
Definition: alias.h:954
virtual ~ElemAttribs()
DESTRUCTOR.
Definition: attribute.cpp:1016
void add_areaYyYz(double w, double h)
Definition: attribute.cpp:369
MaterialType give_loctype(void) const
Definition: attribute.h:278
virtual void initialize(void)
initialize yourself
Definition: attribute.cpp:348
void print_one_row(FILE *stream, long hid) const
Definition: attribute.cpp:2515
PointDOFsRANHN * doftype
RAN DOF types - contain ndofs, dof type array, master mask array.
Definition: attribute.h:1158
RANAttribs(const Point *ow, const PointAttribs *src)
CONSTRUCTOR COPY.
Definition: attribute.h:1114
MaterialType type
Definition: attribute.h:246
Mathematic functions.
double give_area(void) const
Definition: attribute.h:219
SStype give_sst(void) const
Definition: attribute.h:838
BCType give_loctype(void) const
Definition: attribute.h:369
virtual void initialize(void)
initialize yourself
Definition: attribute.cpp:1824
virtual void checkConsistency(void) const
Checks data consistency.
Definition: attribute.cpp:1147
virtual void initialize(void)
initialize yourself
Definition: attribute.cpp:1495
virtual void initialize(void)
initialize yourself
Definition: attribute.cpp:2325
bool give_virtual(void) const
Definition: attribute.h:969
void print_block_SIFEL(FILE *stream) const
print analysis block of SIFEL input file
Definition: attribute.cpp:176
FaceAttribs(const Face *owner, long p)
CONSTRUCTOR.
Definition: attribute.h:688
const CrossSection * cs
POINTERS TO ATTRIBUTES listed in problem class.
Definition: attribute.h:1005
LoadTimeFunction(const Problem *pd, long i)
CONSTRUCTOR.
Definition: attribute.h:60
DOFsPerNode give_dpn_default(void) const
DEFAULT.
Definition: attribute.cpp:1308
void print_DofIDMask_OOFEM(FILE *stream) const
Definition: attribute.cpp:1964
#define CASE
Definition: alias.h:43
const Face * owner() const
POINTERS TO SUPERIORS.
Definition: attribute.h:698
double give_component(int i) const
Definition: attribute.h:371
DOFsPerNode give_DOFspnod(void) const
Definition: problem.h:256
virtual ~GelemAttribs()
DESTRUCTOR.
Definition: attribute.h:949
virtual ~ABC_CELoad()
DESTRUCTOR.
Definition: attribute.h:513
BoundaryCond(const Problem *pd, long i)
CONSTRUCTOR.
Definition: attribute.h:305
FaceAttribs(const Face *owner, const FaceAttribs *src)
CONSTRUCTOR COPY.
Definition: attribute.h:690
void assemble_full_constrained(Lvctr *aa) const
Definition: substructs.h:162
const int * give_DOFbc_mask(void) const
Definition: problem.h:258
const Cell * MC
type == 2 ** HN at finite element
Definition: attribute.h:1163
bool SP_scan_expected_word(const char *&src, const char *expctd, bool cs)
... word and compare with expected one
Definition: librw.cpp:580
Derived class for management of condensed DOFs (Degrees Of Freedom) at a node.
Definition: substructs.h:287
void initialize_general(long countMN, const Node **mns, const double *cntrb, int n, int *val)
initialize hanging node general
Definition: attribute.cpp:2421
void fillYourselfBy(long val)
Set all elements of the array to the given value.
Definition: arrays.h:487
bool is_loaded(void) const
Definition: attribute.h:598
virtual ~CellAttribs()
DESTRUCTOR.
Definition: attribute.h:614
GelemAttribs(const Element *ow, long p, ElAttLevel eal)
CONSTRUCTOR.
Definition: attribute.h:941
FiniteElementType expltype
Definition: attribute.h:731
void set_elemCount(long val)
Definition: attribute.h:644
PointDOFsBCPM * dofbc
OWNED OBJECTS.
Definition: attribute.h:936
BCType give_type(void) const
Definition: attribute.h:368
virtual ~Attributes()
DESTRUCTOR.
Definition: attribute.h:580
double give_elemSize_loc(void) const
LOCAL.
Definition: attribute.h:652
FacedgeAttribs(const Facedge *owner, long p)
CONSTRUCTOR.
Definition: attribute.h:631
*** *** *** *** CLASS COMPONENT *** *** *** ***
Definition: geomcomp.h:22
CrossSectType give_type(void) const
Definition: attribute.h:215
bool scan_components(FILE *stream, int ncmp)
Definition: attribute.h:386
tato struktura by mela obsahovat vsechny potrebne informace pro urceni konkretni implementace konecne...
Definition: alias.h:1019
FiniteElementTypeSet * give_FETS(FiniteElementTypeSet *set) const
GLOBAL, EAL_direct only.
Definition: attribute.cpp:1295
void add_master_to_domain(long did)
Definition: attribute.cpp:2160
long give_elemCount_loc(void) const
Definition: attribute.h:653
LCStype
Definition: taux.h:218
Local coordinate system defined by 2 vectors.
Definition: taux.h:179
virtual ~AssignBC()
DESTRUCTOR.
Definition: attribute.h:475
bool print_prescribed_values(FILE *stream, femFileFormat fff) const
oofem a ansys berou podepreni jako predepsane posunuti velikosti 0.0 ale sifel zadava podepreni jako ...
Definition: attribute.cpp:1921
PointDOFsBCPM * dofbc
OWNED OBJECTS.
Definition: attribute.h:1002
bool * give_HNmstr_loc(void) const
Definition: attribute.h:824
void print_Ebc_SIFEL(FILE *stream) const
Definition: attribute.cpp:1385
const ElemAttribs * Patt
Definition: attribute.h:720
virtual bool initialize_from(const char *&str, femFileFormat ff, bool all=true)
initialize form input string
Definition: attribute.cpp:757
void print_row_OOFEM(FILE *stream) const
print analysis row of OOFEM input file
Definition: attribute.cpp:156
GPA< const BoundaryCond > loads
POINTERS TO ATTRIBUTES listed in problem class.
Definition: attribute.h:567
StiffMatrixType
Stiffness matrix type.
Definition: alias.h:269
void set_prop(long val)
Definition: attribute.h:588
EdgeAttribs(const Edge *owner, long p)
CONSTRUCTOR.
Definition: attribute.h:668
virtual classID give_classid() const
Returns classID - class identification.
Definition: attribute.h:1126
virtual ~RANAttribs()
DESTRUCTOR.
Definition: attribute.cpp:2063
virtual bool initialize_from(const char *&str, femFileFormat ff, bool all=true)
initialize form input string
Definition: attribute.cpp:444
FEApproximation give_approx_loc(void) const
Definition: attribute.h:819
int give_global_nDOFs(void) const
Definition: problem.h:257
IntPointSet IPset
VALUES.
Definition: attribute.h:734
virtual classID give_classid() const
Returns classID - class identification.
Definition: attribute.h:1019
virtual ~Material()
DESTRUCTOR.
Definition: attribute.h:264
virtual void initialize(void)
initialize yourself
Definition: attribute.cpp:746
DOFsPerNode dpn
FINITE ELEMENT TYPE SET // viz alias.h.
Definition: attribute.h:727
double give_Iy(void) const
Definition: attribute.h:223
FElemAttribs(const Element *ow, long p, ElAttLevel eal, const Problem *pd=NULL)
CONSTRUCTOR.
Definition: attribute.cpp:1445
FiniteElementType give_expltype(void) const
Definition: attribute.h:840
double give_width(void) const
Definition: attribute.h:220
void initialize_the_first_BC(void)
Definition: attribute.cpp:674
bool isOOFEMplast(void) const
Definition: attribute.h:281
virtual ~HNAttribs()
DESTRUCTOR.
Definition: attribute.cpp:2213
virtual void checkConsistency(void) const
Checks data consistency.
Definition: attribute.cpp:1643
void set_lcs(LCSdirection dir, LCStype typ, long num)
Definition: attribute.h:806
SStype give_sst_default(void) const
Definition: attribute.cpp:1309
const Node ** masters
Definition: attribute.h:1155
const CrossSection * give_cs(void) const
Definition: attribute.h:845
void set_mat_of_type(MaterialType type, int id)
Definition: attribute.h:798
double give_elemCount(void) const
Definition: attribute.cpp:910
void set_dofbc_copy_of(const PointDOFsBCPM *src)
Definition: attribute.h:1050
const FElement * f_owner() const
POINTERS TO SUPERIORS.
Definition: attribute.h:906
void set_sst(SStype val)
Definition: attribute.h:785
classID
Type introduced to distinguish between classes.
Definition: alias.h:142
void set_cs_of_type(CrossSectType type, int id)
Definition: attribute.h:791
virtual bool initialize_from(const char *&str, femFileFormat ff, bool all=true)
initialize form input string
Definition: attribute.cpp:44
void deallocateCheck(ArgType *p, bool check=true)
*** *** *** *** DEALLOCATE TEMPLATES *** *** *** ***
Definition: gelib.h:192
void find_hndomain(void)
Definition: attribute.cpp:2483
CrossSection * give_CS_of_type(CrossSectType type, int id) const
Definition: problem.cpp:289
virtual bool initialize_from(const char *&str, femFileFormat ff, bool all=true)
initialize form input string
Definition: attribute.cpp:792
virtual ~Assign()
DESTRUCTOR.
Definition: attribute.h:415
virtual void checkConsistency(void) const
Checks data consistency.
Definition: attribute.h:65
virtual bool initialize_from(const char *&str, femFileFormat ff, bool all=true)
initialize form input string
Definition: attribute.cpp:1761
GelemAttribs(const Element *ow, const GelemAttribs *src, ElAttLevel eal)
CONSTRUCTOR COPY.
Definition: attribute.h:943
int give_ncomp(void) const
Definition: attribute.h:370
void BC_att_SIFEL_NODEBC_revert(void)
*** BC ***
Definition: substructs.h:179
double give_height(void) const
Definition: attribute.h:221
int give_nlayers(void) const
Definition: attribute.h:225
virtual bool initialize_from(const char *&str, femFileFormat ff, bool all=true)
initialize form input string
Definition: attribute.cpp:2222
Material * give_Mat(long i) const
Definition: problem.h:321
assignment of attributes to element
Definition: attribute.h:707
bool FP_scan_array(FILE *stream, int n, int *dest)
scan/copy array of numbers from src to dest, src pointer is shifted over the field ...
Definition: librw.cpp:214
const ElemAttribs * Datt
Definition: attribute.h:723
Problem description.
Definition: problem.h:74
virtual void print_row(FILE *stream, femFileFormat fff, long did) const
print row to solver input file
Definition: attribute.h:640
PAGroup
The group of problem analysis.
Definition: alias.h:367
IntPointSet give_IPset(void) const
Definition: attribute.h:842
virtual classID give_classid() const
Returns classID - class identification.
Definition: attribute.h:353
PAType give_type(void) const
Definition: attribute.h:147
virtual ~FElemAttribs()
DESTRUCTOR.
Definition: attribute.cpp:1483
void add_masters_to_domain(long did)
Definition: attribute.cpp:2466
const Element * owner() const
POINTERS TO SUPERIORS.
Definition: attribute.h:719
int give_nDOFs(void) const
Definition: attribute.h:1056
void set_dpn(DOFsPerNode val)
Definition: attribute.h:784
const GeometryComponent * GC
Pointer to owner == parent geometry component.
Definition: subject.h:85
MaterialType give_type(void) const
Definition: attribute.h:277
FEApproximation
finite element approximation
Definition: alias.h:937
void set_dofbc_with_ID(int i)
Definition: attribute.h:957
void set_fullhinge_at(int point)
Definition: attribute.cpp:1321
Classes PointDOFsAttributes, PointDOFsBCPM, PointDOFsRANHN and PointDOFsCondense. ...
IntPointSet give_IPset_loc(void) const
Definition: attribute.h:823
virtual void print_row(FILE *stream, femFileFormat fff, long did) const
print row to solver input file
Definition: attribute.cpp:1543
virtual void initialize(void)
initialize yourself
Definition: attribute.cpp:877