From 5d8d76e0c1079950624910b449fc9e7b1cf2ff5c Mon Sep 17 00:00:00 2001 From: iasonmanolas Date: Fri, 3 Dec 2021 12:20:37 +0200 Subject: [PATCH] Refactoring --- src/main.cpp | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 40162f0..7097a73 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -44,8 +44,8 @@ int main(int argc, char *argv[]) { ReducedPatternOptimization::xRange beamI2{"I2", 0.001, 1000}; ReducedPatternOptimization::xRange beamI3{"I3", 0.001, 1000}; ReducedPatternOptimization::xRange beamJ{"J", 0.001, 1000}; - ReducedPatternOptimization::xRange innerHexagonSize{"HexSize", 0.05, 0.95}; - ReducedPatternOptimization::xRange innerHexagonAngle{"HexAngle", -30.0, 30.0}; + ReducedPatternOptimization::xRange innerHexagonSize{"R", 0.05, 0.95}; + ReducedPatternOptimization::xRange innerHexagonAngle{"Theta", -30.0, 30.0}; ReducedPatternOptimization::Settings settings_optimization; settings_optimization.xRanges = {/*beamE,*/ beamA, beamI2, beamI3, beamJ, innerHexagonSize, innerHexagonAngle}; @@ -56,12 +56,12 @@ int main(int argc, char *argv[]) { settings_optimization.normalizationStrategy = ReducedPatternOptimization::Settings::NormalizationStrategy::Epsilon; settings_optimization.splitGeometryMaterialOptimization = false; - settings_optimization.translationNormalizationParameter = 1e-3; + settings_optimization.translationNormalizationParameter = 3e-4; settings_optimization.rotationNormalizationParameter = vcg::math::ToRad(3.0); // settings_optimization.translationNormalizationParameter = 1e-15; // settings_optimization.rotationNormalizationParameter = vcg::math::ToRad(1e-15); - // settings_optimization.solverAccuracy = 1e-3; - settings_optimization.solverAccuracy = 1e-1; + settings_optimization.solverAccuracy = 1e-3; + // settings_optimization.solverAccuracy = 1e-1; settings_optimization.objectiveWeights.translational = std::atof(argv[4]); settings_optimization.objectiveWeights.rotational = 2 - std::atof(argv[4]); @@ -72,7 +72,7 @@ int main(int argc, char *argv[]) { xConcatNames.pop_back(); // Optimize pairthere - const std::string pairName = fullPattern.getLabel() + "@" + reducedPattern.getLabel(); + const std::string pairName = fullPattern.getLabel(); // + "@" + reducedPattern.getLabel(); const std::string optimizationName = pairName + "(" + std::to_string(settings_optimization.numberOfFunctionCalls) + "_" @@ -128,17 +128,21 @@ int main(int argc, char *argv[]) { if (optimizationResults.wasSuccessful) { resultsOutputDir = convergedJobsDirPath.string(); + csvFile csv_resultsLocalFile(std::filesystem::path(resultsOutputDir).append("results.csv"), + true); csvFile csv_results({}, false); + std::vector csvVector{&csv_resultsLocalFile, &csv_results}; csv_results << "Name"; - optimizationResults.writeHeaderTo(csv_results); + csv_resultsLocalFile << "Name"; + optimizationResults.writeHeaderTo(csvVector); settings_optimization.writeHeaderTo(csv_results); csv_results << endrow; csv_results << std::to_string(fullPattern.EN()) + "#" + pairName; - optimizationResults.writeResultsTo(csv_results); + optimizationResults.writeResultsTo(csvVector); settings_optimization.writeSettingsTo(csv_results); csv_results << endrow; } else { - resultsOutputDir = crashedJobsDirPath.string(); + // resultsOutputDir = crashedJobsDirPath.string(); return 1; } optimizationResults.save(resultsOutputDir, true);