Path: blob/main/src/time_integration/relaxation_methods/relaxation_methods.jl
5591 views
abstract type AbstractRelaxationTimeIntegrationAlgorithm <: AbstractTimeIntegrationAlgorithm end12abstract type RelaxationIntegrator <: AbstractTimeIntegrator end34get_tmp_cache(integrator::RelaxationIntegrator) = (integrator.u_tmp,)56# some algorithms from DiffEq like FSAL-ones need to be informed when a callback has modified u7u_modified!(integrator::RelaxationIntegrator, ::Bool) = false89# stop the time integration10function terminate!(integrator::RelaxationIntegrator)11integrator.finalstep = true12empty!(integrator.opts.tstops)1314return nothing15end1617@inline function update_t_relaxation!(integrator::RelaxationIntegrator)18# Check if due to entropy relaxation the final time would not be reached19if integrator.finalstep == true && integrator.gamma != 120integrator.gamma = 121end22integrator.t += integrator.gamma * integrator.dt2324return nothing25end2627include("entropy_relaxation.jl")28include("methods_subdiagonal.jl")29include("methods_vanderHouwen.jl")303132