29 static PetscErrorCode
petscNonlinearOutput(SNES, PetscInt its, PetscReal fnorm,
void * void_ptr);
35 static PetscErrorCode
petscLinearOutput(KSP, PetscInt its, PetscReal fnorm,
void * void_ptr);
60 virtual Real
time()
override;
const InputParameters & parameters() const
Get the parameters of the object.
Based class for output objects.
Real & _time
The current time for output purposes.
Real _t_tol
Time checking tolerance.
static PetscErrorCode petscLinearOutput(KSP, PetscInt its, PetscReal fnorm, void *void_ptr)
Performs the output onlinear iterations This is the monitor method that PETSc will call on linear ite...
static PetscErrorCode petscNonlinearOutput(SNES, PetscInt its, PetscReal fnorm, void *void_ptr)
Performs the output on non-linear iterations This is the monitor method that PETSc will call on non-l...
PetscOutput * _petsc_output
Adds the ability to output on every nonlinear and/or linear residual.
virtual Real time() override
Get the output time.
Real _nonlinear_start_time
Non-linear residual output start time.
static InputParameters validParams()
Real _linear_end_time
Linear residual output end time.
bool _on_linear_residual
True if current output calls is on the linear residual (used by time())
Real _nonlinear_dt
The pseuedo non-linear time step.
PetscInt _nonlinear_iter
Current non-linear iteration returned from PETSc.
bool inLinearTimeWindow()
Real _nonlinear_time
The psuedo non-linear time.
Real _norm
Current norm returned from PETSc.
virtual Real getOutputTime()
Get the time that will be used for stream/file outputting.
Real _nonlinear_end_time
Non-linear residual output end time.
Real _nonlinear_dt_divisor
Pseudo non-linear timestep divisor.
void solveSetup() override
Internal setup function that executes at the beginning of the time step.
bool inNonlinearTimeWindow()
Real _linear_start_time
Linear residual output start time.
Real _linear_time
Psuedo linear time.
PetscInt _linear_iter
Current linear iteration returned from PETSc.
Real _linear_dt
Psuedo linear time step.
bool _on_nonlinear_residual
True if current output call is on the non-linear residual (used by time())
Real _linear_dt_divisor
Pseudo linear timestep divisor.