IFEM 90A354
SIM2D.h
Go to the documentation of this file.
1// $Id$
2//==============================================================================
12//==============================================================================
13
14#ifndef _SIM_2D_H
15#define _SIM_2D_H
16
17#include "SIMgeneric.h"
18
19
26class SIM2D : public SIMgeneric
27{
28public:
30 enum { dimension = 2 };
31
35 explicit SIM2D(unsigned char n1 = 2, bool check = false);
39 explicit SIM2D(const CharVec& unf, bool check = false);
44 explicit SIM2D(IntegrandBase* itg, unsigned char n = 2, bool check = false);
46 virtual ~SIM2D() {}
47
49 virtual bool mixedProblem() const { return nf.size() > 1; }
50
52 virtual unsigned short int getNoParamDim() const { return 2; }
53
57 virtual void clonePatches(const PatchVec& patches,
58 const std::map<int,int>& g2ln);
59
68 RealArray getSolution(const Vector& psol, double u, double v,
69 int deriv = 0, int patch = 1) const;
70
71private:
73 bool parseGeometryTag(const tinyxml2::XMLElement* elem);
75 bool parseBCTag(const tinyxml2::XMLElement* elem);
76
77protected:
80 virtual bool parse(const tinyxml2::XMLElement* elem);
81
85 virtual bool parse(char* keyWord, std::istream& is);
86
88 virtual bool parseGeometryDimTag(const tinyxml2::XMLElement* elem)
89 {
90 return this->parseGeometryTag(elem);
91 }
92
99 virtual bool readNodes(std::istream& isn, int pchInd, int basis = 0,
100 bool oneBased = false);
101
104 virtual void readNodes(std::istream& isn);
105
115 virtual bool addConstraint(int patch, int lndx, int ldim, int dirs, int code,
116 int& ngnod, char basis = 1, bool ovrD = false);
117
120 virtual ModelGenerator* getModelGenerator(const tinyxml2::XMLElement* geo) const;
121
127 virtual ASMbase* readPatch(std::istream& isp, int pchInd, const CharVec& unf,
128 const char* whiteSpace) const;
129
133 virtual bool connectPatches(const ASM::Interface& ifc,
134 bool coordCheck = true);
135
136protected:
139};
140
141#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 2D NURBS-based FEM solver.
Definition SIM2D.h:27
virtual ModelGenerator * getModelGenerator(const tinyxml2::XMLElement *geo) const
Returns a FEM model generator for a default single-patch model.
Definition SIM2D.C:855
virtual bool mixedProblem() const
Returns whether a mixed formulation is used (used by HDF5 output).
Definition SIM2D.h:49
virtual bool parse(const tinyxml2::XMLElement *elem)
Parses a data section from an XML document.
Definition SIM2D.C:424
bool parseGeometryTag(const tinyxml2::XMLElement *elem)
Parses a subelement of the geometry XML-tag.
Definition SIM2D.C:113
bool checkRHSys
Check if all patches are in a right-hand system.
Definition SIM2D.h:138
bool parseBCTag(const tinyxml2::XMLElement *elem)
Parses a subelement of the boundaryconditions XML-tag.
Definition SIM2D.C:396
CharVec nf
Number of scalar fields.
Definition SIM2D.h:137
virtual ASMbase * readPatch(std::istream &isp, int pchInd, const CharVec &unf, const char *whiteSpace) const
Reads a patch from given input stream.
Definition SIM2D.C:768
virtual bool connectPatches(const ASM::Interface &ifc, bool coordCheck=true)
Connects two patches.
Definition SIM2D.C:66
virtual bool addConstraint(int patch, int lndx, int ldim, int dirs, int code, int &ngnod, char basis=1, bool ovrD=false)
Preprocesses a user-defined Dirichlet boundary property.
Definition SIM2D.C:696
virtual bool readNodes(std::istream &isn, int pchInd, int basis=0, bool oneBased=false)
Reads global node data for a patch from given input stream.
Definition SIM2D.C:814
virtual void clonePatches(const PatchVec &patches, const std::map< int, int > &g2ln)
Creates the FE model by copying the given patches.
Definition SIM2D.C:839
virtual unsigned short int getNoParamDim() const
Returns the number of parameter dimensions in the model.
Definition SIM2D.h:52
virtual ~SIM2D()
Empty destructor.
Definition SIM2D.h:46
virtual bool parseGeometryDimTag(const tinyxml2::XMLElement *elem)
Parses a dimension-specific subelement of the geometry XML-tag.
Definition SIM2D.h:88
RealArray getSolution(const Vector &psol, double u, double v, int deriv=0, int patch=1) const
Evaluates the primary solution at the given point.
Definition SIM2D.C:861
std::vector< ASMbase * > PatchVec
Spline patch container.
Definition SIMdependency.h:33
Generic SIM class with some added functionalities.
Definition SIMgeneric.h:28
RealArray getSolution(const Vector &psol, const double *par, int deriv=0, int patch=1) const
Evaluates the primary solution at the given point.
Definition SIMgeneric.C:39
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