Amandus: Simulations based on multilevel Schwarz methods
|
#include <tests.h>
Public Member Functions | |
ExactResidual (const AmandusApplicationSparse< dim > &application, AmandusIntegrator< dim > &integrator, const dealii::Function< dim > &exact_solution, unsigned int n_qpoints) | |
virtual void | operator() (dealii::AnyData &out, const dealii::AnyData &in) |
Public Member Functions inherited from AmandusResidual< dim > | |
AmandusResidual (const AmandusApplicationSparse< dim > &application, AmandusIntegrator< dim > &integrator) | |
Private Attributes | |
const dealii::Function< dim > * | exact_solution |
const dealii::QGauss< dim > | quadrature |
dealii::Vector< double > | projection |
Additional Inherited Members | |
Protected Attributes inherited from AmandusResidual< dim > | |
dealii::SmartPointer< const AmandusApplicationSparse< dim >, AmandusResidual< dim > > | application |
Pointer to the application computing the residual. More... | |
dealii::SmartPointer< AmandusIntegrator< dim >, AmandusResidual< dim > > | integrator |
Pointer to the local integrator defining the model. More... | |
A residual operator which represents a given residual operator minus this residual operator applied to the exact solution. I.e. if an AmandusResidual represents the action
\[ u \mapsto F(u) \]
for the given integrator, then ExactResidual represents the action
\[ u \mapsto F(u) - F(u_0) \]
where \(u_0\) is the exact_solution.
This is useful for verifying that we can recover a given function from a combination of system integrator, residual integrator and linear solver with Newton's method (notice that the derivative of the new objective does not change, thus it is sufficient to adjust the residual operator used in Newton's method without changing the inverse_derivative operator).
|
inline |
|
inlinevirtual |
Apply the residual operator to the objects in in
. Do this, by first calling AmandusIntegrator::extract_data() and then AmandusApplication::assemble_right_hand_side().
After assembling, the function checks for the element "Previous
time" in in
, which indicates a simple one-step method. If found, the vector of this element is subtracted from the result of the assembling.
Reimplemented from AmandusResidual< dim >.
|
private |
|
private |
|
private |