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
321 template<
class T1,
class T2,
unsigned Dim>
334 typedef StencilElem<A,Op_t> Elem_t;
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 >
550 template <
class T,
class MFLOAT >
555 template <
class T,
class MFLOAT >
560 template <
class T,
class MFLOAT >
567 template <
class T,
class MFLOAT >
572 template <
class T,
class MFLOAT >
577 template <
class T,
class MFLOAT >
584 template <
class T,
class MFLOAT >
589 template <
class T,
class MFLOAT >
594 template <
class T,
class MFLOAT >
601 template <
class T,
class MFLOAT >
606 template <
class T,
class MFLOAT >
611 template <
class T,
class MFLOAT >
618 template <
class T,
class MFLOAT >
623 template <
class T,
class MFLOAT >
628 template <
class T,
class MFLOAT >
635 template <
class T,
class MFLOAT >
640 template <
class T,
class MFLOAT >
645 template <
class T,
class MFLOAT >
654 template <
class T,
class MFLOAT >
659 template <
class T,
class MFLOAT >
664 template <
class T,
class MFLOAT >
671 template <
class T,
class MFLOAT >
676 template <
class T,
class MFLOAT >
681 template <
class T,
class MFLOAT >
689 template <
class T,
class MFLOAT >
694 template <
class T,
class MFLOAT >
699 template <
class T,
class MFLOAT >
706 template <
class T,
class MFLOAT >
711 template <
class T,
class MFLOAT >
716 template <
class T,
class MFLOAT >
723 template <
class T,
class MFLOAT >
728 template <
class T,
class MFLOAT >
733 template <
class T,
class MFLOAT >
740 template <
class T,
class MFLOAT >
745 template <
class T,
class MFLOAT >
750 template <
class T,
class MFLOAT >
759 template <
class T1,
class T2,
class MFLOAT >
762 Field<T2,1U,Cartesian<1U,MFLOAT>,
Cell>& w,
763 Field<T1,1U,Cartesian<1U,MFLOAT>,
Vert>& r) ;
765 template <
class T1,
class T2,
class MFLOAT >
768 Field<T2,2U,Cartesian<2U,MFLOAT>,
Cell>& w,
769 Field<T1,2U,Cartesian<2U,MFLOAT>,
Vert>& r);
771 template <
class T1,
class T2,
class MFLOAT >
774 Field<T2,3U,Cartesian<3U,MFLOAT>,
Cell>& w,
775 Field<T1,3U,Cartesian<3U,MFLOAT>,
Vert>& r);
780 template <
class T1,
class T2,
class MFLOAT >
783 Field<T2,1U,Cartesian<1U,MFLOAT>,
Vert>& w,
784 Field<T1,1U,Cartesian<1U,MFLOAT>,
Cell>& r) ;
786 template <
class T1,
class T2,
class MFLOAT >
789 Field<T2,2U,Cartesian<2U,MFLOAT>,
Vert>& w,
790 Field<T1,2U,Cartesian<2U,MFLOAT>,
Cell>& r);
792 template <
class T1,
class T2,
class MFLOAT >
795 Field<T2,3U,Cartesian<3U,MFLOAT>,
Vert>& w,
796 Field<T1,3U,Cartesian<3U,MFLOAT>,
Cell>& r);
803 template <
class T1,
class MFLOAT >
806 Field<T1,1U,Cartesian<1U,MFLOAT>,
Vert>& r) ;
808 template <
class T1,
class MFLOAT >
811 Field<T1,2U,Cartesian<2U,MFLOAT>,
Vert>& r);
813 template <
class T1,
class MFLOAT >
816 Field<T1,3U,Cartesian<3U,MFLOAT>,
Vert>& r);
821 template <
class T1,
class MFLOAT >
824 Field<T1,1U,Cartesian<1U,MFLOAT>,
Cell>& r) ;
826 template <
class T1,
class MFLOAT >
829 Field<T1,2U,Cartesian<2U,MFLOAT>,
Cell>& r);
831 template <
class T1,
class MFLOAT >
834 Field<T1,3U,Cartesian<3U,MFLOAT>,
Cell>& r);
840 #endif // CARTESIAN_H
FieldLayout< Dim > * FlCell
void storeSpacingFields()
Vektor< MFLOAT, Dim > * getSurfaceNormals(const NDIndex< Dim > &) const
Field< Vektor< MFLOAT, Dim >, Dim, Cartesian< Dim, MFLOAT >, Cell > & getSurfaceNormalField(Field< Vektor< MFLOAT, Dim >, Dim, Cartesian< Dim, MFLOAT >, Cell > &, unsigned) const
Vektor< MFLOAT, Dim > getSurfaceNormal(const NDIndex< Dim > &, unsigned) const
std::map< int, MFLOAT > meshSpacing[Dim]
Field< Vektor< MFLOAT, Dim >, Dim, Cartesian< Dim, MFLOAT >, Cell > & getCellPositionField(Field< Vektor< MFLOAT, Dim >, Dim, Cartesian< Dim, MFLOAT >, Cell > &) const
Vektor< MFLOAT, Dim > getDeltaCell(const NDIndex< Dim > &) const
MeshBC_E * get_MeshBC() const
NDIndex< Dim > getCellContaining(const Vektor< MFLOAT, Dim > &x) const
NDIndex< Dim > getNearestVertex(const Vektor< MFLOAT, Dim > &) const
void initialize(const NDIndex< Dim > &ndi)
Field< Vektor< MFLOAT, Dim >, Dim, Cartesian< Dim, MFLOAT >, Vert > & getVertexPositionField(Field< Vektor< MFLOAT, Dim >, Dim, Cartesian< Dim, MFLOAT >, Vert > &) const
void set_meshSpacing(MFLOAT **const del)
BareField< Vektor< MFLOAT, Dim >, Dim > * CellSpacings
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 > get_origin() const
Vektor< MFLOAT, Dim > getVertexPosition(const NDIndex< Dim > &) const
Field< Vektor< MFLOAT, Dim >, Dim, Cartesian< Dim, MFLOAT >, Vert > & getDeltaCellField(Field< Vektor< MFLOAT, Dim >, Dim, Cartesian< Dim, MFLOAT >, Vert > &) const
Field< MFLOAT, Dim, Cartesian< Dim, MFLOAT >, Cell > & getCellVolumeField(Field< MFLOAT, Dim, Cartesian< Dim, MFLOAT >, Cell > &) const
std::map< int, MFLOAT > meshPosition[Dim]
Vektor< MFLOAT, Dim > Dvc[1<< Dim]
void print(std::ostream &)
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)
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
void getSurfaceNormalFields(Field< Vektor< MFLOAT, Dim >, Dim, Cartesian< Dim, MFLOAT >, Cell > **) const
void set_MeshBC(unsigned face, MeshBC_E meshBCType)
Vektor< MFLOAT, Dim > getDeltaVertex(const NDIndex< Dim > &) const
BareField< Vektor< MFLOAT, Dim >, Dim > * VertSpacings
FieldLayout< Dim > * FlVert
void set_origin(const Vektor< MFLOAT, Dim > &o)
std::string::iterator iterator
NDIndex< Dim > getVertexBelow(const Vektor< MFLOAT, Dim > &) const
MFLOAT getCellRangeVolume(const NDIndex< Dim > &) const
Vektor< MFLOAT, Dim > getCellPosition(const NDIndex< Dim > &) const
Vektor< MFLOAT, Dim > origin
double Div(double a, double b)
void updateMeshSpacingGuards(int face)
MFLOAT getCellVolume(const NDIndex< Dim > &) const
void get_meshSpacing(unsigned d, MFLOAT *spacings) const