summaryrefslogtreecommitdiff
path: root/src/refinement/grid2D.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/refinement/grid2D.hh')
-rw-r--r--src/refinement/grid2D.hh44
1 files changed, 42 insertions, 2 deletions
diff --git a/src/refinement/grid2D.hh b/src/refinement/grid2D.hh
index 02fe351..2bf2f7f 100644
--- a/src/refinement/grid2D.hh
+++ b/src/refinement/grid2D.hh
@@ -34,7 +34,11 @@ namespace olb {
template <typename T, template<typename> class DESCRIPTOR>
-Grid2D<T,DESCRIPTOR>::Grid2D(FunctorPtr<IndicatorF2D<T>>&& domainF, int resolution, T tau, int re):
+Grid2D<T,DESCRIPTOR>::Grid2D(
+ FunctorPtr<IndicatorF2D<T>>&& domainF,
+ int resolution,
+ RelaxationTime<T> tau,
+ int re):
_domainF(std::move(domainF)),
_converter(new UnitConverterFromResolutionAndRelaxationTime<T,DESCRIPTOR>(
resolution, // resolution: number of voxels per charPhysL
@@ -66,6 +70,42 @@ Grid2D<T,DESCRIPTOR>::Grid2D(FunctorPtr<IndicatorF2D<T>>&& domainF, int resoluti
}
template <typename T, template<typename> class DESCRIPTOR>
+Grid2D<T,DESCRIPTOR>::Grid2D(
+ FunctorPtr<IndicatorF2D<T>>&& domainF,
+ int resolution,
+ LatticeVelocity<T> velocity,
+ int re):
+ _domainF(std::move(domainF)),
+ _converter(new UnitConverterFromResolutionAndLatticeVelocity<T,DESCRIPTOR>(
+ resolution, // resolution: number of voxels per charPhysL
+ velocity, // maxLatticeVelocity
+ T{1}, // charPhysLength: reference length of simulation geometry
+ T{1}, // charPhysVelocity: maximal/highest expected velocity during simulation in __m / s__
+ T{1./re}, // physViscosity: physical kinematic viscosity in __m^2 / s__
+ T{1}, // physDensity: physical density in __kg / m^3__
+ T{1})),
+ _cuboids(new CuboidGeometry2D<T>(
+ *_domainF,
+ _converter->getConversionFactorLength(),
+#ifdef PARALLEL_MODE_MPI
+ singleton::mpi().getSize()
+#else
+ 1
+#endif
+ )),
+ _balancer(new HeuristicLoadBalancer<T>(
+ *_cuboids)),
+ _geometry(new SuperGeometry2D<T>(
+ *_cuboids,
+ *_balancer,
+ 2)),
+ _lattice(new SuperLattice2D<T,DESCRIPTOR>(
+ *_geometry))
+{
+ _converter->print();
+}
+
+template <typename T, template<typename> class DESCRIPTOR>
UnitConverter<T,DESCRIPTOR>& Grid2D<T,DESCRIPTOR>::getConverter()
{
return *_converter;
@@ -209,7 +249,7 @@ RefiningGrid2D<T,DESCRIPTOR>::RefiningGrid2D(
Grid2D<T,DESCRIPTOR>(
std::unique_ptr<IndicatorF2D<T>>(new IndicatorCuboid2D<T>(extend, origin)),
2*parentGrid.getConverter().getResolution(),
- 2*parentGrid.getConverter().getLatticeRelaxationTime() - 0.5,
+ RelaxationTime<T>(2*parentGrid.getConverter().getLatticeRelaxationTime() - 0.5),
parentGrid.getConverter().getReynoldsNumber()),
_origin(origin),
_extend(extend),