ExaDG
Loading...
Searching...
No Matches
Public Member Functions | List of all members
ExaDG::ConvDiff::Operator< dim, Number > Class Template Reference
Inheritance diagram for ExaDG::ConvDiff::Operator< dim, Number >:
ExaDG::ConvDiff::Interface::Operator< Number >

Public Member Functions

 Operator (std::shared_ptr< Grid< dim > const > grid, std::shared_ptr< dealii::Mapping< dim > const > mapping, std::shared_ptr< MultigridMappings< dim, Number > > const multigrid_mappings, std::shared_ptr< BoundaryDescriptor< dim > const > boundary_descriptor, std::shared_ptr< FieldFunctions< dim > const > field_functions, Parameters const &param, std::string const &field, MPI_Comm const &mpi_comm)
 
void fill_matrix_free_data (MatrixFreeData< dim, Number > &matrix_free_data) const
 
void setup ()
 
void setup (std::shared_ptr< dealii::MatrixFree< dim, Number > const > matrix_free_in, std::shared_ptr< MatrixFreeData< dim, Number > const > matrix_free_data_in, std::string const &dof_index_velocity_external_in="")
 
void setup_after_coarsening_and_refinement ()
 
void initialize_dof_vector (VectorType &src) const final
 
void initialize_dof_vector_velocity (VectorType &src) const final
 
void interpolate_velocity (VectorType &velocity, double const time) const
 
void project_velocity (VectorType &velocity, double const time) const final
 
void prescribe_initial_conditions (VectorType &src, double const evaluation_time) const final
 
void evaluate_explicit_time_int (VectorType &dst, VectorType const &src, double const evaluation_time, VectorType const *velocity=nullptr) const final
 
void evaluate_convective_term (VectorType &dst, VectorType const &src, double const evaluation_time, VectorType const *velocity=nullptr) const
 
void rhs (VectorType &dst, double const evaluation_time=0.0, VectorType const *velocity=nullptr) const final
 
void apply_mass_operator (VectorType &dst, VectorType const &src) const
 
void apply_mass_operator_add (VectorType &dst, VectorType const &src) const
 
void apply_convective_term (VectorType &dst, VectorType const &src) const
 
void update_convective_term (double const evaluation_time, VectorType const *velocity=nullptr) const
 
void apply_diffusive_term (VectorType &dst, VectorType const &src) const
 
void apply_conv_diff_operator (VectorType &dst, VectorType const &src) const
 
void update_conv_diff_operator (double const evaluation_time, double const scaling_factor, VectorType const *velocity=nullptr)
 
void update_after_grid_motion (bool const update_matrix_free)
 
void prepare_coarsening_and_refinement (std::vector< VectorType * > &vectors)
 
void interpolate_after_coarsening_and_refinement (std::vector< VectorType * > &vectors)
 
unsigned int solve (VectorType &sol, VectorType const &rhs, bool const update_preconditioner, double const scaling_factor=-1.0, double const time=-1.0, VectorType const *velocity=nullptr) final
 
double calculate_time_step_max_efficiency (unsigned int const order_time_integrator) const final
 
double calculate_time_step_cfl_global (double const time) const final
 
double calculate_time_step_cfl_numerical_velocity (VectorType const &velocity) const final
 
double calculate_time_step_cfl_analytical_velocity (double const time) const final
 
double calculate_time_step_diffusion () const final
 
dealii::MatrixFree< dim, Number > const & get_matrix_free () const
 
dealii::DoFHandler< dim > const & get_dof_handler () const
 
dealii::DoFHandler< dim > const & get_dof_handler_velocity () const
 
dealii::types::global_dof_index get_number_of_dofs () const
 
std::string get_dof_name () const
 
unsigned int get_dof_index () const
 
unsigned int get_quad_index () const
 
std::shared_ptr< dealii::Mapping< dim > const > get_mapping () const
 
dealii::AffineConstraints< Number > const & get_constraints () const
 

Additional Inherited Members

