26 template<
class T,
unsigned D>
class BareField;
27 template<
class T,
unsigned D,
class M,
class C>
class Field;
28 template <
unsigned Dim,
class MFLOAT>
class Cartesian;
29 template <
unsigned Dim,
class MFLOAT>
30 std::ostream& operator<<(std::ostream&, const Cartesian<Dim,MFLOAT>&);
32 template <
unsigned Dim,
class MFLOAT=
double>
174 unsigned vnodes1,
unsigned vnodes2,
175 bool recurse=
false,
int vnodes=-1);
177 unsigned vnodes1,
unsigned vnodes2,
unsigned vnodes3,
178 bool recurse=
false,
int vnodes=-1);
182 unsigned* vnodesPerDirection,
183 bool recurse=
false,
int vnodes=-1);
207 void print(std::ostream&);
271 template<
unsigned Dim,
class MFLOAT >
273 std::ostream& operator<<(std::ostream& out, const Cartesian<Dim,MFLOAT>& mesh)
284 #ifndef CARTESIAN_STENCIL_SETUP_H
324 template <
class T,
class MFLOAT >
329 template <
class T,
class MFLOAT >
334 template <
class T,
class MFLOAT >
341 template <
class T,
class MFLOAT >
346 template <
class T,
class MFLOAT >
351 template <
class T,
class MFLOAT >
359 template <
class T,
class MFLOAT >
364 template <
class T,
class MFLOAT >
369 template <
class T,
class MFLOAT >
376 template <
class T,
class MFLOAT >
381 template <
class T,
class MFLOAT >
386 template <
class T,
class MFLOAT >
393 template <
class T,
class MFLOAT >
398 template <
class T,
class MFLOAT >
403 template <
class T,
class MFLOAT >
410 template <
class T,
class MFLOAT >
415 template <
class T,
class MFLOAT >
420 template <
class T,
class MFLOAT >
427 template <
class T,
class MFLOAT >
432 template <
class T,
class MFLOAT >
437 template <
class T,
class MFLOAT >
444 template <
class T,
class MFLOAT >
449 template <
class T,
class MFLOAT >
454 template <
class T,
class MFLOAT >
463 template <
class T,
class MFLOAT >
468 template <
class T,
class MFLOAT >
473 template <
class T,
class MFLOAT >
480 template <
class T,
class MFLOAT >
485 template <
class T,
class MFLOAT >
490 template <
class T,
class MFLOAT >
498 template <
class T,
class MFLOAT >
503 template <
class T,
class MFLOAT >
508 template <
class T,
class MFLOAT >
515 template <
class T,
class MFLOAT >
520 template <
class T,
class MFLOAT >
525 template <
class T,
class MFLOAT >
532 template <
class T,
class MFLOAT >
537 template <
class T,
class MFLOAT >
542 template <
class T,
class MFLOAT >
549 template <
class T,
class MFLOAT >
554 template <
class T,
class MFLOAT >
559 template <
class T,
class MFLOAT >
568 template <
class T1,
class T2,
class MFLOAT >
571 Field<T2,1U,Cartesian<1U,MFLOAT>,
Cell>& w,
572 Field<T1,1U,Cartesian<1U,MFLOAT>,
Vert>& r) ;
574 template <
class T1,
class T2,
class MFLOAT >
577 Field<T2,2U,Cartesian<2U,MFLOAT>,
Cell>& w,
578 Field<T1,2U,Cartesian<2U,MFLOAT>,
Vert>& r);
580 template <
class T1,
class T2,
class MFLOAT >
583 Field<T2,3U,Cartesian<3U,MFLOAT>,
Cell>& w,
584 Field<T1,3U,Cartesian<3U,MFLOAT>,
Vert>& r);
589 template <
class T1,
class T2,
class MFLOAT >
592 Field<T2,1U,Cartesian<1U,MFLOAT>,
Vert>& w,
593 Field<T1,1U,Cartesian<1U,MFLOAT>,
Cell>& r) ;
595 template <
class T1,
class T2,
class MFLOAT >
598 Field<T2,2U,Cartesian<2U,MFLOAT>,
Vert>& w,
599 Field<T1,2U,Cartesian<2U,MFLOAT>,
Cell>& r);
601 template <
class T1,
class T2,
class MFLOAT >
604 Field<T2,3U,Cartesian<3U,MFLOAT>,
Vert>& w,
605 Field<T1,3U,Cartesian<3U,MFLOAT>,
Cell>& r);
612 template <
class T1,
class MFLOAT >
615 Field<T1,1U,Cartesian<1U,MFLOAT>,
Vert>& r) ;
617 template <
class T1,
class MFLOAT >
620 Field<T1,2U,Cartesian<2U,MFLOAT>,
Vert>& r);
622 template <
class T1,
class MFLOAT >
625 Field<T1,3U,Cartesian<3U,MFLOAT>,
Vert>& r);
630 template <
class T1,
class MFLOAT >
633 Field<T1,1U,Cartesian<1U,MFLOAT>,
Cell>& r) ;
635 template <
class T1,
class MFLOAT >
638 Field<T1,2U,Cartesian<2U,MFLOAT>,
Cell>& r);
640 template <
class T1,
class MFLOAT >
643 Field<T1,3U,Cartesian<3U,MFLOAT>,
Cell>& r);
649 #endif // CARTESIAN_H
MeshBC_E * get_MeshBC() const
void get_meshSpacing(unsigned d, MFLOAT *spacings) const
Vektor< MFLOAT, Dim > * getSurfaceNormals(const NDIndex< Dim > &) const
Vektor< MFLOAT, Dim > getCellPosition(const NDIndex< Dim > &) const
BareField< Vektor< MFLOAT, Dim >, Dim > * CellSpacings
Vektor< MFLOAT, Dim > getSurfaceNormal(const NDIndex< Dim > &, unsigned) const
Vektor< MFLOAT, Dim > origin
NDIndex< Dim > getVertexBelow(const Vektor< MFLOAT, Dim > &) const
Field< Vektor< MFLOAT, Dim >, Dim, Cartesian< Dim, MFLOAT >, Cell > & getCellPositionField(Field< Vektor< MFLOAT, Dim >, Dim, Cartesian< Dim, MFLOAT >, Cell > &) const
NDIndex< Dim > getCellContaining(const Vektor< MFLOAT, Dim > &x) const
BareField< Vektor< MFLOAT, Dim >, Dim > * VertSpacings
FieldLayout< Dim > * FlCell
Field< Vektor< MFLOAT, Dim >, Dim, Cartesian< Dim, MFLOAT >, Vert > & getVertexPositionField(Field< Vektor< MFLOAT, Dim >, Dim, Cartesian< Dim, MFLOAT >, Vert > &) const
void storeSpacingFields()
MFLOAT getCellVolume(const NDIndex< Dim > &) const
void set_MeshBC(unsigned face, MeshBC_E meshBCType)
Field< Vektor< MFLOAT, Dim >, Dim, Cartesian< Dim, MFLOAT >, Cell > & getSurfaceNormalField(Field< Vektor< MFLOAT, Dim >, Dim, Cartesian< Dim, MFLOAT >, Cell > &, unsigned) const
Vektor< MFLOAT, Dim > getDeltaCell(const NDIndex< Dim > &) const
void initialize(const NDIndex< Dim > &ndi)
Field< Vektor< T, 1U >, 1U, Cartesian< 1U, MFLOAT >, Cell > & Grad(Field< T, 1U, Cartesian< 1U, MFLOAT >, Vert > &x, Field< Vektor< T, 1U >, 1U, Cartesian< 1U, MFLOAT >, Cell > &r)
Vektor< MFLOAT, Dim > Dvc[1<< Dim]
Vektor< MFLOAT, Dim > get_origin() const
std::map< int, MFLOAT > meshPosition[Dim]
FieldLayout< Dim > * FlVert
Field< MFLOAT, Dim, Cartesian< Dim, MFLOAT >, Cell > & getCellVolumeField(Field< MFLOAT, Dim, Cartesian< Dim, MFLOAT >, Cell > &) const
void getSurfaceNormalFields(Field< Vektor< MFLOAT, Dim >, Dim, Cartesian< Dim, MFLOAT >, Cell > **) const
double Div(double a, double b)
void set_meshSpacing(MFLOAT **const del)
Vektor< MFLOAT, Dim > MeshVektor_t
MFLOAT getVertRangeVolume(const NDIndex< Dim > &) const
Field< Vektor< MFLOAT, Dim >, Dim, Cartesian< Dim, MFLOAT >, Cell > & getDeltaVertexField(Field< Vektor< MFLOAT, Dim >, Dim, Cartesian< Dim, MFLOAT >, Cell > &) const
Field< T1, 1U, Cartesian< 1U, MFLOAT >, Vert > & Average(Field< T1, 1U, Cartesian< 1U, MFLOAT >, Cell > &x, Field< T2, 1U, Cartesian< 1U, MFLOAT >, Cell > &w, Field< T1, 1U, Cartesian< 1U, MFLOAT >, Vert > &r)
void set_origin(const Vektor< MFLOAT, Dim > &o)
MFLOAT getCellRangeVolume(const NDIndex< Dim > &) const
Field< Vektor< MFLOAT, Dim >, Dim, Cartesian< Dim, MFLOAT >, Vert > & getDeltaCellField(Field< Vektor< MFLOAT, Dim >, Dim, Cartesian< Dim, MFLOAT >, Vert > &) const
Vektor< MFLOAT, Dim > getDeltaVertex(const NDIndex< Dim > &) const
void print(std::ostream &)
std::map< int, MFLOAT > meshSpacing[Dim]
void updateMeshSpacingGuards(int face)
Vektor< MFLOAT, Dim > getVertexPosition(const NDIndex< Dim > &) const
NDIndex< Dim > getNearestVertex(const Vektor< MFLOAT, Dim > &) const