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
308 template <
class T,
class MFLOAT >
313 template <
class T,
class MFLOAT >
318 template <
class T,
class MFLOAT >
325 template <
class T,
class MFLOAT >
330 template <
class T,
class MFLOAT >
335 template <
class T,
class MFLOAT >
342 template <
class T,
class MFLOAT >
347 template <
class T,
class MFLOAT >
352 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 >
428 template <
class T,
class MFLOAT >
433 template <
class T,
class MFLOAT >
440 template <
class T,
class MFLOAT >
446 template <
class T,
class MFLOAT >
453 template <
class T,
class MFLOAT >
458 template <
class T,
class MFLOAT >
463 template <
class T,
class MFLOAT >
470 template <
class T,
class MFLOAT >
475 template <
class T,
class MFLOAT >
480 template <
class T,
class MFLOAT >
487 template <
class T,
class MFLOAT >
492 template <
class T,
class MFLOAT >
497 template <
class T,
class MFLOAT >
504 template <
class T,
class MFLOAT >
509 template <
class T,
class MFLOAT >
514 template <
class T,
class MFLOAT >
521 template <
class T,
class MFLOAT >
526 template <
class T,
class MFLOAT >
531 template <
class T,
class MFLOAT >
538 template <
class T,
class MFLOAT >
543 template <
class T,
class MFLOAT >
548 template <
class T,
class MFLOAT >
556 template <
class T,
class MFLOAT >
561 template <
class T,
class MFLOAT >
568 template <
class T,
class MFLOAT >
573 template <
class T,
class MFLOAT >
578 template <
class T,
class MFLOAT >
588 template <
class T1,
class T2,
class MFLOAT >
591 Field<T2,1U,UniformCartesian<1U,MFLOAT>,
Cell>& w,
592 Field<T1,1U,UniformCartesian<1U,MFLOAT>,
Vert>& r) ;
594 template <
class T1,
class T2,
class MFLOAT >
597 Field<T2,2U,UniformCartesian<2U,MFLOAT>,
Cell>& w,
598 Field<T1,2U,UniformCartesian<2U,MFLOAT>,
Vert>& r);
600 template <
class T1,
class T2,
class MFLOAT >
603 Field<T2,3U,UniformCartesian<3U,MFLOAT>,
Cell>& w,
604 Field<T1,3U,UniformCartesian<3U,MFLOAT>,
Vert>& r);
609 template <
class T1,
class T2,
class MFLOAT >
612 Field<T2,1U,UniformCartesian<1U,MFLOAT>,
Vert>& w,
613 Field<T1,1U,UniformCartesian<1U,MFLOAT>,
Cell>& r) ;
615 template <
class T1,
class T2,
class MFLOAT >
618 Field<T2,2U,UniformCartesian<2U,MFLOAT>,
Vert>& w,
619 Field<T1,2U,UniformCartesian<2U,MFLOAT>,
Cell>& r);
621 template <
class T1,
class T2,
class MFLOAT >
624 Field<T2,3U,UniformCartesian<3U,MFLOAT>,
Vert>& w,
625 Field<T1,3U,UniformCartesian<3U,MFLOAT>,
Cell>& r);
632 template <
class T1,
class MFLOAT >
635 Field<T1,1U,UniformCartesian<1U,MFLOAT>,
Vert>& r) ;
637 template <
class T1,
class MFLOAT >
640 Field<T1,2U,UniformCartesian<2U,MFLOAT>,
Vert>& r);
642 template <
class T1,
class MFLOAT >
645 Field<T1,3U,UniformCartesian<3U,MFLOAT>,
Vert>& r);
650 template <
class T1,
class MFLOAT >
653 Field<T1,1U,UniformCartesian<1U,MFLOAT>,
Cell>& r) ;
655 template <
class T1,
class MFLOAT >
658 Field<T1,2U,UniformCartesian<2U,MFLOAT>,
Cell>& r);
660 template <
class T1,
class MFLOAT >
663 Field<T1,3U,UniformCartesian<3U,MFLOAT>,
Cell>& r);
670 #endif // UNIFORM_CARTESIAN_H
MFLOAT getCellVolume(const NDIndex< Dim > &) const
BareField< Vektor< MFLOAT, Dim >, Dim > * VertSpacings
NDIndex< Dim > getNearestVertex(const Vektor< MFLOAT, Dim > &) const
void set_meshSpacing(MFLOAT *const del)
Field< Vektor< MFLOAT, Dim >, Dim, UniformCartesian< Dim, MFLOAT >, Cell > & getDeltaVertexField(Field< Vektor< MFLOAT, Dim >, Dim, UniformCartesian< Dim, MFLOAT >, Cell > &) const
Field< Vektor< MFLOAT, Dim >, Dim, UniformCartesian< Dim, MFLOAT >, Cell > & getCellPositionField(Field< Vektor< MFLOAT, Dim >, Dim, UniformCartesian< Dim, MFLOAT >, Cell > &) const
Vektor< MFLOAT, Dim > MeshVektor_t
NDIndex< Dim > getCellContaining(const Vektor< MFLOAT, Dim > &x) const
Vektor< MFLOAT, Dim > get_origin() const
Vektor< MFLOAT, Dim > getDeltaVertex(const NDIndex< Dim > &) const
Field< Vektor< MFLOAT, Dim >, Dim, UniformCartesian< Dim, MFLOAT >, Vert > & getVertexPositionField(Field< Vektor< MFLOAT, Dim >, Dim, UniformCartesian< Dim, MFLOAT >, Vert > &) const
Vektor< MFLOAT, Dim > getCellPosition(const NDIndex< Dim > &) const
void print(std::ostream &)
void getSurfaceNormalFields(Field< Vektor< MFLOAT, Dim >, Dim, UniformCartesian< Dim, MFLOAT >, Cell > **) 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)
MFLOAT get_volume() const
void set_origin(const Vektor< MFLOAT, Dim > &o)
void storeSpacingFields()
Field< Vektor< MFLOAT, Dim >, Dim, UniformCartesian< Dim, MFLOAT >, Cell > & getSurfaceNormalField(Field< Vektor< MFLOAT, Dim >, Dim, UniformCartesian< Dim, MFLOAT >, Cell > &, unsigned) const
double Div(double a, double b)
NDIndex< Dim > getVertexBelow(const Vektor< MFLOAT, Dim > &) const
Vektor< MFLOAT, Dim > getDeltaCell(const NDIndex< Dim > &) const
MFLOAT getVertRangeVolume(const NDIndex< Dim > &) const
FieldLayout< Dim > * FlCell
Vektor< MFLOAT, Dim > origin
Field< Vektor< MFLOAT, Dim >, Dim, UniformCartesian< Dim, MFLOAT >, Vert > & getDeltaCellField(Field< Vektor< MFLOAT, Dim >, Dim, UniformCartesian< Dim, MFLOAT >, Vert > &) 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.
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)
MFLOAT get_meshSpacing(unsigned d) const
Vektor< MFLOAT, Dim > getSurfaceNormal(const NDIndex< Dim > &, unsigned) const
void initialize(const NDIndex< Dim > &ndi)
BareField< Vektor< MFLOAT, Dim >, Dim > * CellSpacings
FieldLayout< Dim > * FlVert
MFLOAT getCellRangeVolume(const NDIndex< Dim > &) const
Field< MFLOAT, Dim, UniformCartesian< Dim, MFLOAT >, Cell > & getCellVolumeField(Field< MFLOAT, Dim, UniformCartesian< Dim, MFLOAT >, Cell > &) const
Vektor< MFLOAT, Dim > * getSurfaceNormals(const NDIndex< Dim > &) const
Vektor< MFLOAT, Dim > getVertexPosition(const NDIndex< Dim > &) const
Vektor< MFLOAT, Dim > Dvc[1<< Dim]