IFEM  90A354
MultiPatchModelGenerator.h
Go to the documentation of this file.
1 // $Id$
2 //==============================================================================
12 //==============================================================================
13 
14 #ifndef _MULTI_PATCH_MODEL_GENERATOR_H
15 #define _MULTI_PATCH_MODEL_GENERATOR_H
16 
17 #include "ModelGenerator.h"
18 #include <GoTools/geometry/SplineCurve.h>
19 #include <GoTools/geometry/SplineSurface.h>
20 #include <GoTools/trivariate/SplineVolume.h>
21 
22 
29 {
30 public:
33  explicit MultiPatchModelGenerator1D(const tinyxml2::XMLElement* elem);
36 
38  virtual bool createGeometry(SIMinput& sim) const;
40  virtual bool createTopology(SIMinput& sim) const;
42  virtual bool createTopologySets(SIMinput& sim) const;
43 
44 protected:
46  virtual std::string createG2(int nsd, bool rational = false) const;
47 
48 private:
49  size_t nx;
50  int periodic_x;
51 };
52 
53 
60 {
61 public:
64  explicit MultiPatchModelGenerator2D(const tinyxml2::XMLElement* elem);
67 
69  virtual bool createGeometry(SIMinput& sim) const;
71  virtual bool createTopology(SIMinput& sim) const;
73  virtual bool createTopologySets(SIMinput& sim) const;
74 
75 protected:
77  virtual std::string createG2(int nsd, bool rational = false) const;
78 
79 private:
80  size_t nx;
81  size_t ny;
82  int periodic_x;
83  int periodic_y;
84 };
85 
86 
93 {
94 public:
97  explicit MultiPatchModelGenerator3D(const tinyxml2::XMLElement* geo);
100 
102  virtual bool createGeometry(SIMinput& sim) const;
104  virtual bool createTopology(SIMinput& sim) const;
106  virtual bool createTopologySets(SIMinput& sim) const;
107 
108 protected:
110  virtual std::string createG2(int, bool rational = false) const;
111 
112 private:
113  size_t nx;
114  size_t ny;
115  size_t nz;
119 };
120 
121 #endif
Base class for model generators for NURBS-based FEM simulators.
Base class for model generators for FEM simulators.
Definition: ModelGenerator.h:29
const tinyxml2::XMLElement * geo
Pointer to XML element describing geometry.
Definition: ModelGenerator.h:56
1D multi-patch model generator for FEM simulators.
Definition: MultiPatchModelGenerator.h:29
virtual std::string createG2(int nsd, bool rational=false) const
Generates the G2 description of the geometry.
Definition: MultiPatchModelGenerator.C:27
MultiPatchModelGenerator1D(const tinyxml2::XMLElement *elem)
The constructor initializes common members. \ param[in] elem XML element to parse.
Definition: MultiPatchModelGenerator.C:93
virtual bool createTopology(SIMinput &sim) const
Creates topology for geometry.
Definition: MultiPatchModelGenerator.C:104
virtual bool createTopologySets(SIMinput &sim) const
Creates topology sets for geometry.
Definition: MultiPatchModelGenerator.C:127
int periodic_x
If non-zero, make model periodic in x for given bases.
Definition: MultiPatchModelGenerator.h:50
size_t nx
Number of blocks in x.
Definition: MultiPatchModelGenerator.h:49
virtual ~MultiPatchModelGenerator1D()
Empty destructor.
Definition: MultiPatchModelGenerator.h:35
virtual bool createGeometry(SIMinput &sim) const
Creates a geometry.
Definition: MultiPatchModelGenerator.C:83
2D multi-patch model generator for FEM simulators.
Definition: MultiPatchModelGenerator.h:60
int periodic_y
If non-zero, make model periodic in y for given bases.
Definition: MultiPatchModelGenerator.h:83
int periodic_x
If non-zero, make model periodic in x for given bases.
Definition: MultiPatchModelGenerator.h:82
size_t ny
Number of blocks in y.
Definition: MultiPatchModelGenerator.h:81
virtual bool createGeometry(SIMinput &sim) const
Creates a geometry.
Definition: MultiPatchModelGenerator.C:237
size_t nx
Number of blocks in x.
Definition: MultiPatchModelGenerator.h:80
virtual std::string createG2(int nsd, bool rational=false) const
Generates the G2 description of the geometry.
Definition: MultiPatchModelGenerator.C:164
virtual bool createTopologySets(SIMinput &sim) const
Creates topology sets for geometry.
Definition: MultiPatchModelGenerator.C:287
virtual bool createTopology(SIMinput &sim) const
Creates topology for geometry.
Definition: MultiPatchModelGenerator.C:246
virtual ~MultiPatchModelGenerator2D()
Empty destructor.
Definition: MultiPatchModelGenerator.h:66
MultiPatchModelGenerator2D(const tinyxml2::XMLElement *elem)
The constructor initializes common members. \ param[in] elem XML element to parse.
Definition: MultiPatchModelGenerator.C:151
3D multi-patch model generator for FEM simulators.
Definition: MultiPatchModelGenerator.h:93
size_t ny
Number of blocks in y.
Definition: MultiPatchModelGenerator.h:114
size_t nx
Number of blocks in x.
Definition: MultiPatchModelGenerator.h:113
virtual std::string createG2(int, bool rational=false) const
Generates the G2 description of the geometry.
Definition: MultiPatchModelGenerator.C:379
int periodic_y
If non-zero, make model periodic in y for given bases.
Definition: MultiPatchModelGenerator.h:117
int periodic_z
If non-zero, make model periodic in z for given bases.
Definition: MultiPatchModelGenerator.h:118
virtual bool createTopologySets(SIMinput &sim) const
Creates topology sets for geometry.
Definition: MultiPatchModelGenerator.C:531
size_t nz
Number of blocks in z.
Definition: MultiPatchModelGenerator.h:115
virtual bool createTopology(SIMinput &sim) const
Creates topology for geometry.
Definition: MultiPatchModelGenerator.C:470
virtual bool createGeometry(SIMinput &sim) const
Creates a geometry.
Definition: MultiPatchModelGenerator.C:461
int periodic_x
If non-zero, make model periodic in x for given bases.
Definition: MultiPatchModelGenerator.h:116
MultiPatchModelGenerator3D(const tinyxml2::XMLElement *geo)
The constructor initializes common members.
Definition: MultiPatchModelGenerator.C:364
virtual ~MultiPatchModelGenerator3D()
Empty destructor.
Definition: MultiPatchModelGenerator.h:99
Sub-class with functionality for model input and setup.
Definition: SIMinput.h:37