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
24class SIM1D : public SIMgeneric
25{
26public:
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
55private:
57 bool parseGeometryTag(const tinyxml2::XMLElement* elem);
59 bool parseBCTag(const tinyxml2::XMLElement* elem);
60
61protected:
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
108protected:
109 unsigned char nf;
110};
111
112#endif
std::vector< Real > RealArray
A real-valued array without algebraic operations.
Definition ImmersedBoundaries.h:32
Generic SIM class with some added functionalities.
Base class for spline-based finite element (FE) assembly drivers.
Definition ASMbase.h:72
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
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 bool parse(const tinyxml2::XMLElement *elem)
Parses a data section from an XML document.
Definition SIM1D.C:251
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:60
A vector class with some added algebraic operations.
Definition matrix.h:64
Struct for representing a domain interface.
Definition Interface.h:24