feat(thermal): connect transient heat application execution

This commit is contained in:
KOKO\Mimi
2026-09-29 22:23:14 +09:00
parent 14160dd290
commit 7cccfcdde8
4 changed files with 546 additions and 7 deletions
+6 -2
View File
@@ -18,6 +18,7 @@
#include "fesa/io/hdf5/eigen_hdf5_results_writer.h"
#include "fesa/io/hdf5/hdf5_results_writer.h"
#include "fesa/io/hdf5/nonlinear_hdf5_results_writer.h"
#include "fesa/io/hdf5/thermal_hdf5_results_writer.h"
#include "fesa/solvers/linear/mkl_pardiso_solver.h"
#include "fesa/solvers/linear/mkl_pardiso_tangent_solver.h"
@@ -87,6 +88,7 @@ int FesaApplication::Run(const std::vector<std::string>& arguments) {
NonlinearHdf5ResultsWriter nonlinear_writer;
EigenHdf5ResultsWriter eigen_writer;
DynamicHdf5ResultsWriter dynamic_writer;
ThermalHdf5ResultsWriter thermal_writer;
NewtonIterationLogWriter log;
Status status = log.Open(paths.Value().log_path);
@@ -106,9 +108,11 @@ int FesaApplication::Run(const std::vector<std::string>& arguments) {
const LinearFrequencyProcedureExecutor frequency_executor;
const HhtDynamicProcedureExecutor dynamic_executor(
parallel_for, linear_solver, tangent_solver);
const TransientHeatProcedureExecutor thermal_executor(parallel_for,
linear_solver);
Result<PreparedAnalysisOutcome> outcome = ExecutePreparedAnalysis(
prepared.Value().domain, linear_executor, nonlinear_executor,
frequency_executor, log, &dynamic_executor);
frequency_executor, log, &dynamic_executor, &thermal_executor);
if (!outcome.HasValue()) {
status = outcome.GetStatus();
} else {
@@ -120,7 +124,7 @@ int FesaApplication::Run(const std::vector<std::string>& arguments) {
status = FinalizePreparedAnalysisResult(
paths.Value(), prepared.Value().domain, outcome.Value(),
prepared.Value().diagnostics, linear_writer, nonlinear_writer,
eigen_writer, &dynamic_writer);
eigen_writer, &dynamic_writer, &thermal_writer);
if (status.IsOk()) {
return kSuccessExitCode;
}