diff options
Diffstat (limited to 'src/refinement/grid2D.hh')
-rw-r--r-- | src/refinement/grid2D.hh | 44 |
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), |