ExaDG
Loading...
Searching...
No Matches
Public Member Functions | List of all members
ExaDG::Structure::Operator< dim, Number > Class Template Reference
Inheritance diagram for ExaDG::Structure::Operator< dim, Number >:
ExaDG::Structure::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, std::shared_ptr< MaterialDescriptor const > material_descriptor, 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, std::shared_ptr< MatrixFreeData< dim, Number > const > matrix_free_data)
 
void initialize_dof_vector (VectorType &src) const final
 
void prescribe_initial_displacement (VectorType &displacement, double const time) const final
 
void prescribe_initial_velocity (VectorType &velocity, double const time) const final
 
void compute_initial_acceleration (VectorType &initial_acceleration, VectorType const &initial_displacement, double const time) const final
 
void evaluate_mass_operator (VectorType &dst, VectorType const &src) const final
 
void apply_add_damping_operator (VectorType &dst, VectorType const &src) const final
 
void evaluate_nonlinear_residual (VectorType &dst, VectorType const &src, VectorType const &const_vector, double const factor, double const time) const
 
void set_solution_linearization (VectorType const &vector) const
 
void apply_linearized_operator (VectorType &dst, VectorType const &src, double const factor, double const time) const
 
void evaluate_elasticity_operator (VectorType &dst, VectorType const &src, double const factor, double const time) const
 
void apply_elasticity_operator (VectorType &dst, VectorType const &src, VectorType const &linearization, double const factor, double const time) const
 
std::tuple< unsigned int, unsigned int > solve_nonlinear (VectorType &sol, VectorType const &const_vector, double const scaling_factor_acceleration, double const scaling_factor_velocity, double const time, bool const update_preconditioner) const final
 
void rhs (VectorType &dst, double const time) const final
 
unsigned int solve_linear (VectorType &sol, VectorType const &rhs, double const scaling_factor_acceleration, double const scaling_factor_velocity, double const time, bool const update_preconditioner) const final
 
std::shared_ptr< dealii::MatrixFree< dim, Number > const > get_matrix_free () const
 
dealii::Mapping< dim > const & get_mapping () const
 
dealii::DoFHandler< dim > const & get_dof_handler () const
 
dealii::types::global_dof_index get_number_of_dofs () const
 
std::shared_ptr< ContainerInterfaceData< 1, dim, double > > get_container_interface_data_neumann () const
 
std::shared_ptr< ContainerInterfaceData< 1, dim, double > > get_container_interface_data_dirichlet () const
 
unsigned int get_dof_index () const
 

Additional Inherited Members

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

Member Function Documentation

◆ apply_add_damping_operator()

template<int dim, typename Number >
void ExaDG::Structure::Operator< dim, Number >::apply_add_damping_operator ( VectorType & dst,
VectorType const & src ) const
finalvirtual

◆ compute_initial_acceleration()

template<int dim, typename Number >
void ExaDG::Structure::Operator< dim, Number >::compute_initial_acceleration ( VectorType & initial_acceleration,
VectorType const & initial_displacement,
double const time ) const
finalvirtual

◆ evaluate_mass_operator()

template<int dim, typename Number >
void ExaDG::Structure::Operator< dim, Number >::evaluate_mass_operator ( VectorType & dst,
VectorType const & src ) const
finalvirtual

◆ initialize_dof_vector()

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

◆ prescribe_initial_displacement()

template<int dim, typename Number >
void ExaDG::Structure::Operator< dim, Number >::prescribe_initial_displacement ( VectorType & displacement,
double const time ) const
finalvirtual

◆ prescribe_initial_velocity()

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

◆ rhs()

template<int dim, typename Number >
void ExaDG::Structure::Operator< dim, Number >::rhs ( VectorType & dst,
double const time ) const
finalvirtual

◆ setup() [1/2]

template<int dim, typename Number >
void ExaDG::Structure::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::Structure::Operator< dim, Number >::setup ( std::shared_ptr< dealii::MatrixFree< dim, Number > const > matrix_free,
std::shared_ptr< MatrixFreeData< dim, Number > const > matrix_free_data )

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.

◆ solve_linear()

template<int dim, typename Number >
unsigned int ExaDG::Structure::Operator< dim, Number >::solve_linear ( VectorType & sol,
VectorType const & rhs,
double const scaling_factor_acceleration,
double const scaling_factor_velocity,
double const time,
bool const update_preconditioner ) const
finalvirtual

◆ solve_nonlinear()

template<int dim, typename Number >
std::tuple< unsigned int, unsigned int > ExaDG::Structure::Operator< dim, Number >::solve_nonlinear ( VectorType & sol,
VectorType const & const_vector,
double const scaling_factor_acceleration,
double const scaling_factor_velocity,
double const time,
bool const update_preconditioner ) const
finalvirtual

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