From 9d05cafc4a2ba5dc87020e6554c959622b623f36 Mon Sep 17 00:00:00 2001 From: Jonathan Lambrechts <jonathan.lambrechts@uclouvain.be> Date: Thu, 10 Dec 2009 15:35:01 +0000 Subject: [PATCH] dg: correct Outside Boundary Condition --- Solver/TESTCASES/square.geo | 4 ++-- Solver/dgConservationLaw.cpp | 9 +++------ 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/Solver/TESTCASES/square.geo b/Solver/TESTCASES/square.geo index a214e082b0..59bee852b8 100644 --- a/Solver/TESTCASES/square.geo +++ b/Solver/TESTCASES/square.geo @@ -10,5 +10,5 @@ Line Loop(5) = {2, 3, 4, 1}; Plane Surface(6) = {5}; Physical Line("Border") = {1, 2, 3, 4}; Physical Surface("Inside") = {6}; -Transfinite Line {1, 2, 4, 3} = 2 Using Progression 1; -Transfinite Surface {6}; +//Transfinite Line {1, 2, 4, 3} = 2 Using Progression 1; +//Transfinite Surface {6}; diff --git a/Solver/dgConservationLaw.cpp b/Solver/dgConservationLaw.cpp index b977bc6007..d0fd5b45e0 100644 --- a/Solver/dgConservationLaw.cpp +++ b/Solver/dgConservationLaw.cpp @@ -4,28 +4,25 @@ class dgBoundaryConditionOutsideValue : public dgBoundaryCondition { dgConservationLaw &_claw; std::string _outsideValueFunctionName; class term : public dataCacheDouble { + dataCacheMap cacheMapRight; // new cacheMap to pass to the Riemann solver dataCacheDouble &solutionRight; dataCacheDouble &solutionLeft; dataCacheDouble &outsideValue; - dataCacheMap cacheMapRight; // new cacheMap to pass to the Riemann solver dataCacheDouble *riemannSolver; dgConservationLaw &_claw; public: term(dgConservationLaw &claw, dataCacheMap &cacheMapLeft,const std::string outsideValueFunctionName): + dataCacheDouble(cacheMapLeft.getNbEvaluationPoints(),claw.nbFields()), + cacheMapRight(cacheMapLeft.getNbEvaluationPoints()), solutionRight(cacheMapRight.provideData("Solution")), solutionLeft(cacheMapLeft.get("Solution",this)), outsideValue(cacheMapLeft.get(outsideValueFunctionName,this)), - cacheMapRight(cacheMapLeft.getNbEvaluationPoints()), _claw(claw) { riemannSolver=_claw.newRiemannSolver(cacheMapLeft,cacheMapRight); } void _eval() { - if(_value.size1()!=solutionLeft().size1()){ - //adjust sizes - _value = fullMatrix<double>(solutionLeft().size1(),_claw.nbFields()); - } solutionRight.set(outsideValue()); if(riemannSolver){ for(int i=0;i<_value.size1(); i++) -- GitLab