IFEM  90A354
SIM1D.h
Go to the documentation of this file.
1 // $Id$
2 //==============================================================================
12 //==============================================================================
13 
14 #ifndef _SIM_1D_H
15 #define _SIM_1D_H
16 
17 #include "SIMgeneric.h"
18 
19 
24 class SIM1D : public SIMgeneric
25 {
26 public:
28  enum { dimension = 1 };
29 
32  explicit SIM1D(unsigned char n1 = 1, bool = false);
35  explicit SIM1D(const CharVec& unf, bool = false);
39  explicit SIM1D(IntegrandBase* itg, unsigned char n = 1);
41  virtual ~SIM1D() {}
42 
44  virtual unsigned short int getNoParamDim() const { return 1; }
45 
52  RealArray getSolution(const Vector& psol, double u,
53  int deriv = 0, int patch = 1) const;
54 
55 private:
57  bool parseGeometryTag(const tinyxml2::XMLElement* elem);
59  bool parseBCTag(const tinyxml2::XMLElement* elem);
60 
61 protected:
64  virtual bool parse(const tinyxml2::XMLElement* elem);
65 
69  virtual bool parse(char* keyWord, std::istream& is);
70 
72  virtual bool parseGeometryDimTag(const tinyxml2::XMLElement* elem)
73  {
74  return this->parseGeometryTag(elem);
75  }
76 
78  virtual bool parseXi(const tinyxml2::XMLElement*, RealArray&) const
79  { return false; }
80 
89  virtual bool addConstraint(int patch, int lndx, int ldim, int dirs, int code,
90  int& ngnod, char = 1, bool ovrD = false);
91 
94  virtual ModelGenerator* getModelGenerator(const tinyxml2::XMLElement* geo) const;
95 
101  virtual ASMbase* readPatch(std::istream& isp, int pchInd, const CharVec& unf,
102  const char* whiteSpace) const;
103 
106  virtual bool connectPatches(const ASM::Interface& ifc, bool = true);
107 
108 protected:
109  unsigned char nf;
110 };
111 
112 #endif
std::vector< Real > RealArray
A real-valued array without algebraic operations.
Definition: ImmersedBoundaries.h:29
Generic SIM class with some added functionalities.
Base class for spline-based finite element (FE) assembly drivers.
Definition: ASMbase.h:70
Base class representing a system level integrated quantity.
Definition: IntegrandBase.h:42
Base class for model generators for FEM simulators.
Definition: ModelGenerator.h:29
Driver class for 1D NURBS-based FEM solver.
Definition: SIM1D.h:25
SIM1D(unsigned char n1=1, bool=false)
Default constructor.
Definition: SIM1D.C:25
bool parseBCTag(const tinyxml2::XMLElement *elem)
Parses a subelement of the boundaryconditions XML-tag.
Definition: SIM1D.C:226
virtual bool parseXi(const tinyxml2::XMLElement *, RealArray &) const
Parses or generates app-specific explicit knots for refinement.
Definition: SIM1D.h:78
virtual ASMbase * readPatch(std::istream &isp, int pchInd, const CharVec &unf, const char *whiteSpace) const
Reads a patch from given input stream.
Definition: SIM1D.C:521
virtual unsigned short int getNoParamDim() const
Returns the number of parameter dimensions in the model.
Definition: SIM1D.h:44
virtual ~SIM1D()
Empty destructor.
Definition: SIM1D.h:41
RealArray getSolution(const Vector &psol, double u, int deriv=0, int patch=1) const
Evaluates the primary solution at the given point.
Definition: SIM1D.C:551
virtual bool connectPatches(const ASM::Interface &ifc, bool=true)
Connects two patches.
Definition: SIM1D.C:47
virtual ModelGenerator * getModelGenerator(const tinyxml2::XMLElement *geo) const
Returns a FEM model generator for a default single-patch model.
Definition: SIM1D.C:545
virtual bool addConstraint(int patch, int lndx, int ldim, int dirs, int code, int &ngnod, char=1, bool ovrD=false)
Preprocesses a user-defined Dirichlet boundary property.
Definition: SIM1D.C:475
unsigned char nf
Number of scalar fields.
Definition: SIM1D.h:109
virtual bool parseGeometryDimTag(const tinyxml2::XMLElement *elem)
Parses a dimension-specific subelement of the geometry XML-tag.
Definition: SIM1D.h:72
bool parseGeometryTag(const tinyxml2::XMLElement *elem)
Parses a subelement of the geometry XML-tag.
Definition: SIM1D.C:82
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
A vector class with some added algebraic operations.
Definition: matrix.h:64
Struct for representing a domain interface.
Definition: Interface.h:24