From 470411b5c9926b1879a4361ed0e8b50f7aa10698 Mon Sep 17 00:00:00 2001 From: Jonathan Lambrechts <jonathan.lambrechts@uclouvain.be> Date: Tue, 15 Nov 2011 14:46:46 +0000 Subject: [PATCH] dg : dgTerm pass 2 + simplification of dgResidual --- Solver/function.cpp | 3 +++ Solver/function.h | 7 ++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/Solver/function.cpp b/Solver/function.cpp index 0efc3a365a..1cb6c51bfb 100644 --- a/Solver/function.cpp +++ b/Solver/function.cpp @@ -343,6 +343,9 @@ void dataCacheMap::setNbEvaluationPoints(int nbEvaluationPoints) for(std::list<dataCacheMap*>::iterator it = _children.begin(); it != _children.end(); it++) { (*it)->setNbEvaluationPoints(nbEvaluationPoints); } + for(std::vector<dataCacheMap*>::iterator it = _secondaryCaches.begin(); it != _secondaryCaches.end(); it++) { + (*it)->setNbEvaluationPoints(nbEvaluationPoints); + } if (_nbEvaluationPoints == nbEvaluationPoints) { for(std::set<dataCacheDouble*>::iterator it = _allDataCaches.begin(); it != _allDataCaches.end(); it++) (*it)->_valid = false; diff --git a/Solver/function.h b/Solver/function.h index 85b05bae7d..400076189c 100644 --- a/Solver/function.h +++ b/Solver/function.h @@ -204,7 +204,6 @@ class dataCacheDouble { class dataCacheMap { const function *_functionSolution, *_functionSolutionGradient, *_functionCoordinates, *_containerSolution, *_containerSolutionGradient; //handle function solution and funciton solution gradient - //we should get rid of them const function * _translate (const function *) const; public: dataCacheMap *_parent; @@ -269,6 +268,9 @@ class dataCacheMap { inline void setSolutionFunction(const function *functionSolution, const function *functionSolutionGradient) { _functionSolution = functionSolution; _functionSolutionGradient = functionSolutionGradient; + for(std::vector<dataCacheMap*>::iterator it = _secondaryCaches.begin(); it != _secondaryCaches.end(); it++) { + (*it)->setSolutionFunction(functionSolution, functionSolutionGradient); + } } inline void setReferenceSolutionFunction(const function *functionSolution, const function *functionSolutionGradient) { _containerSolution = functionSolution; @@ -276,6 +278,9 @@ class dataCacheMap { for(std::list<dataCacheMap*>::iterator it = _children.begin(); it != _children.end(); it++) { (*it)->setReferenceSolutionFunction(functionSolution, functionSolutionGradient); } + for(std::vector<dataCacheMap*>::iterator it = _secondaryCaches.begin(); it != _secondaryCaches.end(); it++) { + (*it)->setReferenceSolutionFunction(functionSolution, functionSolutionGradient); + } } void setNbEvaluationPoints(int nbEvaluationPoints); inline int getNbEvaluationPoints() { return _nbEvaluationPoints; } -- GitLab