SpECTRE
v2024.09.29
|
Perform the implicit solve for one implicit sector. More...
#include <SolveImplicitSector.hpp>
Public Types | |
using | SystemVariables = typename SystemVariablesTag::type |
using | SectorVariables = Variables< typename ImplicitSector::tensors > |
using | return_tags = tmpl::list< SystemVariablesTag, Tags::SolveFailures< ImplicitSector > > |
using | argument_tags = tmpl::append< tmpl::list<::Tags::TimeStepper< ImexTimeStepper >, ::Tags::TimeStep, imex::Tags::ImplicitHistory< ImplicitSector >, Tags::Mode, Tags::SolveTolerance >, tmpl::join< evolution_data_tags > > |
Static Public Member Functions | |
template<typename... ForwardArgs> | |
static void | apply (const gsl::not_null< SystemVariables * > system_variables, const gsl::not_null< Scalar< DataVector > * > solve_failures, const ImexTimeStepper &time_stepper, const TimeDelta &time_step, const TimeSteppers::History< SectorVariables > &implicit_history, const Mode implicit_solve_mode, const double implicit_solve_tolerance, const ForwardArgs &... forward_args) |
Perform the implicit solve for one implicit sector.
This will update the tensors in the implicit sector and clean up the corresponding time stepper history. A new history entry is not added, because that should be done with the same values of the variables used for the explicit portion of the time derivative, which may still undergo variable-fixing-like corrections.
Tags::Time
from the DataBox. Most of the time, the value appropriate for evaluating the explicit RHS is stored there, so it will likely need to be set to the appropriate value for the implicit RHS for the duration of this mutation.