- Public Types inherited from ExaDG::ConvDiff::Interface::Operator< Number >
typedef dealii::LinearAlgebra::distributed::Vector< Number > VectorType
 

Member Function Documentation

◆ calculate_time_step_cfl_analytical_velocity()

template<int dim, typename Number >
double ExaDG::ConvDiff::Operator< dim, Number >::calculate_time_step_cfl_analytical_velocity ( double const time) const
finalvirtual

◆ calculate_time_step_cfl_global()

template<int dim, typename Number >
double ExaDG::ConvDiff::Operator< dim, Number >::calculate_time_step_cfl_global ( double const time) const
finalvirtual

◆ calculate_time_step_cfl_numerical_velocity()

template<int dim, typename Number >
double ExaDG::ConvDiff::Operator< dim, Number >::calculate_time_step_cfl_numerical_velocity ( VectorType const & velocity) const
finalvirtual

◆ calculate_time_step_diffusion()

template<int dim, typename Number >
double ExaDG::ConvDiff::Operator< dim, Number >::calculate_time_step_diffusion ( ) const
finalvirtual

◆ calculate_time_step_max_efficiency()

template<int dim, typename Number >
double ExaDG::ConvDiff::Operator< dim, Number >::calculate_time_step_max_efficiency ( unsigned int const order_time_integrator) const
finalvirtual

◆ evaluate_explicit_time_int()

template<int dim, typename Number >
void ExaDG::ConvDiff::Operator< dim, Number >::evaluate_explicit_time_int ( VectorType & dst,
VectorType const & src,
double const evaluation_time,
VectorType const * velocity = nullptr ) const
finalvirtual

◆ initialize_dof_vector()

template<int dim, typename Number >
void ExaDG::ConvDiff::Operator< dim, Number >::initialize_dof_vector ( VectorType & src) const
finalvirtual

◆ initialize_dof_vector_velocity()

template<int dim, typename Number >
void ExaDG::ConvDiff::Operator< dim, Number >::initialize_dof_vector_velocity ( VectorType & src) const
finalvirtual

◆ prescribe_initial_conditions()

template<int dim, typename Number >
void ExaDG::ConvDiff::Operator< dim, Number >::prescribe_initial_conditions ( VectorType & src,
double const evaluation_time ) const
finalvirtual

◆ project_velocity()

template<int dim, typename Number >
void ExaDG::ConvDiff::Operator< dim, Number >::project_velocity ( VectorType & velocity,
double const time ) const
finalvirtual

◆ rhs()

template<int dim, typename Number >
void ExaDG::ConvDiff::Operator< dim, Number >::rhs ( VectorType & dst,
double const evaluation_time = 0.0,
VectorType const * velocity = nullptr ) const
finalvirtual

◆ setup() [1/2]

template<int dim, typename Number >
void ExaDG::ConvDiff::Operator< dim, Number >::setup ( )

Call this setup() function if the dealii::MatrixFree object can be set up by the present class.

◆ setup() [2/2]

template<int dim, typename Number >
void ExaDG::ConvDiff::Operator< dim, Number >::setup ( std::shared_ptr< dealii::MatrixFree< dim, Number > const > matrix_free_in,
std::shared_ptr< MatrixFreeData< dim, Number > const > matrix_free_data_in,
std::string const & dof_index_velocity_external_in = "" )

Call this setup() function if the dealii::MatrixFree object needs to be created outside this class. The typical use case would be multiphysics-coupling with one MatrixFree object handed over to several single-field solvers. Another typical use case is the use of an ALE formulation. Note that you need to call the function fill_matrix_free_data() beforehand in order to correctly initialize dealii::MatrixFree, which is then handed over to this setup() function.

◆ solve()

template<int dim, typename Number >
unsigned int ExaDG::ConvDiff::Operator< dim, Number >::solve ( VectorType & sol,
VectorType const & rhs,
bool const update_preconditioner,
double const scaling_factor = -1.0,
double const time = -1.0,
VectorType const * velocity = nullptr )
finalvirtual

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