AdvectionDiffusionOperator< dim, number > Class Template Reference
|
Developer Documentation
|
#include <advection_diffusion_operator.hpp>
Public Member Functions | |
| AdvectionDiffusionOperator (const ScratchData< dim, dim, number > &scratch_data_in, const TimeIntegration::TimeIterator< number > &time_iterator, const AdvectionDiffusionData< number > &data_in, unsigned int dof_idx_in, unsigned int quad_idx_in) | |
| void | set_advection_velocity_function (const std::shared_ptr< dealii::Function< dim > > &advection_velocity_function_in) |
| Assigns a time-dependent advection velocity function. | |
| void | set_advection_velocity (const VectorType &advection_velocity_in, const unsigned int velocity_dof_idx_in) |
| Sets the discrete advection velocity vector and its DoF index. | |
| void | compute_system_matrix_and_rhs (const VectorType &advected_field_old, VectorType &rhs) const final |
| Compute the system matrix and right-hand side vector. | |
| void | vmult (VectorType &dst, const VectorType &src) const final |
| void | create_rhs (VectorType &dst, const VectorType &src) const final |
| Compute the right-hand side vector. | |
| void | compute_system_matrix_from_matrixfree (dealii::TrilinosWrappers::SparseMatrix &system_matrix) const final |
| Compute a sparse matrix using matrix-free techniques. | |
| void | compute_inverse_diagonal_from_matrixfree (VectorType &diagonal) const final |
| Compute the inverse diagonal using matrix-free techniques. | |
| void | reinit () final |
| Reinitialize data structures. Can be overridden by derived classes. | |
| void | pre () final |
| Prepare for computations (e.g. update ghost values). Can be overridden by derived classes. | |
| void | post () final |
| Finalize for computations (e.g. zero out ghost values). Can be overridden by derived classes. | |
| void | set_inflow_outflow_bc (std::vector< unsigned int > inflow_outflow_bc_local_indices_) |
| void | do_pre_vmult (VectorType &dst, const VectorType &src_in) const |
| void | do_post_vmult (VectorType &dst, const VectorType &src_in) const |
| void | post_system_matrix_compute (dealii::TrilinosWrappers::SparseMatrix &system_matrix) const |
| void | set_apply_inflow_outflow_constraints_pre_post_matrix_free (bool enable) |
Public Member Functions inherited from MeltPoolDG::OperatorMatrixFree< dim, number > | |
| virtual | ~OperatorMatrixFree ()=default |
| virtual void | create_rhs (BlockVectorType &, const VectorType &) const |
Compute the right-hand side vector for block vectors dst. | |
| virtual void | create_rhs (VectorType &, const BlockVectorType &) const |
Compute the right-hand side vector for block vectors src. | |
| virtual void | vmult (BlockVectorType &, const BlockVectorType &) const |
| virtual void | compute_inverse_diagonal_from_matrixfree (BlockVectorType &) const |
| Compute the inverse diagonal using matrix-free techniques for block vectors. | |
Public Member Functions inherited from MeltPoolDG::OperatorBase< number > | |
| virtual | ~OperatorBase ()=default |
| void | reset_dof_index (const unsigned int dof_idx_in) |
| Set the index for the current degrees of freedom (DoF). | |
| void | reset_time_increment (const number dt) |
| Set the time increment for the operator. | |
Public Member Functions inherited from MeltPoolDG::OperatorMatrixBased< dim, number > | |
| virtual | ~OperatorMatrixBased ()=default |
| virtual void | compute_system_matrix_and_rhs (const BlockVectorType &, VectorType &) const |
| Compute the system matrix and right-hand side vector for block vectors. | |
| virtual void | compute_system_matrix_and_rhs (const VectorType &, BlockVectorType &) const |
| Compute the system matrix and right-hand side block vector. | |
| virtual void | reinit_sparsity_pattern (const ScratchData< dim, dim, number > &scratch_data) |
| Reinitialize the sparsity pattern of the system matrix. | |
| const SparseMatrixType & | get_system_matrix () const |
| SparseMatrixType & | get_system_matrix () |
Private Types | |
| using | VectorType = dealii::LinearAlgebra::distributed::Vector< number > |
| using | BlockVectorType = dealii::LinearAlgebra::distributed::BlockVector< number > |
| using | SparseMatrixType = dealii::TrilinosWrappers::SparseMatrix |
| using | VectorizedArrayType = dealii::VectorizedArray< number > |
| using | vector = dealii::Tensor< 1, dim, dealii::VectorizedArray< number > > |
| using | scalar = dealii::VectorizedArray< number > |
Private Member Functions | |
| void | tangent_local_cell_operation (FECellIntegrator< dim, 1, number > &advected_field, FECellIntegrator< dim, dim, number > *velocity_vals, const bool do_reinit_cells) const |
| void | compute_stabilization_parameter (const FECellIntegrator< dim, 1, number > &advected_field_vals, const FECellIntegrator< dim, dim, number > *velocity_vals) const |
Private Attributes | |
| const ScratchData< dim, dim, number > & | scratch_data |
| const TimeIntegration::TimeIterator< number > & | time_iterator |
| const AdvectionDiffusionData< number > & | data |
| const unsigned int | advec_diff_dof_idx |
| const unsigned int | advec_diff_quad_idx |
| number | theta |
| dealii::AlignedVector< dealii::VectorizedArray< number > > | stab_param |
| bool | do_update_stab_param = true |
| std::vector< unsigned int > | inflow_outflow_bc_local_indices |
| std::vector< number > | inflow_outflow_constraints_values_temp |
| const VectorType * | advection_velocity = nullptr |
| unsigned int | velocity_dof_idx = dealii::numbers::invalid_unsigned_int |
| std::shared_ptr< dealii::Function< dim > > | advection_velocity_function = nullptr |
| bool | velocity_update_ghosts = false |
| bool | do_apply_inflow_outflow_constraints_pre_post = false |
Additional Inherited Members | |
Public Types inherited from MeltPoolDG::OperatorMatrixFree< dim, number > | |
| using | VectorType = dealii::LinearAlgebra::distributed::Vector< number > |
| using | BlockVectorType = dealii::LinearAlgebra::distributed::BlockVector< number > |
| using | SparseMatrixType = dealii::TrilinosWrappers::SparseMatrix |
Public Types inherited from MeltPoolDG::OperatorMatrixBased< dim, number > | |
| using | SparseMatrixType = dealii::TrilinosWrappers::SparseMatrix |
| using | SparsityPatternType = dealii::TrilinosWrappers::SparsityPattern |
| using | VectorType = dealii::LinearAlgebra::distributed::Vector< number > |
| using | BlockVectorType = dealii::LinearAlgebra::distributed::BlockVector< number > |
Protected Attributes inherited from MeltPoolDG::OperatorBase< number > | |
| unsigned int | dof_idx = dealii::numbers::invalid_unsigned_int |
| number | time_increment = numbers::invalid_double |
| number | time_increment_inv = numbers::invalid_double |
Protected Attributes inherited from MeltPoolDG::OperatorMatrixBased< dim, number > | |
| SparseMatrixType | system_matrix |
| SparsityPatternType | dsp |
Member Typedef Documentation
◆ BlockVectorType
|
private |
◆ scalar
|
private |
◆ SparseMatrixType
|
private |
◆ vector
|
private |
◆ VectorizedArrayType
|
private |
◆ VectorType
|
private |
Constructor & Destructor Documentation
◆ AdvectionDiffusionOperator()
| MeltPoolDG::LevelSet::AdvectionDiffusionOperator< dim, number >::AdvectionDiffusionOperator | ( | const ScratchData< dim, dim, number > & | scratch_data_in, |
| const TimeIntegration::TimeIterator< number > & | time_iterator, | ||
| const AdvectionDiffusionData< number > & | data_in, | ||
| unsigned int | dof_idx_in, | ||
| unsigned int | quad_idx_in | ||
| ) |
Member Function Documentation
◆ compute_inverse_diagonal_from_matrixfree()
|
finalvirtual |
Compute the inverse diagonal using matrix-free techniques.
- Parameters
-
diag Vector representing the diagonal.
Reimplemented from MeltPoolDG::OperatorMatrixFree< dim, number >.
◆ compute_stabilization_parameter()
|
private |
◆ compute_system_matrix_and_rhs()
|
finalvirtual |
Compute the system matrix and right-hand side vector.
- Parameters
-
src Source vector. dst Destination vector.
Reimplemented from MeltPoolDG::OperatorMatrixBased< dim, number >.
◆ compute_system_matrix_from_matrixfree()
|
finalvirtual |
Compute a sparse matrix using matrix-free techniques.
- Parameters
-
matrix Sparse matrix to compute.
Reimplemented from MeltPoolDG::OperatorMatrixFree< dim, number >.
◆ create_rhs()
|
finalvirtual |
Compute the right-hand side vector.
This function is intended to compute the right-hand side vector (dst). It is currently used in the utility function create_rhs_and_apply_dirichlet_matrixfree().
- Parameters
-
src Source vector. dst Destination vector.
Reimplemented from MeltPoolDG::OperatorMatrixFree< dim, number >.
◆ do_post_vmult()
| void MeltPoolDG::LevelSet::AdvectionDiffusionOperator< dim, number >::do_post_vmult | ( | VectorType & | dst, |
| const VectorType & | src_in | ||
| ) | const |
◆ do_pre_vmult()
| void MeltPoolDG::LevelSet::AdvectionDiffusionOperator< dim, number >::do_pre_vmult | ( | VectorType & | dst, |
| const VectorType & | src_in | ||
| ) | const |
◆ post()
|
finalvirtual |
Finalize for computations (e.g. zero out ghost values). Can be overridden by derived classes.
Reimplemented from MeltPoolDG::OperatorBase< number >.
◆ post_system_matrix_compute()
| void MeltPoolDG::LevelSet::AdvectionDiffusionOperator< dim, number >::post_system_matrix_compute | ( | dealii::TrilinosWrappers::SparseMatrix & | system_matrix | ) | const |
◆ pre()
|
finalvirtual |
Prepare for computations (e.g. update ghost values). Can be overridden by derived classes.
Reimplemented from MeltPoolDG::OperatorBase< number >.
◆ reinit()
|
finalvirtual |
Reinitialize data structures. Can be overridden by derived classes.
Reimplemented from MeltPoolDG::OperatorBase< number >.
◆ set_advection_velocity()
| void MeltPoolDG::LevelSet::AdvectionDiffusionOperator< dim, number >::set_advection_velocity | ( | const VectorType & | advection_velocity_in, |
| const unsigned int | velocity_dof_idx_in | ||
| ) |
Sets the discrete advection velocity vector and its DoF index.
- Parameters
-
advection_velocity_in Discrete velocity field. velocity_dof_idx_in Index of the associated DoF handler.
◆ set_advection_velocity_function()
| void MeltPoolDG::LevelSet::AdvectionDiffusionOperator< dim, number >::set_advection_velocity_function | ( | const std::shared_ptr< dealii::Function< dim > > & | advection_velocity_function_in | ) |
Assigns a time-dependent advection velocity function.
- Parameters
-
advection_velocity_function_in Shared pointer to a velocity field function.
◆ set_apply_inflow_outflow_constraints_pre_post_matrix_free()
| void MeltPoolDG::LevelSet::AdvectionDiffusionOperator< dim, number >::set_apply_inflow_outflow_constraints_pre_post_matrix_free | ( | bool | enable | ) |
◆ set_inflow_outflow_bc()
| void MeltPoolDG::LevelSet::AdvectionDiffusionOperator< dim, number >::set_inflow_outflow_bc | ( | std::vector< unsigned int > | inflow_outflow_bc_local_indices_ | ) |
additional functions for inflow/outflow boundary conditions
◆ tangent_local_cell_operation()
|
private |
◆ vmult()
|
finalvirtual |
Apply the matrix-free operator to a vector src and store It inside dst. This function is used in the iterative linear solver.
- Parameters
-
src Source vector. dst Destination vector.
Reimplemented from MeltPoolDG::OperatorMatrixFree< dim, number >.
Member Data Documentation
◆ advec_diff_dof_idx
|
private |
◆ advec_diff_quad_idx
|
private |
◆ advection_velocity
|
private |
◆ advection_velocity_function
|
private |
◆ data
|
private |
◆ do_apply_inflow_outflow_constraints_pre_post
|
mutableprivate |
◆ do_update_stab_param
|
mutableprivate |
◆ inflow_outflow_bc_local_indices
|
private |
◆ inflow_outflow_constraints_values_temp
|
mutableprivate |
◆ scratch_data
|
private |
◆ stab_param
|
mutableprivate |
◆ theta
|
private |
◆ time_iterator
|
private |
◆ velocity_dof_idx
|
private |
◆ velocity_update_ghosts
|
private |
The documentation for this class was generated from the following files:
- include/meltpooldg/level_set/advection_diffusion_operator.hpp
- source/level_set/advection_diffusion_operator.cpp
Generated by
Public Member Functions inherited from