From e1626f2eb19215482aa6f17966f5e54e3a0c4faa Mon Sep 17 00:00:00 2001 From: Adrian Kummerlaender Date: Tue, 8 Jan 2019 14:44:44 +0100 Subject: Further indicatorize geometry setup Grid refinement is at its easiest when discrete materials are set using analytical - i.e. resolution independent - indicators. --- src/refinement/grid2D.h | 2 ++ src/refinement/grid2D.hh | 10 +++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/refinement/grid2D.h b/src/refinement/grid2D.h index fda38ed..6d3579c 100644 --- a/src/refinement/grid2D.h +++ b/src/refinement/grid2D.h @@ -76,6 +76,8 @@ public: CoarseCoupler2D<T,DESCRIPTOR>& addCoarseCoupling( Grid2D<T,DESCRIPTOR>& fineGrid, Vector<T,2> origin, Vector<T,2> extend); + Vector<T,2> alignToGrid(Vector<T,2> physR) const; + Grid2D<T,DESCRIPTOR>& refine(IndicatorF2D<T>& domainF); Grid2D<T,DESCRIPTOR>& refine(Vector<T,2> origin, Vector<T,2> extend); diff --git a/src/refinement/grid2D.hh b/src/refinement/grid2D.hh index 86c3102..d609746 100644 --- a/src/refinement/grid2D.hh +++ b/src/refinement/grid2D.hh @@ -169,12 +169,20 @@ Grid2D<T,DESCRIPTOR>& Grid2D<T,DESCRIPTOR>::refine(IndicatorF2D<T>& domainF) new Grid2D<T,DESCRIPTOR>( domainF, 2*getConverter().getResolution(), - 2.0*getConverter().getLatticeRelaxationTime() - 0.5, + 2*getConverter().getLatticeRelaxationTime() - 0.5, getConverter().getReynoldsNumber() )); return *_fineGrids.back(); } +template <typename T, template<typename> class DESCRIPTOR> +Vector<T,2> Grid2D<T,DESCRIPTOR>::alignToGrid(Vector<T,2> physR) const +{ + Vector<int,3> latticeR{}; + _cuboids->getLatticeR(physR, latticeR); + return _cuboids->getPhysR(latticeR.toStdVector()); +} + template <typename T, template<typename> class DESCRIPTOR> Grid2D<T,DESCRIPTOR>& Grid2D<T,DESCRIPTOR>::refine(Vector<T,2> origin, Vector<T,2> extend) { -- cgit v1.2.3