IFEM  90A354
SIMsupel.h
Go to the documentation of this file.
1 // $Id$
2 //==============================================================================
12 //==============================================================================
13 
14 #ifndef _SIM_SUPEL_H
15 #define _SIM_SUPEL_H
16 
17 #include "SIMdummy.h"
18 #include "SIMgeneric.h"
19 
20 
28 class SIMsupel : public SIMdummy<SIMgeneric>
29 {
30 protected:
32  struct SuperElm
33  {
34  std::string id;
37 
38  SIMgeneric* sim = nullptr;
39  };
40 
41 public:
45  explicit SIMsupel(const char* hd = nullptr, char nf = 6);
46 
48  virtual bool createFEMmodel(char resetNumb);
49 
51  virtual std::string getName() const { return "SIMsupel"; }
52 
55  bool recoverInternalDOFs(const Vector& glbSol);
56 
57 protected:
61  virtual bool parse(const tinyxml2::XMLElement* elem);
62 
67  virtual ASMbase* readPatch(std::istream& isp, int pchInd, const CharVec&,
68  const char* whiteSpace) const;
69 
73  virtual bool recoverInternalDOFs(const ASMbase*, SuperElm& sup,
74  const Vector& supSol) const;
75 
76 private:
77  unsigned char ncmp;
78 
79 protected:
80  std::vector<SuperElm> mySups;
81 };
82 
83 #endif
Dummy SIM template class for drivers not associated with a FE model.
Generic SIM class with some added functionalities.
Base class for spline-based finite element (FE) assembly drivers.
Definition: ASMbase.h:70
Template SIM class with some dummy implementations.
Definition: SIMdummy.h:35
Generic SIM class with some added functionalities.
Definition: SIMgeneric.h:28
std::vector< unsigned char > CharVec
Convenience declaration.
Definition: SIMinput.h:59
virtual bool parse(char *keyWord, std::istream &is)
Parses a data section from an input stream.
Definition: SIMinput.C:1081
Solution driver for general superelement FEM analysis.
Definition: SIMsupel.h:29
unsigned char ncmp
Number of primary solution components per node.
Definition: SIMsupel.h:77
virtual bool createFEMmodel(char resetNumb)
Creates the FE topology of the superelement patches.
Definition: SIMsupel.C:125
std::vector< SuperElm > mySups
Superelement data container.
Definition: SIMsupel.h:80
virtual ASMbase * readPatch(std::istream &isp, int pchInd, const CharVec &, const char *whiteSpace) const
Reads a patch from given input stream.
Definition: SIMsupel.C:102
virtual std::string getName() const
Returns the name of this simulator.
Definition: SIMsupel.h:51
SIMsupel(const char *hd=nullptr, char nf=6)
Default constructor.
Definition: SIMsupel.C:24
bool recoverInternalDOFs(const Vector &glbSol)
Performs recovery of the internal DOFs for superelements.
Definition: SIMsupel.C:131
A vector class with some added algebraic operations.
Definition: matrix.h:64
Struct with superelement data.
Definition: SIMsupel.h:33
Vector sol
Recovered primary solution on underlying FE model.
Definition: SIMsupel.h:36
Matrix MVP
Local-to-global transformation matrix.
Definition: SIMsupel.h:35
SIMgeneric * sim
Pointer to the underlying FE model.
Definition: SIMsupel.h:38
std::string id
Superelement id.
Definition: SIMsupel.h:34