Renamed ReducedPatternOptimization to ReducedModelOptimization
This commit is contained in:
parent
7aa41c87d8
commit
534efb98bb
|
|
@ -22,7 +22,7 @@
|
||||||
#endif
|
#endif
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
// ReducedPatternOptimization::Results optResults;
|
// ReducedModelOptimization::Results optResults;
|
||||||
// optResults.load("/home/iason/Desktop/dlib_ensmallen_comparison/TestSets/"
|
// optResults.load("/home/iason/Desktop/dlib_ensmallen_comparison/TestSets/"
|
||||||
// "singlePattern_dlib_firstSubmission/12@single_reduced(100000_1.20)");
|
// "singlePattern_dlib_firstSubmission/12@single_reduced(100000_1.20)");
|
||||||
// optResults.load("/home/iason/Coding/Projects/Approximating shapes with flat "
|
// optResults.load("/home/iason/Coding/Projects/Approximating shapes with flat "
|
||||||
|
|
@ -66,7 +66,7 @@ int main(int argc, char *argv[])
|
||||||
std::cerr << "Input optimization settings file does not exist:"
|
std::cerr << "Input optimization settings file does not exist:"
|
||||||
<< optimizationSettingsFilePath << std::endl;
|
<< optimizationSettingsFilePath << std::endl;
|
||||||
}
|
}
|
||||||
ReducedPatternOptimization::Settings settings_optimization;
|
ReducedModelOptimization::Settings settings_optimization;
|
||||||
#ifdef POLYSCOPE_DEFINED
|
#ifdef POLYSCOPE_DEFINED
|
||||||
// settings_optimization.save(optimizationSettingsFilePath.parent_path());
|
// settings_optimization.save(optimizationSettingsFilePath.parent_path());
|
||||||
// std::cout << "Save settings to:" << optimizationSettingsFilePath << std::endl;
|
// std::cout << "Save settings to:" << optimizationSettingsFilePath << std::endl;
|
||||||
|
|
@ -99,7 +99,7 @@ int main(int argc, char *argv[])
|
||||||
optimizationResultFolderExists = true;
|
optimizationResultFolderExists = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
ReducedPatternOptimization::Results optimizationResults;
|
ReducedModelOptimization::Results optimizationResults;
|
||||||
constexpr bool shouldReoptimize = true;
|
constexpr bool shouldReoptimize = true;
|
||||||
bool optimizationAlreadyComputed = false;
|
bool optimizationAlreadyComputed = false;
|
||||||
if (!shouldReoptimize && optimizationResultFolderExists) {
|
if (!shouldReoptimize && optimizationResultFolderExists) {
|
||||||
|
|
@ -203,7 +203,7 @@ int main(int argc, char *argv[])
|
||||||
std::cout << "Saved results to:" << resultsOutputDir << std::endl;
|
std::cout << "Saved results to:" << resultsOutputDir << std::endl;
|
||||||
// optimizationResults.draw();
|
// optimizationResults.draw();
|
||||||
|
|
||||||
// ReducedPatternOptimization::Results optResults;
|
// ReducedModelOptimization::Results optResults;
|
||||||
// optResults.load("/home/iason/Desktop/dlib_ensmallen_comparison/TestSets/"
|
// optResults.load("/home/iason/Desktop/dlib_ensmallen_comparison/TestSets/"
|
||||||
// "singlePattern_dlib_firstSubmission/12@single_reduced(100000_1.20)");
|
// "singlePattern_dlib_firstSubmission/12@single_reduced(100000_1.20)");
|
||||||
ReducedModelEvaluator::evaluateReducedModel(optimizationResults);
|
ReducedModelEvaluator::evaluateReducedModel(optimizationResults);
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@
|
||||||
|
|
||||||
//#define USE_SCENARIO_WEIGHTS
|
//#define USE_SCENARIO_WEIGHTS
|
||||||
|
|
||||||
using namespace ReducedPatternOptimization;
|
using namespace ReducedModelOptimization;
|
||||||
|
|
||||||
struct GlobalOptimizationVariables
|
struct GlobalOptimizationVariables
|
||||||
{
|
{
|
||||||
|
|
@ -31,17 +31,17 @@ struct GlobalOptimizationVariables
|
||||||
std::vector<double> objectiveValueHistory;
|
std::vector<double> objectiveValueHistory;
|
||||||
std::vector<double> plotColors;
|
std::vector<double> plotColors;
|
||||||
std::array<double,
|
std::array<double,
|
||||||
ReducedPatternOptimization::OptimizationParameterIndex::NumberOfOptimizationVariables>
|
ReducedModelOptimization::OptimizationParameterIndex::NumberOfOptimizationVariables>
|
||||||
parametersInitialValue;
|
parametersInitialValue;
|
||||||
std::array<double,
|
std::array<double,
|
||||||
ReducedPatternOptimization::OptimizationParameterIndex::NumberOfOptimizationVariables>
|
ReducedModelOptimization::OptimizationParameterIndex::NumberOfOptimizationVariables>
|
||||||
optimizationInitialValue;
|
optimizationInitialValue;
|
||||||
std::vector<int> simulationScenarioIndices;
|
std::vector<int> simulationScenarioIndices;
|
||||||
double minY{DBL_MAX};
|
double minY{DBL_MAX};
|
||||||
std::vector<double> minX;
|
std::vector<double> minX;
|
||||||
int numOfSimulationCrashes{false};
|
int numOfSimulationCrashes{false};
|
||||||
int numberOfFunctionCalls{0};
|
int numberOfFunctionCalls{0};
|
||||||
ReducedPatternOptimization::Settings optimizationSettings;
|
ReducedModelOptimization::Settings optimizationSettings;
|
||||||
vcg::Triangle3<double> baseTriangle;
|
vcg::Triangle3<double> baseTriangle;
|
||||||
//Variables for finding the full pattern simulation forces
|
//Variables for finding the full pattern simulation forces
|
||||||
std::shared_ptr<SimulationMesh> pFullPatternSimulationMesh;
|
std::shared_ptr<SimulationMesh> pFullPatternSimulationMesh;
|
||||||
|
|
@ -60,7 +60,7 @@ struct GlobalOptimizationVariables
|
||||||
std::vector<double> xMin;
|
std::vector<double> xMin;
|
||||||
std::vector<double> xMax;
|
std::vector<double> xMax;
|
||||||
std::vector<double> scenarioWeights;
|
std::vector<double> scenarioWeights;
|
||||||
std::vector<ReducedPatternOptimization::Settings::ObjectiveWeights> objectiveWeights;
|
std::vector<ReducedModelOptimization::Settings::ObjectiveWeights> objectiveWeights;
|
||||||
} global;
|
} global;
|
||||||
|
|
||||||
double ReducedModelOptimizer::computeDisplacementError(
|
double ReducedModelOptimizer::computeDisplacementError(
|
||||||
|
|
@ -662,9 +662,8 @@ void ReducedModelOptimizer::initializeUpdateReducedPatternFunctions()
|
||||||
|
|
||||||
void ReducedModelOptimizer::initializeOptimizationParameters(
|
void ReducedModelOptimizer::initializeOptimizationParameters(
|
||||||
const std::shared_ptr<SimulationMesh> &mesh,
|
const std::shared_ptr<SimulationMesh> &mesh,
|
||||||
const std::array<ReducedPatternOptimization::xRange,
|
const std::array<ReducedModelOptimization::xRange,
|
||||||
ReducedPatternOptimization::NumberOfOptimizationVariables>
|
ReducedModelOptimization::NumberOfOptimizationVariables> &optimizationParameters)
|
||||||
&optimizationParameters)
|
|
||||||
{
|
{
|
||||||
|
|
||||||
for (int optimizationParameterIndex = 0;
|
for (int optimizationParameterIndex = 0;
|
||||||
|
|
@ -765,7 +764,7 @@ void ReducedModelOptimizer::computeDesiredReducedModelDisplacements(
|
||||||
|
|
||||||
void ReducedModelOptimizer::getResults(const FunctionEvaluation &optimalObjective,
|
void ReducedModelOptimizer::getResults(const FunctionEvaluation &optimalObjective,
|
||||||
const Settings &settings,
|
const Settings &settings,
|
||||||
ReducedPatternOptimization::Results &results)
|
ReducedModelOptimization::Results &results)
|
||||||
{
|
{
|
||||||
std::shared_ptr<SimulationMesh> &pReducedPatternSimulationMesh
|
std::shared_ptr<SimulationMesh> &pReducedPatternSimulationMesh
|
||||||
= global.reducedPatternSimulationJobs[global.simulationScenarioIndices[0]]->pMesh;
|
= global.reducedPatternSimulationJobs[global.simulationScenarioIndices[0]]->pMesh;
|
||||||
|
|
@ -1007,7 +1006,7 @@ ReducedModelOptimizer::getFullPatternMaxSimulationForces(
|
||||||
}
|
}
|
||||||
|
|
||||||
void ReducedModelOptimizer::runOptimization(const Settings &settings,
|
void ReducedModelOptimizer::runOptimization(const Settings &settings,
|
||||||
ReducedPatternOptimization::Results &results)
|
ReducedModelOptimization::Results &results)
|
||||||
{
|
{
|
||||||
global.objectiveValueHistory.clear();
|
global.objectiveValueHistory.clear();
|
||||||
global.objectiveValueHistory_iteration.clear();
|
global.objectiveValueHistory_iteration.clear();
|
||||||
|
|
@ -1595,7 +1594,7 @@ double ReducedModelOptimizer::computeFullPatternMaxSimulationForce(
|
||||||
// ForceMagnitudeOptimization f(objectiveFunction); // Create function to be optimized.
|
// ForceMagnitudeOptimization f(objectiveFunction); // Create function to be optimized.
|
||||||
// arma::mat forceMagnitude_mat({forceMagnitude});
|
// arma::mat forceMagnitude_mat({forceMagnitude});
|
||||||
// minimumError = optimizer.Optimize(f, forceMagnitude_mat);
|
// minimumError = optimizer.Optimize(f, forceMagnitude_mat);
|
||||||
// std::cout << ReducedPatternOptimization::baseSimulationScenarioNames[scenario] << ": "
|
// std::cout << ReducedModelOptimization::baseSimulationScenarioNames[scenario] << ": "
|
||||||
// << optimalObjective << std::endl;
|
// << optimalObjective << std::endl;
|
||||||
// forceMagnitude = forceMagnitude_mat(0, 0);
|
// forceMagnitude = forceMagnitude_mat(0, 0);
|
||||||
|
|
||||||
|
|
@ -1610,20 +1609,20 @@ double ReducedModelOptimizer::computeFullPatternMaxSimulationForce(
|
||||||
wasSuccessful = minimumError < objectiveEpsilon;
|
wasSuccessful = minimumError < objectiveEpsilon;
|
||||||
|
|
||||||
#ifdef POLYSCOPE_DEFINED
|
#ifdef POLYSCOPE_DEFINED
|
||||||
std::cout << "Max " << ReducedPatternOptimization::baseSimulationScenarioNames[scenario]
|
std::cout << "Max " << ReducedModelOptimization::baseSimulationScenarioNames[scenario]
|
||||||
<< " magnitude:" << forceMagnitude << std::endl;
|
<< " magnitude:" << forceMagnitude << std::endl;
|
||||||
if (!wasSuccessful) {
|
if (!wasSuccessful) {
|
||||||
SimulationJob job;
|
SimulationJob job;
|
||||||
job.pMesh = global.pFullPatternSimulationMesh;
|
job.pMesh = global.pFullPatternSimulationMesh;
|
||||||
global.constructScenarioFunction(forceMagnitude, global.fullPatternInterfaceViPairs, job);
|
global.constructScenarioFunction(forceMagnitude, global.fullPatternInterfaceViPairs, job);
|
||||||
std::cerr << ReducedPatternOptimization::baseSimulationScenarioNames[scenario]
|
std::cerr << ReducedModelOptimization::baseSimulationScenarioNames[scenario]
|
||||||
+ " max scenario magnitude was not succefully determined."
|
+ " max scenario magnitude was not succefully determined."
|
||||||
<< std::endl;
|
<< std::endl;
|
||||||
std::filesystem::path outputPath(
|
std::filesystem::path outputPath(
|
||||||
std::filesystem::path("../nonConvergingJobs")
|
std::filesystem::path("../nonConvergingJobs")
|
||||||
.append(m_pFullPatternSimulationMesh->getLabel())
|
.append(m_pFullPatternSimulationMesh->getLabel())
|
||||||
.append("magFinal_"
|
.append("magFinal_"
|
||||||
+ ReducedPatternOptimization::baseSimulationScenarioNames[scenario]));
|
+ ReducedModelOptimization::baseSimulationScenarioNames[scenario]));
|
||||||
std::filesystem::create_directories(outputPath);
|
std::filesystem::create_directories(outputPath);
|
||||||
job.save(outputPath);
|
job.save(outputPath);
|
||||||
std::terminate();
|
std::terminate();
|
||||||
|
|
@ -1813,12 +1812,12 @@ void ReducedModelOptimizer::computeObjectiveValueNormalizationFactors()
|
||||||
if (global.optimizationSettings.normalizationStrategy
|
if (global.optimizationSettings.normalizationStrategy
|
||||||
== Settings::NormalizationStrategy::Epsilon) {
|
== Settings::NormalizationStrategy::Epsilon) {
|
||||||
const double epsilon_translationalDisplacement = global.optimizationSettings
|
const double epsilon_translationalDisplacement = global.optimizationSettings
|
||||||
.translationNormalizationEpsilon;
|
.translationEpsilon;
|
||||||
global.translationalDisplacementNormalizationValues[simulationScenarioIndex]
|
global.translationalDisplacementNormalizationValues[simulationScenarioIndex]
|
||||||
= std::max(fullPatternTranslationalDisplacementNormSum[simulationScenarioIndex],
|
= std::max(fullPatternTranslationalDisplacementNormSum[simulationScenarioIndex],
|
||||||
epsilon_translationalDisplacement);
|
epsilon_translationalDisplacement);
|
||||||
const double epsilon_rotationalDisplacement = global.optimizationSettings
|
const double epsilon_rotationalDisplacement = global.optimizationSettings
|
||||||
.rotationNormalizationEpsilon;
|
.angularDistanceEpsilon;
|
||||||
global.rotationalDisplacementNormalizationValues[simulationScenarioIndex]
|
global.rotationalDisplacementNormalizationValues[simulationScenarioIndex]
|
||||||
= std::max(fullPatternAngularDistance[simulationScenarioIndex],
|
= std::max(fullPatternAngularDistance[simulationScenarioIndex],
|
||||||
epsilon_rotationalDisplacement);
|
epsilon_rotationalDisplacement);
|
||||||
|
|
@ -1831,7 +1830,7 @@ void ReducedModelOptimizer::computeObjectiveValueNormalizationFactors()
|
||||||
|
|
||||||
void ReducedModelOptimizer::optimize(
|
void ReducedModelOptimizer::optimize(
|
||||||
const Settings &optimizationSettings,
|
const Settings &optimizationSettings,
|
||||||
ReducedPatternOptimization::Results &results,
|
ReducedModelOptimization::Results &results,
|
||||||
const std::vector<BaseSimulationScenario> &desiredBaseSimulationScenarioIndices)
|
const std::vector<BaseSimulationScenario> &desiredBaseSimulationScenarioIndices)
|
||||||
{
|
{
|
||||||
assert(!optimizationSettings.optimizationStrategy.empty());
|
assert(!optimizationSettings.optimizationStrategy.empty());
|
||||||
|
|
@ -1903,7 +1902,7 @@ void ReducedModelOptimizer::optimize(
|
||||||
constexpr bool drawFullPatternSimulationResults = false;
|
constexpr bool drawFullPatternSimulationResults = false;
|
||||||
if (drawFullPatternSimulationResults) {
|
if (drawFullPatternSimulationResults) {
|
||||||
global.fullPatternSimulationJobs[0]->pMesh->registerForDrawing(
|
global.fullPatternSimulationJobs[0]->pMesh->registerForDrawing(
|
||||||
ReducedPatternOptimization::Colors::fullInitial);
|
ReducedModelOptimization::Colors::fullInitial);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
results.wasSuccessful = true;
|
results.wasSuccessful = true;
|
||||||
|
|
@ -2002,7 +2001,7 @@ void ReducedModelOptimizer::optimize(
|
||||||
if (drawFullPatternSimulationResults) {
|
if (drawFullPatternSimulationResults) {
|
||||||
// SimulationResults fullPatternResults_linear = linearSimulator.executeSimulation(
|
// SimulationResults fullPatternResults_linear = linearSimulator.executeSimulation(
|
||||||
// pFullPatternSimulationJob);
|
// pFullPatternSimulationJob);
|
||||||
fullPatternResults.registerForDrawing(ReducedPatternOptimization::Colors::fullDeformed,
|
fullPatternResults.registerForDrawing(ReducedModelOptimization::Colors::fullDeformed,
|
||||||
true);
|
true);
|
||||||
// fullPatternResults_linear.labelPrefix += "_linear";
|
// fullPatternResults_linear.labelPrefix += "_linear";
|
||||||
// fullPatternResults_linear.registerForDrawing(ReducedModelOptimization::Colors::fullDeformed,
|
// fullPatternResults_linear.registerForDrawing(ReducedModelOptimization::Colors::fullDeformed,
|
||||||
|
|
|
||||||
|
|
@ -65,11 +65,11 @@ public:
|
||||||
// };
|
// };
|
||||||
// inline constexpr static ParameterLabels parameterLabels();
|
// inline constexpr static ParameterLabels parameterLabels();
|
||||||
|
|
||||||
inline static std::array<std::string, ReducedPatternOptimization::NumberOfOptimizationVariables>
|
inline static std::array<std::string, ReducedModelOptimization::NumberOfOptimizationVariables>
|
||||||
parameterLabels = {"R", "A", "I2", "I3", "J", "Theta", "R"};
|
parameterLabels = {"R", "A", "I2", "I3", "J", "Theta", "R"};
|
||||||
constexpr static std::array<double, ReducedPatternOptimization::NumberOfBaseSimulationScenarios>
|
constexpr static std::array<double, ReducedModelOptimization::NumberOfBaseSimulationScenarios>
|
||||||
simulationScenariosResolution = {11, 11, 20, 20, 20};
|
simulationScenariosResolution = {11, 11, 20, 20, 20};
|
||||||
constexpr static std::array<double, ReducedPatternOptimization::NumberOfBaseSimulationScenarios>
|
constexpr static std::array<double, ReducedModelOptimization::NumberOfBaseSimulationScenarios>
|
||||||
baseScenarioWeights = {1, 1, 2, 3, 2};
|
baseScenarioWeights = {1, 1, 2, 3, 2};
|
||||||
inline static int totalNumberOfSimulationScenarios
|
inline static int totalNumberOfSimulationScenarios
|
||||||
= std::accumulate(simulationScenariosResolution.begin(),
|
= std::accumulate(simulationScenariosResolution.begin(),
|
||||||
|
|
@ -79,15 +79,15 @@ public:
|
||||||
inline static double initialHexagonSize{0.3};
|
inline static double initialHexagonSize{0.3};
|
||||||
inline static VectorType patternPlaneNormal{0, 0, 1};
|
inline static VectorType patternPlaneNormal{0, 0, 1};
|
||||||
void optimize(
|
void optimize(
|
||||||
const ReducedPatternOptimization::Settings &xRanges,
|
const ReducedModelOptimization::Settings &xRanges,
|
||||||
ReducedPatternOptimization::Results &results,
|
ReducedModelOptimization::Results &results,
|
||||||
const std::vector<ReducedPatternOptimization::BaseSimulationScenario> &simulationScenarios
|
const std::vector<ReducedModelOptimization::BaseSimulationScenario> &simulationScenarios
|
||||||
= std::vector<ReducedPatternOptimization::BaseSimulationScenario>(
|
= std::vector<ReducedModelOptimization::BaseSimulationScenario>(
|
||||||
{ReducedPatternOptimization::Axial,
|
{ReducedModelOptimization::Axial,
|
||||||
ReducedPatternOptimization::Shear,
|
ReducedModelOptimization::Shear,
|
||||||
ReducedPatternOptimization::Bending,
|
ReducedModelOptimization::Bending,
|
||||||
ReducedPatternOptimization::Dome,
|
ReducedModelOptimization::Dome,
|
||||||
ReducedPatternOptimization::Saddle}));
|
ReducedModelOptimization::Saddle}));
|
||||||
double operator()(const Eigen::VectorXd &x, Eigen::VectorXd &) const;
|
double operator()(const Eigen::VectorXd &x, Eigen::VectorXd &) const;
|
||||||
|
|
||||||
ReducedModelOptimizer(const std::vector<size_t> &numberOfNodesPerSlot);
|
ReducedModelOptimizer(const std::vector<size_t> &numberOfNodesPerSlot);
|
||||||
|
|
@ -121,7 +121,7 @@ public:
|
||||||
static void visualizeResults(
|
static void visualizeResults(
|
||||||
const std::vector<std::shared_ptr<SimulationJob>> &fullPatternSimulationJobs,
|
const std::vector<std::shared_ptr<SimulationJob>> &fullPatternSimulationJobs,
|
||||||
const std::vector<std::shared_ptr<SimulationJob>> &reducedPatternSimulationJobs,
|
const std::vector<std::shared_ptr<SimulationJob>> &reducedPatternSimulationJobs,
|
||||||
const std::vector<ReducedPatternOptimization::BaseSimulationScenario> &simulationScenarios,
|
const std::vector<ReducedModelOptimization::BaseSimulationScenario> &simulationScenarios,
|
||||||
const std::unordered_map<ReducedPatternVertexIndex, FullPatternVertexIndex>
|
const std::unordered_map<ReducedPatternVertexIndex, FullPatternVertexIndex>
|
||||||
&reducedToFullInterfaceViMap);
|
&reducedToFullInterfaceViMap);
|
||||||
static void registerResultsForDrawing(
|
static void registerResultsForDrawing(
|
||||||
|
|
@ -166,7 +166,7 @@ public:
|
||||||
const double &normalizationFactor_translationalDisplacement,
|
const double &normalizationFactor_translationalDisplacement,
|
||||||
const double &normalizationFactor_rotationalDisplacement,
|
const double &normalizationFactor_rotationalDisplacement,
|
||||||
const double &scenarioWeight,
|
const double &scenarioWeight,
|
||||||
const ReducedPatternOptimization::Settings::ObjectiveWeights &objectiveWeights);
|
const ReducedModelOptimization::Settings::ObjectiveWeights &objectiveWeights);
|
||||||
static void constructAxialSimulationScenario(
|
static void constructAxialSimulationScenario(
|
||||||
const double &forceMagnitude,
|
const double &forceMagnitude,
|
||||||
const std::vector<std::pair<FullPatternVertexIndex, FullPatternVertexIndex>>
|
const std::vector<std::pair<FullPatternVertexIndex, FullPatternVertexIndex>>
|
||||||
|
|
@ -221,12 +221,11 @@ public:
|
||||||
static void initializeUpdateReducedPatternFunctions();
|
static void initializeUpdateReducedPatternFunctions();
|
||||||
static double objective(const double &xValue);
|
static double objective(const double &xValue);
|
||||||
|
|
||||||
void initializePatterns(
|
void initializePatterns(PatternGeometry &fullPattern,
|
||||||
PatternGeometry &fullPattern,
|
PatternGeometry &reducedPattern,
|
||||||
PatternGeometry &reducedPattern,
|
const std::array<ReducedModelOptimization::xRange,
|
||||||
const std::array<ReducedPatternOptimization::xRange,
|
ReducedModelOptimization::NumberOfOptimizationVariables>
|
||||||
ReducedPatternOptimization::NumberOfOptimizationVariables>
|
&optimizationParameters);
|
||||||
&optimizationParameters);
|
|
||||||
|
|
||||||
void setIntermediateResultsDirectoryPath(
|
void setIntermediateResultsDirectoryPath(
|
||||||
const std::filesystem::path &newIntermediateResultsDirectoryPath);
|
const std::filesystem::path &newIntermediateResultsDirectoryPath);
|
||||||
|
|
@ -236,42 +235,42 @@ private:
|
||||||
const SimulationResults &fullModelResults,
|
const SimulationResults &fullModelResults,
|
||||||
const std::unordered_map<size_t, size_t> &displacementsReducedToFullMap,
|
const std::unordered_map<size_t, size_t> &displacementsReducedToFullMap,
|
||||||
Eigen::MatrixX3d &optimalDisplacementsOfReducedModel);
|
Eigen::MatrixX3d &optimalDisplacementsOfReducedModel);
|
||||||
static void runOptimization(const ReducedPatternOptimization::Settings &settings,
|
static void runOptimization(const ReducedModelOptimization::Settings &settings,
|
||||||
ReducedPatternOptimization::Results &results);
|
ReducedModelOptimization::Results &results);
|
||||||
void computeMaps(PatternGeometry &fullModel, PatternGeometry &reducedPattern);
|
void computeMaps(PatternGeometry &fullModel, PatternGeometry &reducedPattern);
|
||||||
void createSimulationMeshes(PatternGeometry &fullModel, PatternGeometry &reducedModel);
|
void createSimulationMeshes(PatternGeometry &fullModel, PatternGeometry &reducedModel);
|
||||||
static void initializeOptimizationParameters(
|
static void initializeOptimizationParameters(
|
||||||
const std::shared_ptr<SimulationMesh> &mesh,
|
const std::shared_ptr<SimulationMesh> &mesh,
|
||||||
const std::array<ReducedPatternOptimization::xRange,
|
const std::array<ReducedModelOptimization::xRange,
|
||||||
ReducedPatternOptimization::NumberOfOptimizationVariables>
|
ReducedModelOptimization::NumberOfOptimizationVariables>
|
||||||
&optimizationParamters);
|
&optimizationParamters);
|
||||||
|
|
||||||
DRMSimulationModel simulator;
|
DRMSimulationModel simulator;
|
||||||
void computeObjectiveValueNormalizationFactors();
|
void computeObjectiveValueNormalizationFactors();
|
||||||
|
|
||||||
static void getResults(const FunctionEvaluation &optimalObjective,
|
static void getResults(const FunctionEvaluation &optimalObjective,
|
||||||
const ReducedPatternOptimization::Settings &settings,
|
const ReducedModelOptimization::Settings &settings,
|
||||||
ReducedPatternOptimization::Results &results);
|
ReducedModelOptimization::Results &results);
|
||||||
double computeFullPatternMaxSimulationForce(
|
double computeFullPatternMaxSimulationForce(
|
||||||
const ReducedPatternOptimization::BaseSimulationScenario &scenario) const;
|
const ReducedModelOptimization::BaseSimulationScenario &scenario) const;
|
||||||
|
|
||||||
#ifdef DLIB_DEFINED
|
#ifdef DLIB_DEFINED
|
||||||
static double objective(const dlib::matrix<double, 0, 1> &x);
|
static double objective(const dlib::matrix<double, 0, 1> &x);
|
||||||
#endif
|
#endif
|
||||||
std::array<double, ReducedPatternOptimization::NumberOfBaseSimulationScenarios>
|
std::array<double, ReducedModelOptimization::NumberOfBaseSimulationScenarios>
|
||||||
getFullPatternMaxSimulationForces(
|
getFullPatternMaxSimulationForces(
|
||||||
const std::vector<ReducedPatternOptimization::BaseSimulationScenario>
|
const std::vector<ReducedModelOptimization::BaseSimulationScenario>
|
||||||
&desiredBaseSimulationScenarioIndices,
|
&desiredBaseSimulationScenarioIndices,
|
||||||
const std::filesystem::path &intermediateResultsDirectoryPath);
|
const std::filesystem::path &intermediateResultsDirectoryPath);
|
||||||
void computeScenarioWeights(const std::vector<ReducedPatternOptimization::BaseSimulationScenario>
|
void computeScenarioWeights(const std::vector<ReducedModelOptimization::BaseSimulationScenario>
|
||||||
&baseSimulationScenarios);
|
&baseSimulationScenarios);
|
||||||
std::array<double, ReducedPatternOptimization::NumberOfBaseSimulationScenarios>
|
std::array<double, ReducedModelOptimization::NumberOfBaseSimulationScenarios>
|
||||||
computeFullPatternMaxSimulationForces(
|
computeFullPatternMaxSimulationForces(
|
||||||
const std::vector<ReducedPatternOptimization::BaseSimulationScenario>
|
const std::vector<ReducedModelOptimization::BaseSimulationScenario>
|
||||||
&desiredBaseSimulationScenario) const;
|
&desiredBaseSimulationScenario) const;
|
||||||
std::vector<std::shared_ptr<SimulationJob>> createFullPatternSimulationJobs(
|
std::vector<std::shared_ptr<SimulationJob>> createFullPatternSimulationJobs(
|
||||||
const std::shared_ptr<SimulationMesh> &pMesh,
|
const std::shared_ptr<SimulationMesh> &pMesh,
|
||||||
const std::array<double, ReducedPatternOptimization::NumberOfBaseSimulationScenarios>
|
const std::array<double, ReducedModelOptimization::NumberOfBaseSimulationScenarios>
|
||||||
&baseScenarioMaxForceMagnitudes) const;
|
&baseScenarioMaxForceMagnitudes) const;
|
||||||
};
|
};
|
||||||
inline std::function<void(const double &newE,
|
inline std::function<void(const double &newE,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue