Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
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
2 changes: 1 addition & 1 deletion kernel/include/Couplings/Coupling.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ class Coupling {
std::string get_name();

void get_tree();
void initialize(const int& iter, const double& initial_time);
void initialize(const int& iter, const double& initial_time, const double time_step);
void execute(const int& iter, double& next_time, const double& current_time,
const double& current_time_step);
void update();
Expand Down
7 changes: 4 additions & 3 deletions kernel/include/Couplings/Coupling.tpp
Original file line number Diff line number Diff line change
Expand Up @@ -75,10 +75,11 @@ void Coupling<Args...>::get_tree() {
* @param initial_time
*/
template <class... Args>
void Coupling<Args...>::initialize(const int& iter, const double& initial_time) {
void Coupling<Args...>::initialize(const int& iter, const double& initial_time,
const double time_step) {
std::apply(
[iter, initial_time](auto&... problem) {
(problem.initialize(initial_time), ...);
[iter, initial_time, time_step](auto&... problem) {
(problem.initialize(initial_time, time_step), ...);
(void([&problem, iter, initial_time] { problem.save(iter, initial_time); }()), ...);
},
problems_);
Expand Down
3 changes: 2 additions & 1 deletion kernel/include/Integrators/AllenCahnNLFormIntegrator.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,8 @@ class AllenCahnNLFormIntegrator : public SlothNLFormIntegrator<VARS> {

public:
void init() override;
AllenCahnNLFormIntegrator(Geometry geometry, const std::vector<mfem::ParGridFunction>& u_old,
AllenCahnNLFormIntegrator(Geometry geometry, const double time_step,
const std::vector<mfem::ParGridFunction>& u_old,
const std::vector<mfem::ParGridFunction>& aux_old,
const Parameters& params, std::vector<VARS*> auxvars,
const std::vector<Coefficients>& coefficients);
Expand Down
5 changes: 3 additions & 2 deletions kernel/include/Integrators/AllenCahnNLFormIntegrator.tpp
Original file line number Diff line number Diff line change
Expand Up @@ -61,10 +61,11 @@
*/
template <class VARS>
AllenCahnNLFormIntegrator<VARS>::AllenCahnNLFormIntegrator(
Geometry geometry, const std::vector<mfem::ParGridFunction>& u_old,
Geometry geometry, const double time_step, const std::vector<mfem::ParGridFunction>& u_old,
const std::vector<mfem::ParGridFunction>& aux_old, const Parameters& params,
std::vector<VARS*> auxvars, const std::vector<Coefficients>& coefficients)
: SlothNLFormIntegrator<VARS>(geometry, u_old, aux_old, params, auxvars, coefficients) {
: SlothNLFormIntegrator<VARS>(geometry, time_step, u_old, aux_old, params, auxvars,
coefficients) {
this->integrator_name_ = "AllenCahn";

this->check_variables_consistency();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,8 @@ class BlockAllenCahnNLFormIntegrator : public SlothNLFormIntegrator<VARS> {

public:
void init() override;
BlockAllenCahnNLFormIntegrator(Geometry geometry, const std::vector<mfem::ParGridFunction>& u_old,
BlockAllenCahnNLFormIntegrator(Geometry geometry, const double time_step,
const std::vector<mfem::ParGridFunction>& u_old,
const std::vector<mfem::ParGridFunction>& aux_old,
const Parameters& params, std::vector<VARS*> auxvars,
const std::vector<Coefficients>& coefficients);
Expand Down
5 changes: 3 additions & 2 deletions kernel/include/Integrators/BlockAllenCahnNLFormIntegrator.tpp
Original file line number Diff line number Diff line change
Expand Up @@ -60,10 +60,11 @@
*/
template <class VARS>
BlockAllenCahnNLFormIntegrator<VARS>::BlockAllenCahnNLFormIntegrator(
Geometry geometry, const std::vector<mfem::ParGridFunction>& u_old,
Geometry geometry, const double time_step, const std::vector<mfem::ParGridFunction>& u_old,
const std::vector<mfem::ParGridFunction>& aux_old, const Parameters& params,
std::vector<VARS*> auxvars, const std::vector<Coefficients>& coefficients)
: SlothNLFormIntegrator<VARS>(geometry, u_old, aux_old, params, auxvars, coefficients) {
: SlothNLFormIntegrator<VARS>(geometry, time_step, u_old, aux_old, params, auxvars,
coefficients) {
this->check_variables_consistency();
}

Expand Down
3 changes: 2 additions & 1 deletion kernel/include/Integrators/CahnHilliardNLFormIntegrator.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,8 @@ class CahnHilliardNLFormIntegrator : public SlothNLFormIntegrator<VARS> {

public:
void init() override;
CahnHilliardNLFormIntegrator(Geometry geometry, const std::vector<mfem::ParGridFunction>& u_old,
CahnHilliardNLFormIntegrator(Geometry geometry, const double time_step,
const std::vector<mfem::ParGridFunction>& u_old,
const std::vector<mfem::ParGridFunction>& aux_old,
const Parameters& params, std::vector<VARS*> auxvars,
const std::vector<Coefficients>& coefficients);
Expand Down
5 changes: 3 additions & 2 deletions kernel/include/Integrators/CahnHilliardNLFormIntegrator.tpp
Original file line number Diff line number Diff line change
Expand Up @@ -58,10 +58,11 @@
*/
template <class VARS>
CahnHilliardNLFormIntegrator<VARS>::CahnHilliardNLFormIntegrator(
Geometry geometry, const std::vector<mfem::ParGridFunction>& u_old,
Geometry geometry, const double time_step, const std::vector<mfem::ParGridFunction>& u_old,
const std::vector<mfem::ParGridFunction>& aux_old, const Parameters& params,
std::vector<VARS*> auxvars, const std::vector<Coefficients>& coefficients)
: SlothNLFormIntegrator<VARS>(geometry, u_old, aux_old, params, auxvars, coefficients) {
: SlothNLFormIntegrator<VARS>(geometry, time_step, u_old, aux_old, params, auxvars,
coefficients) {
this->integrator_name_ = "CahnHilliard";
this->check_variables_consistency();
}
Expand Down
3 changes: 2 additions & 1 deletion kernel/include/Integrators/DiffusionFluxNLFormIntegrator.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,8 @@ class DiffusionFluxNLFormIntegrator : public SlothNLFormIntegrator<VARS> {
void init() override;

public:
DiffusionFluxNLFormIntegrator(Geometry geometry, const std::vector<mfem::ParGridFunction>& u_old,
DiffusionFluxNLFormIntegrator(Geometry geometry, const double time_step,
const std::vector<mfem::ParGridFunction>& u_old,
const std::vector<mfem::ParGridFunction>& aux_old,
const Parameters& params, std::vector<VARS*> auxvars,
const std::vector<Coefficients>& coefficients);
Expand Down
5 changes: 3 additions & 2 deletions kernel/include/Integrators/DiffusionFluxNLFormIntegrator.tpp
Original file line number Diff line number Diff line change
Expand Up @@ -81,10 +81,11 @@ void DiffusionFluxNLFormIntegrator<VARS>::get_coefficients() {
*/
template <class VARS>
DiffusionFluxNLFormIntegrator<VARS>::DiffusionFluxNLFormIntegrator(
Geometry geometry, const std::vector<mfem::ParGridFunction>& u_old,
Geometry geometry, const double time_step, const std::vector<mfem::ParGridFunction>& u_old,
const std::vector<mfem::ParGridFunction>& aux_old, const Parameters& params,
std::vector<VARS*> auxvars, const std::vector<Coefficients>& coefficients)
: SlothNLFormIntegrator<VARS>(geometry, u_old, aux_old, params, auxvars, coefficients) {
: SlothNLFormIntegrator<VARS>(geometry, time_step, u_old, aux_old, params, auxvars,
coefficients) {
this->expected_list_.push_back(GlossaryType::Diffusivity);
}

Expand Down
3 changes: 2 additions & 1 deletion kernel/include/Integrators/DiffusionNLFormIntegrator.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,8 @@ class DiffusionNLFormIntegrator : public SlothNLFormIntegrator<VARS> {
void init() override;

public:
DiffusionNLFormIntegrator(Geometry geometry, const std::vector<mfem::ParGridFunction> u_old,
DiffusionNLFormIntegrator(Geometry geometry, const double time_step,
const std::vector<mfem::ParGridFunction> u_old,
const std::vector<mfem::ParGridFunction> aux_old,
const Parameters& params, std::vector<VARS*> auxvars,
const std::vector<Coefficients>& coefficients);
Expand Down
5 changes: 3 additions & 2 deletions kernel/include/Integrators/DiffusionNLFormIntegrator.tpp
Original file line number Diff line number Diff line change
Expand Up @@ -61,10 +61,11 @@
*/
template <class VARS>
DiffusionNLFormIntegrator<VARS>::DiffusionNLFormIntegrator(
Geometry geometry, const std::vector<mfem::ParGridFunction> u_old,
Geometry geometry, const double time_step, const std::vector<mfem::ParGridFunction> u_old,
const std::vector<mfem::ParGridFunction> aux_old, const Parameters& params,
std::vector<VARS*> auxvars, const std::vector<Coefficients>& coefficients)
: SlothNLFormIntegrator<VARS>(geometry, u_old, aux_old, params, auxvars, coefficients) {}
: SlothNLFormIntegrator<VARS>(geometry, time_step, u_old, aux_old, params, auxvars,
coefficients) {}

/**
* @brief Initialize the diffusion integrator.
Expand Down
3 changes: 2 additions & 1 deletion kernel/include/Integrators/FickNLFormIntegrator.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,8 @@ class FickNLFormIntegrator : public DiffusionNLFormIntegrator<VARS> {
void get_coefficients() override;

public:
FickNLFormIntegrator(Geometry geometry, const std::vector<mfem::ParGridFunction> u_old,
FickNLFormIntegrator(Geometry geometry, const double time_step,
const std::vector<mfem::ParGridFunction> u_old,
const std::vector<mfem::ParGridFunction>& aux_old, const Parameters& params,
std::vector<VARS*> auxvars, const std::vector<Coefficients>& coefficients);
virtual ~FickNLFormIntegrator() = default;
Expand Down
5 changes: 3 additions & 2 deletions kernel/include/Integrators/FickNLFormIntegrator.tpp
Original file line number Diff line number Diff line change
Expand Up @@ -58,13 +58,14 @@
*
*/
template <class VARS>
FickNLFormIntegrator<VARS>::FickNLFormIntegrator(Geometry geometry,
FickNLFormIntegrator<VARS>::FickNLFormIntegrator(Geometry geometry, const double time_step,
const std::vector<mfem::ParGridFunction> u_old,
const std::vector<mfem::ParGridFunction>& aux_old,
const Parameters& params,
std::vector<VARS*> auxvars,
const std::vector<Coefficients>& coefficients)
: DiffusionNLFormIntegrator<VARS>(geometry, u_old, aux_old, params, auxvars, coefficients) {
: DiffusionNLFormIntegrator<VARS>(geometry, time_step, u_old, aux_old, params, auxvars,
coefficients) {
this->integrator_name_ = "Fick";

this->expected_list_.push_back(GlossaryType::Diffusivity);
Expand Down
3 changes: 2 additions & 1 deletion kernel/include/Integrators/FourierNLFormIntegrator.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,8 @@ class FourierNLFormIntegrator : public DiffusionNLFormIntegrator<VARS> {
void get_coefficients() override;

public:
FourierNLFormIntegrator(Geometry geometry, const std::vector<mfem::ParGridFunction>& u_old,
FourierNLFormIntegrator(Geometry geometry, const double time_step,
const std::vector<mfem::ParGridFunction>& u_old,
const std::vector<mfem::ParGridFunction>& aux_old,
const Parameters& params, std::vector<VARS*> auxvars,
const std::vector<Coefficients>& coefficients);
Expand Down
5 changes: 3 additions & 2 deletions kernel/include/Integrators/FourierNLFormIntegrator.tpp
Original file line number Diff line number Diff line change
Expand Up @@ -59,10 +59,11 @@
*/
template <class VARS>
FourierNLFormIntegrator<VARS>::FourierNLFormIntegrator(
Geometry geometry, const std::vector<mfem::ParGridFunction>& u_old,
Geometry geometry, const double time_step, const std::vector<mfem::ParGridFunction>& u_old,
const std::vector<mfem::ParGridFunction>& aux_old, const Parameters& params,
std::vector<VARS*> auxvars, const std::vector<Coefficients>& coefficients)
: DiffusionNLFormIntegrator<VARS>(geometry, u_old, aux_old, params, auxvars, coefficients) {
: DiffusionNLFormIntegrator<VARS>(geometry, time_step, u_old, aux_old, params, auxvars,
coefficients) {
this->integrator_name_ = "Fourier";
this->expected_list_.push_back(GlossaryType::Conductivity);
}
Expand Down
3 changes: 2 additions & 1 deletion kernel/include/Integrators/HeatTimeNLFormIntegrator.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,8 @@ class HeatTimeNLFormIntegrator : public TimeNLFormIntegrator<VARS> {
void get_coefficients() override;

public:
HeatTimeNLFormIntegrator(Geometry geometry, const std::vector<mfem::ParGridFunction> u_old,
HeatTimeNLFormIntegrator(Geometry geometry, const double time_step,
const std::vector<mfem::ParGridFunction> u_old,
const std::vector<mfem::ParGridFunction>& aux_old,
const Parameters& params, std::vector<VARS*> auxvars,
const std::vector<Coefficients>& coefficients);
Expand Down
5 changes: 3 additions & 2 deletions kernel/include/Integrators/HeatTimeNLFormIntegrator.tpp
Original file line number Diff line number Diff line change
Expand Up @@ -56,10 +56,11 @@
*/
template <class VARS>
HeatTimeNLFormIntegrator<VARS>::HeatTimeNLFormIntegrator(
Geometry geometry, const std::vector<mfem::ParGridFunction> u_old,
Geometry geometry, const double time_step, const std::vector<mfem::ParGridFunction> u_old,
const std::vector<mfem::ParGridFunction>& aux_old, const Parameters& params,
std::vector<VARS*> auxvars, const std::vector<Coefficients>& coefficients)
: TimeNLFormIntegrator<VARS>(geometry, u_old, aux_old, params, auxvars, coefficients) {
: TimeNLFormIntegrator<VARS>(geometry, time_step, u_old, aux_old, params, auxvars,
coefficients) {
this->integrator_name_ = "HeatTime";

this->expected_list_.push_back(GlossaryType::Concentration);
Expand Down
4 changes: 2 additions & 2 deletions kernel/include/Integrators/LatentHeatNLFormIntegrator.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,6 @@ template <class VARS>
class LatentHeatNLFormIntegrator : public SlothNLFormIntegrator<VARS> {
private:
int phase_field_index_;
double latent_time_step_;

std::list<GlossaryType> expected_list_{GlossaryType::Mobility};
mfem::DenseMatrix gradPsi;
Expand All @@ -74,7 +73,8 @@ class LatentHeatNLFormIntegrator : public SlothNLFormIntegrator<VARS> {
virtual void check_variables_consistency();

public:
LatentHeatNLFormIntegrator(Geometry geometry, const std::vector<mfem::ParGridFunction>& u_old,
LatentHeatNLFormIntegrator(Geometry geometry, const double time_step,
const std::vector<mfem::ParGridFunction>& u_old,
const std::vector<mfem::ParGridFunction>& aux_old,
const Parameters& params, std::vector<VARS*> auxvars,
const std::vector<Coefficients>& coefficients);
Expand Down
8 changes: 4 additions & 4 deletions kernel/include/Integrators/LatentHeatNLFormIntegrator.tpp
Original file line number Diff line number Diff line change
Expand Up @@ -59,12 +59,12 @@
*/
template <class VARS>
LatentHeatNLFormIntegrator<VARS>::LatentHeatNLFormIntegrator(
Geometry geometry, const std::vector<mfem::ParGridFunction>& u_old,
Geometry geometry, const double time_step, const std::vector<mfem::ParGridFunction>& u_old,
const std::vector<mfem::ParGridFunction>& aux_old, const Parameters& params,
std::vector<VARS*> auxvars, const std::vector<Coefficients>& coefficients)
: SlothNLFormIntegrator<VARS>(geometry, u_old, aux_old, params, auxvars, coefficients) {
: SlothNLFormIntegrator<VARS>(geometry, time_step, u_old, aux_old, params, auxvars,
coefficients) {
this->integrator_name_ = "LatentHeat";
this->latent_time_step_ = this->params_.template get_param_value<double>("latent_time_step");
this->check_variables_consistency();
}

Expand Down Expand Up @@ -273,7 +273,7 @@ double LatentHeatNLFormIntegrator<VARS>::get_latent_heat_at_ip(
const double phi = local_auxvalues[this->phase_field_index_];
const double phin = local_auxvalues_n[this->phase_field_index_];

double square_time_derivative = (phi - phin) / this->latent_time_step_;
double square_time_derivative = (phi - phin) / this->time_step_;
square_time_derivative *= square_time_derivative;
const double epsilon = 1.e-10;
const double latent_heat = -square_time_derivative / std::max(epsilon, mobility_value);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ class MassDiffusionFluxNLFormIntegrator : public DiffusionFluxNLFormIntegrator<V
const mfem::IntegrationPoint& ip) override;

public:
MassDiffusionFluxNLFormIntegrator(Geometry geometry,
MassDiffusionFluxNLFormIntegrator(Geometry geometry, const double time_step,
const std::vector<mfem::ParGridFunction>& u_old,
const std::vector<mfem::ParGridFunction>& aux_old,
const Parameters& params, std::vector<VARS*> auxvars,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,10 +91,11 @@ void MassDiffusionFluxNLFormIntegrator<VARS>::get_parameters() {
*/
template <class VARS>
MassDiffusionFluxNLFormIntegrator<VARS>::MassDiffusionFluxNLFormIntegrator(
Geometry geometry, const std::vector<mfem::ParGridFunction>& u_old,
Geometry geometry, const double time_step, const std::vector<mfem::ParGridFunction>& u_old,
const std::vector<mfem::ParGridFunction>& aux_old, const Parameters& params,
std::vector<VARS*> auxvars, const std::vector<Coefficients>& coefficients)
: DiffusionFluxNLFormIntegrator<VARS>(geometry, u_old, aux_old, params, auxvars, coefficients) {
: DiffusionFluxNLFormIntegrator<VARS>(geometry, time_step, u_old, aux_old, params, auxvars,
coefficients) {
this->get_parameters();
this->check_variables_consistency();
}
Expand Down
3 changes: 2 additions & 1 deletion kernel/include/Integrators/MeltingBaseNLFormIntegrator.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,8 @@ class MeltingBaseNLFormIntegrator : public SlothNLFormIntegrator<VARS> {
virtual void check_variables_consistency();

public:
MeltingBaseNLFormIntegrator(Geometry geometry, const std::vector<mfem::ParGridFunction>& u_old,
MeltingBaseNLFormIntegrator(Geometry geometry, const double time_step,
const std::vector<mfem::ParGridFunction>& u_old,
const std::vector<mfem::ParGridFunction>& aux_old,
const Parameters& params, std::vector<VARS*> auxvars,
const std::vector<Coefficients>& coefficients);
Expand Down
5 changes: 3 additions & 2 deletions kernel/include/Integrators/MeltingBaseNLFormIntegrator.tpp
Original file line number Diff line number Diff line change
Expand Up @@ -59,10 +59,11 @@
*/
template <class VARS>
MeltingBaseNLFormIntegrator<VARS>::MeltingBaseNLFormIntegrator(
Geometry geometry, const std::vector<mfem::ParGridFunction>& u_old,
Geometry geometry, const double time_step, const std::vector<mfem::ParGridFunction>& u_old,
const std::vector<mfem::ParGridFunction>& aux_old, const Parameters& params,
std::vector<VARS*> auxvars, const std::vector<Coefficients>& coefficients)
: SlothNLFormIntegrator<VARS>(geometry, u_old, aux_old, params, auxvars, coefficients) {}
: SlothNLFormIntegrator<VARS>(geometry, time_step, u_old, aux_old, params, auxvars,
coefficients) {}

/**
* @brief Initialize the integrator.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,8 @@ class MeltingCalphadNLFormIntegrator : public MeltingBaseNLFormIntegrator<VARS>
const std::span<const double>& aux_values) override;

public:
MeltingCalphadNLFormIntegrator(Geometry geometry, const std::vector<mfem::ParGridFunction>& u_old,
MeltingCalphadNLFormIntegrator(Geometry geometry, const double time_step,
const std::vector<mfem::ParGridFunction>& u_old,
const std::vector<mfem::ParGridFunction>& aux_old,
const Parameters& params, std::vector<VARS*> auxvars,
const std::vector<Coefficients>& coefficients);
Expand Down
7 changes: 4 additions & 3 deletions kernel/include/Integrators/MeltingCalphadNLFormIntegrator.tpp
Original file line number Diff line number Diff line change
Expand Up @@ -58,10 +58,11 @@
*/
template <class VARS>
MeltingCalphadNLFormIntegrator<VARS>::MeltingCalphadNLFormIntegrator(
Geometry geometry, const std::vector<mfem::ParGridFunction>& u_old,
Geometry geometry, const double time_step, const std::vector<mfem::ParGridFunction>& u_old,
const std::vector<mfem::ParGridFunction>& aux_old, const Parameters& params,
std::vector<VARS*> auxvars, const std::vector<Coefficients>& coefficients)
: MeltingBaseNLFormIntegrator<VARS>(geometry, u_old, aux_old, params, auxvars, coefficients) {
: MeltingBaseNLFormIntegrator<VARS>(geometry, time_step, u_old, aux_old, params, auxvars,
coefficients) {
this->integrator_name_ = "MeltingCalphad";

this->get_parameters();
Expand Down Expand Up @@ -232,5 +233,5 @@ double MeltingCalphadNLFormIntegrator<VARS>::get_seed_at_ip(
const double seed =
-aux_values[this->secondary_nucleus_index_] - aux_values[this->primary_nucleus_index_];

return seed;
return seed / this->time_step_;
}
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ class MeltingConstantNLFormIntegrator : public MeltingBaseNLFormIntegrator<VARS>
const std::span<const double>& aux_values) override;

public:
MeltingConstantNLFormIntegrator(Geometry geometry,
MeltingConstantNLFormIntegrator(Geometry geometry, const double time_step,
const std::vector<mfem::ParGridFunction>& u_old,
const std::vector<mfem::ParGridFunction>& aux_old,
const Parameters& params, std::vector<VARS*> auxvars,
Expand Down
Loading
Loading