Matrix Free Solver 1.0.0
A matrix free solver for the Advection Diffusion Reaction problem implemented with deal.II
Loading...
Searching...
No Matches
DTR_mf::DTROperation< dim, fe_degree, number > Class Template Reference

The DTROperation class implements the DTR linear operation needed at each iteration of the linear solver. More...

#include <DTR_mf.hpp>

Inheritance diagram for DTR_mf::DTROperation< dim, fe_degree, number >:

Public Types

using value_type = number
 
using value_type = number
 

Public Member Functions

 DTROperation ()
 Default constructor.
 
void clear () override
 Clear the operation.
 
void evaluate_coefficients (const problem_data::DiffusionCoefficient< dim > &diffusion_function, const problem_data::TransportCoefficient< dim > &transport_function, const problem_data::ReactionCoefficient< dim > &reaction_function, const problem_data::ForcingTerm< dim > &forcing_term_function)
 Evaluate the coefficients of the DTR problem.
 
virtual void compute_diagonal () override
 Compute the diagonal entries of the matrix.
 
const Table< 2, VectorizedArray< number > > & get_diffusion_coefficient () const
 Get the diffusion coefficient table.
 
const Table< 2, Tensor< 1, dim, VectorizedArray< number > > > & get_transport_coefficient () const
 Get the transport coefficient table.
 
const Table< 2, VectorizedArray< number > > & get_reaction_coefficient () const
 Get the reaction coefficient table.
 
const Table< 2, VectorizedArray< number > > & get_forcing_term_coefficient () const
 Get the forcing term coefficient table.
 
 DTROperation ()
 
void clear () override
 
void evaluate_coefficients (const DiffusionCoefficient< dim > &diffusion_function, const TransportCoefficient< dim > &transport_function, const ReactionCoefficient< dim > &reaction_function, const ForcingTerm< dim > &forcing_term_function)
 
virtual void compute_diagonal () override
 
const Table< 2, VectorizedArray< number > > & get_diffusion_coefficient () const
 
const Table< 2, Tensor< 1, dim, VectorizedArray< number > > > & get_transport_coefficient () const
 
const Table< 2, VectorizedArray< number > > & get_reaction_coefficient () const
 
const Table< 2, VectorizedArray< number > > & get_forcing_term_coefficient () const
 

Detailed Description

template<int dim, int fe_degree, typename number>
class DTR_mf::DTROperation< dim, fe_degree, number >

The DTROperation class implements the DTR linear operation needed at each iteration of the linear solver.

This class is derived from the MatrixFreeOperators::Base class provided by deal.II. It is responsible for evaluating the coefficients, computing the diagonal, and applying the linear operation required by the Conjugate Gradient solver for the DTR problem.

Template Parameters
dimThe dimension of the problem.
fe_degreeThe degree of the finite element used.
numberThe number type used for the computations.

Member Typedef Documentation

◆ value_type [1/2]

template<int dim, int fe_degree, typename number >
using DTR_mf::DTROperation< dim, fe_degree, number >::value_type = number

◆ value_type [2/2]

template<int dim, int fe_degree, typename number >
using DTR_mf::DTROperation< dim, fe_degree, number >::value_type = number

Constructor & Destructor Documentation

◆ DTROperation() [1/2]

template<int dim, int fe_degree, typename number >
DTR_mf::DTROperation< dim, fe_degree, number >::DTROperation ( )

Default constructor.

◆ DTROperation() [2/2]

template<int dim, int fe_degree, typename number >
DTR_mf::DTROperation< dim, fe_degree, number >::DTROperation ( )

Member Function Documentation

◆ clear() [1/2]

template<int dim, int fe_degree, typename number >
void DTR_mf::DTROperation< dim, fe_degree, number >::clear ( )
override

Clear the operation.

◆ clear() [2/2]

template<int dim, int fe_degree, typename number >
void DTR_mf::DTROperation< dim, fe_degree, number >::clear ( )
override

◆ compute_diagonal() [1/2]

