diff --git a/src/reducedmodeloptimizer.cpp b/src/reducedmodeloptimizer.cpp index 2f681dd..45fda4a 100644 --- a/src/reducedmodeloptimizer.cpp +++ b/src/reducedmodeloptimizer.cpp @@ -967,7 +967,8 @@ ReducedModelOptimizer::computeFullPatternMaxSimulationForces( std::array ReducedModelOptimizer::getFullPatternMaxSimulationForces( const std::vector &desiredBaseSimulationScenarioIndices, - const std::filesystem::path &intermediateResultsDirectoryPath) + const std::filesystem::path &intermediateResultsDirectoryPath, + const bool &recomputeForceMagnitudes) { std::array fullPatternSimulationScenarioMaxMagnitudes; //#ifdef POLYSCOPE_DEFINED @@ -978,7 +979,7 @@ ReducedModelOptimizer::getFullPatternMaxSimulationForces( .append(m_pFullPatternSimulationMesh->getLabel() + ".json")); const bool fullPatternScenarioMagnitudesExist = std::filesystem::exists( patternMaxForceMagnitudesFilePath); - if (fullPatternScenarioMagnitudesExist) { + if (fullPatternScenarioMagnitudesExist && !recomputeForceMagnitudes) { nlohmann::json json; std::ifstream ifs(patternMaxForceMagnitudesFilePath.string()); ifs >> json; @@ -1867,9 +1868,11 @@ void ReducedModelOptimizer::optimize( global.optimizationSettings = optimizationSettings; global.pFullPatternSimulationMesh = m_pFullPatternSimulationMesh; + constexpr bool recomputeForceMagnitudes = true; std::array fullPatternSimulationScenarioMaxMagnitudes = getFullPatternMaxSimulationForces(desiredBaseSimulationScenarioIndices, - intermediateResultsDirectoryPath); + intermediateResultsDirectoryPath, + recomputeForceMagnitudes); global.fullPatternSimulationJobs = createFullPatternSimulationJobs(m_pFullPatternSimulationMesh, fullPatternSimulationScenarioMaxMagnitudes); @@ -1916,7 +1919,7 @@ void ReducedModelOptimizer::optimize( .append(m_pFullPatternSimulationMesh->getLabel()) .append(pFullPatternSimulationJob->getLabel())); // .append(pFullPatternSimulationJob->getLabel() + ".json") - constexpr bool recomputeFullPatternResults = false; + constexpr bool recomputeFullPatternResults = true; SimulationResults fullPatternResults; if (!recomputeFullPatternResults && std::filesystem::exists(jobResultsDirectoryPath)) { fullPatternResults.load(std::filesystem::path(jobResultsDirectoryPath).append("Results"), diff --git a/src/reducedmodeloptimizer.hpp b/src/reducedmodeloptimizer.hpp index 7271256..d370b86 100644 --- a/src/reducedmodeloptimizer.hpp +++ b/src/reducedmodeloptimizer.hpp @@ -257,11 +257,6 @@ private: #ifdef DLIB_DEFINED static double objective(const dlib::matrix &x); #endif - std::array - getFullPatternMaxSimulationForces( - const std::vector - &desiredBaseSimulationScenarioIndices, - const std::filesystem::path &intermediateResultsDirectoryPath); void computeScenarioWeights(const std::vector &baseSimulationScenarios); std::array @@ -272,6 +267,12 @@ private: const std::shared_ptr &pMesh, const std::array &baseScenarioMaxForceMagnitudes) const; + std::array + getFullPatternMaxSimulationForces( + const std::vector + &desiredBaseSimulationScenarioIndices, + const std::filesystem::path &intermediateResultsDirectoryPath, + const bool &recomputeForceMagnitudes); }; inline std::function &pReducedPatternSimulationMesh)>