11 #ifndef UNIFORM_CARTESIAN_H
12 #define UNIFORM_CARTESIAN_H
24 template<
class T,
unsigned D>
class BareField;
25 template<
class T,
unsigned D,
class M,
class C>
class Field;
27 template <
unsigned Dim,
class MFLOAT>
28 std::ostream& operator<<(std::ostream&, const UniformCartesian<Dim,MFLOAT>&);
29 template <
unsigned Dim,
class MFLOAT>
30 Inform& operator<<(Inform&, const UniformCartesian<Dim,MFLOAT>&);
32 template <
unsigned Dim,
class MFLOAT=
double>
151 unsigned vnodes1,
unsigned vnodes2,
152 bool recurse=
false,
int vnodes=-1);
154 unsigned vnodes1,
unsigned vnodes2,
unsigned vnodes3,
155 bool recurse=
false,
int vnodes=-1);
159 unsigned* vnodesPerDirection,
160 bool recurse=
false,
int vnodes=-1);
177 void print(std::ostream&);
244 template<
unsigned Dim,
class MFLOAT >
246 std::ostream& operator<<(std::ostream& out, const UniformCartesian<Dim,MFLOAT>& mesh)
254 template<
unsigned Dim,
class MFLOAT >
256 Inform& operator<<(Inform& out, const UniformCartesian<Dim,MFLOAT>& mesh)
268 #ifndef CARTESIAN_STENCIL_SETUP_H
304 template<
class T1,
class T2,
unsigned Dim>
317 typedef StencilElem<A,Op_t> Elem_t;
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 >
566 template <
class T,
class MFLOAT >
571 template <
class T,
class MFLOAT >
576 template <
class T,
class MFLOAT >
583 template <
class T,
class MFLOAT >
588 template <
class T,
class MFLOAT >
593 template <
class T,
class MFLOAT >
600 template <
class T,
class MFLOAT >
605 template <
class T,
class MFLOAT >
610 template <
class T,
class MFLOAT >
618 template <
class T,
class MFLOAT >
623 template <
class T,
class MFLOAT >
630 template <
class T,
class MFLOAT >
636 template <
class T,
class MFLOAT >
643 template <
class T,
class MFLOAT >
648 template <
class T,
class MFLOAT >
653 template <
class T,
class MFLOAT >
660 template <
class T,
class MFLOAT >
665 template <
class T,
class MFLOAT >
670 template <
class T,
class MFLOAT >
677 template <
class T,
class MFLOAT >
682 template <
class T,
class MFLOAT >
687 template <
class T,
class MFLOAT >
694 template <
class T,
class MFLOAT >
699 template <
class T,
class MFLOAT >
704 template <
class T,
class MFLOAT >
711 template <
class T,
class MFLOAT >
716 template <
class T,
class MFLOAT >
721 template <
class T,
class MFLOAT >
728 template <
class T,
class MFLOAT >
733 template <
class T,
class MFLOAT >
738 template <
class T,
class MFLOAT >
746 template <
class T,
class MFLOAT >
751 template <
class T,
class MFLOAT >
758 template <
class T,
class MFLOAT >
763 template <
class T,
class MFLOAT >
768 template <
class T,
class MFLOAT >
778 template <
class T1,
class T2,
class MFLOAT >
781 Field<T2,1U,UniformCartesian<1U,MFLOAT>,
Cell>& w,
782 Field<T1,1U,UniformCartesian<1U,MFLOAT>,
Vert>& r) ;
784 template <
class T1,
class T2,
class MFLOAT >
787 Field<T2,2U,UniformCartesian<2U,MFLOAT>,
Cell>& w,
788 Field<T1,2U,UniformCartesian<2U,MFLOAT>,
Vert>& r);
790 template <
class T1,
class T2,
class MFLOAT >
793 Field<T2,3U,UniformCartesian<3U,MFLOAT>,
Cell>& w,
794 Field<T1,3U,UniformCartesian<3U,MFLOAT>,
Vert>& r);
799 template <
class T1,
class T2,
class MFLOAT >
802 Field<T2,1U,UniformCartesian<1U,MFLOAT>,
Vert>& w,
803 Field<T1,1U,UniformCartesian<1U,MFLOAT>,
Cell>& r) ;
805 template <
class T1,
class T2,
class MFLOAT >
808 Field<T2,2U,UniformCartesian<2U,MFLOAT>,
Vert>& w,
809 Field<T1,2U,UniformCartesian<2U,MFLOAT>,
Cell>& r);
811 template <
class T1,
class T2,
class MFLOAT >
814 Field<T2,3U,UniformCartesian<3U,MFLOAT>,
Vert>& w,
815 Field<T1,3U,UniformCartesian<3U,MFLOAT>,
Cell>& r);
822 template <
class T1,
class MFLOAT >
825 Field<T1,1U,UniformCartesian<1U,MFLOAT>,
Vert>& r) ;
827 template <
class T1,
class MFLOAT >
830 Field<T1,2U,UniformCartesian<2U,MFLOAT>,
Vert>& r);
832 template <
class T1,
class MFLOAT >
835 Field<T1,3U,UniformCartesian<3U,MFLOAT>,
Vert>& r);
840 template <
class T1,
class MFLOAT >
843 Field<T1,1U,UniformCartesian<1U,MFLOAT>,
Cell>& r) ;
845 template <
class T1,
class MFLOAT >
848 Field<T1,2U,UniformCartesian<2U,MFLOAT>,
Cell>& r);
850 template <
class T1,
class MFLOAT >
853 Field<T1,3U,UniformCartesian<3U,MFLOAT>,
Cell>& r);
860 #endif // UNIFORM_CARTESIAN_H
Field< Vektor< MFLOAT, Dim >, Dim, UniformCartesian< Dim, MFLOAT >, Cell > & getCellPositionField(Field< Vektor< MFLOAT, Dim >, Dim, UniformCartesian< Dim, MFLOAT >, Cell > &) const
void print(std::ostream &)
FieldLayout< Dim > * FlCell
Vektor< MFLOAT, Dim > getVertexPosition(const NDIndex< Dim > &) const
Vektor< MFLOAT, Dim > getDeltaCell(const NDIndex< Dim > &) const
Vektor< MFLOAT, Dim > get_origin() const
void storeSpacingFields()
Vektor< MFLOAT, Dim > MeshVektor_t
BareField< Vektor< MFLOAT, Dim >, Dim > * CellSpacings
Vektor< MFLOAT, Dim > getSurfaceNormal(const NDIndex< Dim > &, unsigned) const
MFLOAT getVertRangeVolume(const NDIndex< Dim > &) const
Field< Vektor< MFLOAT, Dim >, Dim, UniformCartesian< Dim, MFLOAT >, Cell > & getSurfaceNormalField(Field< Vektor< MFLOAT, Dim >, Dim, UniformCartesian< Dim, MFLOAT >, Cell > &, unsigned) const
MFLOAT getCellRangeVolume(const NDIndex< Dim > &) const
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)
Field< Vektor< MFLOAT, Dim >, Dim, UniformCartesian< Dim, MFLOAT >, Vert > & getVertexPositionField(Field< Vektor< MFLOAT, Dim >, Dim, UniformCartesian< Dim, MFLOAT >, Vert > &) const
Vektor< MFLOAT, Dim > origin
MFLOAT get_volume() const
Vektor< MFLOAT, Dim > getCellPosition(const NDIndex< Dim > &) const
void getSurfaceNormalFields(Field< Vektor< MFLOAT, Dim >, Dim, UniformCartesian< Dim, MFLOAT >, Cell > **) const
FieldLayout< Dim > * FlVert
Vektor< MFLOAT, Dim > * getSurfaceNormals(const NDIndex< Dim > &) const
void set_origin(const Vektor< MFLOAT, Dim > &o)
NDIndex< Dim > getCellContaining(const Vektor< MFLOAT, Dim > &x) const
void initialize(const NDIndex< Dim > &ndi)
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)
Field< MFLOAT, Dim, UniformCartesian< Dim, MFLOAT >, Cell > & getCellVolumeField(Field< MFLOAT, Dim, UniformCartesian< Dim, MFLOAT >, Cell > &) const
Field< Vektor< T, 3U >, 3U, UniformCartesian< 3U, MFLOAT >, Cell > & Grad1Ord(Field< T, 3U, UniformCartesian< 3U, MFLOAT >, Vert > &x, Field< Vektor< T, 3U >, 3U, UniformCartesian< 3U, MFLOAT >, Cell > &r)
Old Grad operator.
MFLOAT get_meshSpacing(unsigned d) const
NDIndex< Dim > getNearestVertex(const Vektor< MFLOAT, Dim > &) const
Vektor< MFLOAT, Dim > Dvc[1<< Dim]
BareField< Vektor< MFLOAT, Dim >, Dim > * VertSpacings
std::string::iterator iterator
void set_meshSpacing(MFLOAT *const del)
Field< Vektor< MFLOAT, Dim >, Dim, UniformCartesian< Dim, MFLOAT >, Vert > & getDeltaCellField(Field< Vektor< MFLOAT, Dim >, Dim, UniformCartesian< Dim, MFLOAT >, Vert > &) const
Field< Vektor< MFLOAT, Dim >, Dim, UniformCartesian< Dim, MFLOAT >, Cell > & getDeltaVertexField(Field< Vektor< MFLOAT, Dim >, Dim, UniformCartesian< Dim, MFLOAT >, Cell > &) const
double Div(double a, double b)
MFLOAT getCellVolume(const NDIndex< Dim > &) const
NDIndex< Dim > getVertexBelow(const Vektor< MFLOAT, Dim > &) const
Vektor< MFLOAT, Dim > getDeltaVertex(const NDIndex< Dim > &) const