Skip to content
Snippets Groups Projects
Commit 726ce877 authored by Christoph Lehmann's avatar Christoph Lehmann Committed by Dmitri Naumov
Browse files

[PL] Pass initial dt to first output computation

Some time-dependent material models are not running with the dt=1 (at
restart) and require "proper" time step sizes.
parent f38c4000
No related branches found
No related tags found
No related merge requests found
......@@ -495,12 +495,6 @@ void TimeLoop::initialize()
updateDeactivatedSubdomains(_per_process_data, _start_time);
// Output initial conditions
{
preOutputInitialConditions(_start_time);
outputSolutions(0, _start_time, &Output::doOutput);
}
auto const time_step_constraints = generateOutputTimeStepConstraints(
calculateUniqueFixedTimesForAllOutputs(_outputs));
......@@ -508,6 +502,12 @@ void TimeLoop::initialize()
computeTimeStepping(0.0, _current_time, _accepted_steps,
_rejected_steps, time_step_constraints);
// Output initial conditions
{
preOutputInitialConditions(_start_time, _dt);
outputSolutions(0, _start_time, &Output::doOutput);
}
calculateNonEquilibriumInitialResiduum(
_per_process_data, _process_solutions, _process_solutions_prev);
}
......@@ -752,7 +752,7 @@ TimeLoop::~TimeLoop()
}
}
void TimeLoop::preOutputInitialConditions(const double t) const
void TimeLoop::preOutputInitialConditions(const double t, const double dt) const
{
for (auto const& process_data : _per_process_data)
{
......@@ -766,9 +766,6 @@ void TimeLoop::preOutputInitialConditions(const double t) const
auto const process_id = process_data->process_id;
auto& pcs = process_data->process;
// dummy value to handle the time derivative terms more or less
// correctly, i.e. to ignore them.
double const dt = 1;
process_data->time_disc->nextTimestep(t, dt);
pcs.preTimestep(_process_solutions, _start_time, dt, process_id);
......
......@@ -122,7 +122,7 @@ private:
private:
std::vector<std::function<double(double, double)>>
generateOutputTimeStepConstraints(std::vector<double>&& fixed_times) const;
void preOutputInitialConditions(const double t) const;
void preOutputInitialConditions(const double t, const double dt) const;
std::vector<GlobalVector*> _process_solutions;
std::vector<GlobalVector*> _process_solutions_prev;
std::vector<Output> _outputs;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment