Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Balance for HT process #2132

Merged
merged 13 commits into from
May 31, 2018
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
[PL] Add t and dt to postTimestep{ConcreteProcess}.
Needed for the description of the balance data.
  • Loading branch information
TomFischer committed May 30, 2018
commit 2689f06515eee119671a929bf2ed2d4433367a6a
2 changes: 2 additions & 0 deletions ProcessLib/GroundwaterFlow/GroundwaterFlowProcess.h
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,8 @@ class GroundwaterFlowProcess final : public Process
}

void postTimestepConcreteProcess(GlobalVector const& x,
const double /*t*/,
const double /*delta_t*/,
int const process_id) override
{
//For this single process, process_id is always zero.
Expand Down
2 changes: 2 additions & 0 deletions ProcessLib/HT/HTProcess.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -255,6 +255,8 @@ std::vector<double> HTProcess::getFlux(std::size_t element_id,

// this is almost a copy of the implemention in the GroundwaterFlow
void HTProcess::postTimestepConcreteProcess(GlobalVector const& x,
const double t,
const double delta_t,
int const process_id)
{
// For the monolithic scheme, process_id is always zero.
Expand Down
2 changes: 2 additions & 0 deletions ProcessLib/HT/HTProcess.h
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,8 @@ class HTProcess final : public Process
void setCoupledTermForTheStaggeredSchemeToLocalAssemblers() override;

void postTimestepConcreteProcess(GlobalVector const& x,
const double t,
const double delta_t,
int const process_id) override;

private:
Expand Down
3 changes: 2 additions & 1 deletion ProcessLib/HydroMechanics/HydroMechanicsProcess.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -361,7 +361,8 @@ void HydroMechanicsProcess<DisplacementDim>::preTimestepConcreteProcess(

template <int DisplacementDim>
void HydroMechanicsProcess<DisplacementDim>::postTimestepConcreteProcess(
GlobalVector const& x, const int process_id)
GlobalVector const& x, const double /*t*/, const double /*delta_t*/,
const int process_id)
{
DBUG("PostTimestep HydroMechanicsProcess.");
GlobalExecutor::executeMemberOnDereferenced(
Expand Down
3 changes: 2 additions & 1 deletion ProcessLib/HydroMechanics/HydroMechanicsProcess.h
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,8 @@ class HydroMechanicsProcess final : public Process
double const dt,
const int process_id) override;

void postTimestepConcreteProcess(GlobalVector const& x,
void postTimestepConcreteProcess(GlobalVector const& x, const double t,
const double delta_t,
int const process_id) override;

void postNonLinearSolverConcreteProcess(GlobalVector const& x, const double t,
Expand Down
3 changes: 2 additions & 1 deletion ProcessLib/LIE/SmallDeformation/SmallDeformationProcess.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -395,7 +395,8 @@ void SmallDeformationProcess<DisplacementDim>::initializeConcreteProcess(

template <int DisplacementDim>
void SmallDeformationProcess<DisplacementDim>::postTimestepConcreteProcess(
GlobalVector const& x, int const /*process_id*/)
GlobalVector const& x, const double /*t*/, const double /*delta_t*/,
int const /*process_id*/)
{
DBUG("PostTimestep SmallDeformationProcess.");

Expand Down
3 changes: 2 additions & 1 deletion ProcessLib/LIE/SmallDeformation/SmallDeformationProcess.h
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,8 @@ class SmallDeformationProcess final : public Process
double const dt,
const int /*process_id*/) override;

void postTimestepConcreteProcess(GlobalVector const& x,
void postTimestepConcreteProcess(GlobalVector const& x, const double t,
const double delta_t,
int const process_id) override;

private:
Expand Down
3 changes: 2 additions & 1 deletion ProcessLib/PhaseField/PhaseFieldProcess.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -310,7 +310,8 @@ void PhaseFieldProcess<DisplacementDim>::preTimestepConcreteProcess(

template <int DisplacementDim>
void PhaseFieldProcess<DisplacementDim>::postTimestepConcreteProcess(
GlobalVector const& x, int const process_id)
GlobalVector const& x, const double /*t*/, const double /*delta_t*/,
int const process_id)
{
if (isPhaseFieldProcess(process_id))
{
Expand Down
3 changes: 2 additions & 1 deletion ProcessLib/PhaseField/PhaseFieldProcess.h
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,8 @@ class PhaseFieldProcess final : public Process
double const dt,
const int process_id) override;

void postTimestepConcreteProcess(GlobalVector const& x,
void postTimestepConcreteProcess(GlobalVector const& x, const double t,
const double delta_t,
int const process_id) override;

void postNonLinearSolverConcreteProcess(GlobalVector const& x,
Expand Down
5 changes: 3 additions & 2 deletions ProcessLib/Process.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -350,10 +350,11 @@ void Process::preTimestep(GlobalVector const& x, const double t,
_boundary_conditions[process_id].preTimestep(t, x);
}

void Process::postTimestep(GlobalVector const& x, int const process_id)
void Process::postTimestep(GlobalVector const& x, const double t,
const double delta_t, int const process_id)
{
MathLib::LinAlg::setLocalAccessibleVector(x);
postTimestepConcreteProcess(x, process_id);
postTimestepConcreteProcess(x, t, delta_t, process_id);
}

void Process::postNonLinearSolver(GlobalVector const& x, const double t,
Expand Down
5 changes: 4 additions & 1 deletion ProcessLib/Process.h
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,8 @@ class Process
const double delta_t, const int process_id);

/// Postprocessing after a complete timestep.
void postTimestep(GlobalVector const& x, int const process_id);
void postTimestep(GlobalVector const& x, const double t,
const double delta_t, int const process_id);

/// Calculates secondary variables, e.g. stress and strain for deformation
/// analysis, only after nonlinear solver being successfully conducted.
Expand Down Expand Up @@ -194,6 +195,8 @@ class Process
}

virtual void postTimestepConcreteProcess(GlobalVector const& /*x*/,
const double /*t*/,
const double /*delta_t*/,
int const /*process_id*/)
{
}
Expand Down
3 changes: 2 additions & 1 deletion ProcessLib/SmallDeformation/SmallDeformationProcess.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -268,7 +268,8 @@ void SmallDeformationProcess<DisplacementDim>::preTimestepConcreteProcess(

template <int DisplacementDim>
void SmallDeformationProcess<DisplacementDim>::postTimestepConcreteProcess(
GlobalVector const& x, int const /*process_id*/)
GlobalVector const& x, const double /*t*/, const double /*delta_t*/,
int const /*process_id*/)
{
DBUG("PostTimestep SmallDeformationProcess.");

Expand Down
3 changes: 2 additions & 1 deletion ProcessLib/SmallDeformation/SmallDeformationProcess.h
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,8 @@ class SmallDeformationProcess final : public Process
GlobalVector const& x, double const t, double const dt,
const int process_id) override;

void postTimestepConcreteProcess(GlobalVector const& x,
void postTimestepConcreteProcess(GlobalVector const& x, const double t,
const double delta_t,
int const process_id) override;

private:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -288,6 +288,8 @@ void ThermoMechanicalPhaseFieldProcess<
template <int DisplacementDim>
void ThermoMechanicalPhaseFieldProcess<
DisplacementDim>::postTimestepConcreteProcess(GlobalVector const& x,
double const /*t*/,
double const /*dt*/,
int const process_id)
{
DBUG("PostTimestep ThermoMechanicalPhaseFieldProcess.");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,8 @@ class ThermoMechanicalPhaseFieldProcess final : public Process
double const dt,
const int process_id) override;

void postTimestepConcreteProcess(GlobalVector const& x,
void postTimestepConcreteProcess(GlobalVector const& x, double const t,
double const dt,
int const process_id) override;

void postNonLinearSolverConcreteProcess(GlobalVector const& x,
Expand Down
3 changes: 2 additions & 1 deletion ProcessLib/ThermoMechanics/ThermoMechanicsProcess.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,8 @@ void ThermoMechanicsProcess<DisplacementDim>::preTimestepConcreteProcess(

template <int DisplacementDim>
void ThermoMechanicsProcess<DisplacementDim>::postTimestepConcreteProcess(
GlobalVector const& x, int const /*process_id*/)
GlobalVector const& x, const double /*t*/, const double /*delta_t*/,
int const /*process_id*/)
{
DBUG("PostTimestep ThermoMechanicsProcess.");

Expand Down
3 changes: 2 additions & 1 deletion ProcessLib/ThermoMechanics/ThermoMechanicsProcess.h
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,8 @@ class ThermoMechanicsProcess final : public Process
GlobalVector const& x, double const t, double const dt,
const int process_id) override;

void postTimestepConcreteProcess(GlobalVector const& x,
void postTimestepConcreteProcess(GlobalVector const& x, const double t,
const double delta_t,
int const process_id) override;

private:
Expand Down
4 changes: 2 additions & 2 deletions ProcessLib/UncoupledProcessesTimeLoop.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -681,7 +681,7 @@ bool UncoupledProcessesTimeLoop::solveUncoupledEquationSystems(
const auto nonlinear_solver_succeeded = solveOneTimeStepOneProcess(
process_id, x, timestep_id, t, dt, *process_data, *_output);
process_data->nonlinear_solver_converged = nonlinear_solver_succeeded;
pcs.postTimestep(x, process_id);
pcs.postTimestep(x, t, dt, process_id);
pcs.computeSecondaryVariable(t, x);

INFO("[time] Solving process #%u took %g s in time step #%u ",
Expand Down Expand Up @@ -855,7 +855,7 @@ bool UncoupledProcessesTimeLoop::solveCoupledEquationSystemsByStaggeredScheme(

auto& pcs = process_data->process;
auto& x = *_process_solutions[process_id];
pcs.postTimestep(x, process_id);
pcs.postTimestep(x, t, dt, process_id);
pcs.computeSecondaryVariable(t, x);

++process_id;
Expand Down