9 using namespace dealii;
53 const VectorType &variables = VectorType(),
54 const VectorType &dt_solution = VectorType(),
55 const VectorType &
residual = VectorType()) = 0;
112 [[maybe_unused]]
const VectorType &spatial_solution)
114 throw std::runtime_error(
"Not implemented!");
126 [[maybe_unused]]
const VectorType &variables,
127 [[maybe_unused]]
const VectorType &spatial_solution)
129 throw std::runtime_error(
"Not implemented!");
143 this->
mass(mass, solution_global, solution_global, weight);
156 virtual void mass(VectorType &
mass,
const VectorType &solution_global,
const VectorType &solution_global_dot,
178 const VectorType &variables = VectorType())
180 this->
residual(residual, solution_global, weight, solution_global, weight_mass, variables);
203 const VectorType &solution_global_dot,
NumberType weight_mass,
204 const VectorType &variables = VectorType()) = 0;
220 this->
jacobian_mass(jacobian, solution_global, solution_global, mass_weight, 0.);
252 NumberType mass_weight,
const VectorType &variables = VectorType())
254 this->
jacobian(jacobian, solution_global, weight, solution_global, mass_weight, mass_weight, variables);
269 const VectorType &variables = VectorType()) = 0;
This is the general assembler interface for any kind of discretization. An assembler is responsible f...
Definition abstract_assembler.hh:39
void mass(VectorType &mass, const VectorType &solution_global, NumberType weight)
Calculates the mass for an ODE.
Definition abstract_assembler.hh:141
virtual void jacobian_variables(FullMatrix< NumberType > &jacobian, const VectorType &variables, const VectorType &spatial_solution)
When coupling the spatial discretization to additional variables, this function should calculate the ...
Definition abstract_assembler.hh:125
void jacobian_mass(SparseMatrixType &jacobian, const VectorType &solution_global, NumberType mass_weight=1.)
Calculates the jacobian of the mass function for an ODE.
Definition abstract_assembler.hh:218
virtual void reinit_vector(VectorType &vector) const =0
Reinitialize an arbitrary vector so that it has the correct size and structure.
void jacobian(SparseMatrixType &jacobian, const VectorType &solution_global, NumberType weight, NumberType mass_weight, const VectorType &variables=VectorType())
Calculates the jacobian of the residual function for an ODE.
Definition abstract_assembler.hh:251
virtual void jacobian_mass(SparseMatrixType &jacobian, const VectorType &solution_global, const VectorType &solution_global_dot, NumberType alpha=1., NumberType beta=1.)=0
Calculates the jacobian of the mass function for a DAE.
virtual void mass(VectorType &mass, const VectorType &solution_global, const VectorType &solution_global_dot, NumberType weight)=0
Calculates the mass for a DAE.
typename get_type::NumberType< VectorType > NumberType
Definition abstract_assembler.hh:41
void residual(VectorType &residual, const VectorType &solution_global, NumberType weight, NumberType weight_mass, const VectorType &variables=VectorType())
Calculates the residual for an ODE.
Definition abstract_assembler.hh:177
virtual void residual_variables(VectorType &residual, const VectorType &variables, const VectorType &spatial_solution)
When coupling the spatial discretization to additional variables, this function should calculate the ...
Definition abstract_assembler.hh:111
virtual void attach_data_output(DataOutput< dim, VectorType > &data_out, const VectorType &solution, const VectorType &variables=VectorType(), const VectorType &dt_solution=VectorType(), const VectorType &residual=VectorType())=0
Attach any data output to the DataOutput object provided. This can be used to extract additional data...
virtual IndexSet get_differential_indices() const =0
Obtain the dofs which contain time derivatives.
virtual void jacobian(SparseMatrixType &jacobian, const VectorType &solution_global, NumberType weight, const VectorType &solution_global_dot, NumberType alpha, NumberType beta, const VectorType &variables=VectorType())=0
Calculates the jacobian of the residual function for a DAE.
virtual void residual(VectorType &residual, const VectorType &solution_global, NumberType weight, const VectorType &solution_global_dot, NumberType weight_mass, const VectorType &variables=VectorType())=0
Calculates the residual for a DAE.
virtual void set_time(double t)=0
Set the current time. The assembler should usually just forward this to the numerical model.
virtual const SparseMatrixType & get_mass_matrix() const =0
Obtain the mass matrix.
virtual const get_type::SparsityPattern< SparseMatrixType > & get_sparsity_pattern_jacobian() const =0
Obtain the sparsity pattern of the jacobian matrix.
virtual void reinit()=0
Reinitialize the assembler. This is necessary if the mesh has changed, e.g. after a mesh refinement.
Class to manage writing to files. FEM functions are written to vtk files and other data is written to...
Definition data_output.hh:20
typename internal::_NumberType< VectorType >::value NumberType
Definition types.hh:61
typename internal::_SparsityPattern< SparseMatrixType >::value SparsityPattern
Definition types.hh:64
Definition complex_math.hh:14