template<int dim, int fe_degree, typename number >
void DTR_mf::DTROperation< dim, fe_degree, number >::compute_diagonal ( )
overridevirtual

Compute the diagonal entries of the matrix.

◆ compute_diagonal() [2/2]

template<int dim, int fe_degree, typename number >
virtual void DTR_mf::DTROperation< dim, fe_degree, number >::compute_diagonal ( )
overridevirtual

◆ evaluate_coefficients() [1/2]

template<int dim, int fe_degree, typename number >
void DTR_mf::DTROperation< dim, fe_degree, number >::evaluate_coefficients ( const DiffusionCoefficient< dim > & diffusion_function,
const TransportCoefficient< dim > & transport_function,
const ReactionCoefficient< dim > & reaction_function,
const ForcingTerm< dim > & forcing_term_function )

◆ evaluate_coefficients() [2/2]

template<int dim, int fe_degree, typename number >
void DTR_mf::DTROperation< dim, fe_degree, number >::evaluate_coefficients ( const problem_data::DiffusionCoefficient< dim > & diffusion_function,
const problem_data::TransportCoefficient< dim > & transport_function,
const problem_data::ReactionCoefficient< dim > & reaction_function,
const problem_data::ForcingTerm< dim > & forcing_term_function )

Evaluate the coefficients of the DTR problem.

Parameters
diffusion_functionThe diffusion coefficient function.
transport_functionThe transport coefficient function.
reaction_functionThe reaction coefficient function.
forcing_term_functionThe forcing term function.

◆ get_diffusion_coefficient() [1/2]

template<int dim, int fe_degree, typename number >
const Table< 2, VectorizedArray< number > > & DTR_mf::DTROperation< dim, fe_degree, number >::get_diffusion_coefficient ( ) const
inline

Get the diffusion coefficient table.

Returns
The diffusion coefficient table.

◆ get_diffusion_coefficient() [2/2]

template<int dim, int fe_degree, typename number >
const Table< 2, VectorizedArray< number > > & DTR_mf::DTROperation< dim, fe_degree, number >::get_diffusion_coefficient ( ) const
inline

◆ get_forcing_term_coefficient() [1/2]

template<int dim, int fe_degree, typename number >
const Table< 2, VectorizedArray< number > > & DTR_mf::DTROperation< dim, fe_degree, number >::get_forcing_term_coefficient ( ) const
inline

Get the forcing term coefficient table.

Returns
The forcing term coefficient table.

◆ get_forcing_term_coefficient() [2/2]

template<int dim, int fe_degree, typename number >
const Table< 2, VectorizedArray< number > > & DTR_mf::DTROperation< dim, fe_degree, number >::get_forcing_term_coefficient ( ) const
inline

◆ get_reaction_coefficient() [1/2]

template<int dim, int fe_degree, typename number >
const Table< 2, VectorizedArray< number > > & DTR_mf::DTROperation< dim, fe_degree, number >::get_reaction_coefficient ( ) const
inline

Get the reaction coefficient table.

Returns
The reaction coefficient table.

◆ get_reaction_coefficient() [2/2]

template<int dim, int fe_degree, typename number >
const Table< 2, VectorizedArray< number > > & DTR_mf::DTROperation< dim, fe_degree, number >::get_reaction_coefficient ( ) const
inline

◆ get_transport_coefficient() [1/2]

template<int dim, int fe_degree, typename number >
const Table< 2, Tensor< 1, dim, VectorizedArray< number > > > & DTR_mf::DTROperation< dim, fe_degree, number >::get_transport_coefficient ( ) const
inline

Get the transport coefficient table.

Returns
The transport coefficient table.

◆ get_transport_coefficient() [2/2]

template<int dim, int fe_degree, typename number >
const Table< 2, Tensor< 1, dim, VectorizedArray< number > > > & DTR_mf::DTROperation< dim, fe_degree, number >::get_transport_coefficient ( ) const
inline

The documentation for this class was generated from the following files: