PseudoRTEOperator< dim, number > Class Template Reference

Developer Documentation: MeltPoolDG::RadiativeTransport::PseudoRTEOperator< dim, number > Class Template Reference
Developer Documentation
MeltPoolDG::RadiativeTransport::PseudoRTEOperator< dim, number > Class Template Reference

#include <pseudo_rte_operator.hpp>

Inheritance diagram for MeltPoolDG::RadiativeTransport::PseudoRTEOperator< dim, number >:
[legend]
Collaboration diagram for MeltPoolDG::RadiativeTransport::PseudoRTEOperator< dim, number >:
[legend]

Public Member Functions

 PseudoRTEOperator (const ScratchData< dim, dim, number > &scratch_data_in, const RadiativeTransportData< number > &rte_data_in, const dealii::Tensor< 1, dim, number > &laser_direction_in, const VectorType &heaviside_in, const unsigned int rte_dof_idx_in, const unsigned int rte_quad_idx_in, const unsigned int hs_dof_idx_in)
 
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 (SparseMatrixType &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.
 
- 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.
 
virtual void pre ()
 Prepare for computations (e.g. update ghost values). Can be overridden by derived classes.
 
virtual void post ()
 Finalize for computations (e.g. zero out ghost values). Can be overridden by derived classes.
 
virtual void reinit ()
 Reinitialize data structures. Can be overridden by derived classes.
 

Private Types

using VectorType = typename OperatorMatrixFree< dim, number >::VectorType
 
using SparseMatrixType = typename OperatorMatrixFree< dim, number >::SparseMatrixType
 
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 > &intensity_vals) const
 

Private Attributes

const ScratchData< dim, dim, number > & scratch_data
 
const RadiativeTransportData< number > & rte_data
 
const dealii::Tensor< 1, dim, number > & laser_direction
 
const VectorTypeheaviside
 
const unsigned int rte_dof_idx
 
const unsigned int rte_quad_idx
 
const unsigned int hs_dof_idx
 
const number pure_gas_level_set
 
const number pure_liquid_level_set
 

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
 
- 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
 

Member Typedef Documentation

◆ scalar

template<int dim, typename number >
using MeltPoolDG::RadiativeTransport::PseudoRTEOperator< dim, number >::scalar = dealii::VectorizedArray<number>
private

◆ SparseMatrixType

template<int dim, typename number >
using MeltPoolDG::RadiativeTransport::PseudoRTEOperator< dim, number >::SparseMatrixType = typename OperatorMatrixFree<dim, number>::SparseMatrixType
private

◆ vector

template<int dim, typename number >
using MeltPoolDG::RadiativeTransport::PseudoRTEOperator< dim, number >::vector = dealii::Tensor<1, dim, dealii::VectorizedArray<number> >
private

◆ VectorType

template<int dim, typename number >
using MeltPoolDG::RadiativeTransport::PseudoRTEOperator< dim, number >::VectorType = typename OperatorMatrixFree<dim, number>::VectorType
private

Constructor & Destructor Documentation

◆ PseudoRTEOperator()

template<int dim, typename number >
MeltPoolDG::RadiativeTransport::PseudoRTEOperator< dim, number >::PseudoRTEOperator ( const ScratchData< dim, dim, number > &  scratch_data_in,
const RadiativeTransportData< number > &  rte_data_in,
const dealii::Tensor< 1, dim, number > &  laser_direction_in,
const VectorType heaviside_in,
const unsigned int  rte_dof_idx_in,
const unsigned int  rte_quad_idx_in,
const unsigned int  hs_dof_idx_in 
)

Member Function Documentation

◆ compute_inverse_diagonal_from_matrixfree()

template<int dim, typename number >
void MeltPoolDG::RadiativeTransport::PseudoRTEOperator< dim, number >::compute_inverse_diagonal_from_matrixfree ( VectorType ) const
finalvirtual

Compute the inverse diagonal using matrix-free techniques.

Parameters
diagVector representing the diagonal.

Reimplemented from MeltPoolDG::OperatorMatrixFree< dim, number >.

◆ compute_system_matrix_from_matrixfree()

template<int dim, typename number >
void MeltPoolDG::RadiativeTransport::PseudoRTEOperator< dim, number >::compute_system_matrix_from_matrixfree ( SparseMatrixType ) const
finalvirtual

Compute a sparse matrix using matrix-free techniques.

Parameters
matrixSparse matrix to compute.

Reimplemented from MeltPoolDG::OperatorMatrixFree< dim, number >.

◆ create_rhs()

template<int dim, typename number >
void MeltPoolDG::RadiativeTransport::PseudoRTEOperator< dim, number >::create_rhs ( VectorType ,
const VectorType  
) const
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
srcSource vector.
dstDestination vector.

Reimplemented from MeltPoolDG::OperatorMatrixFree< dim, number >.

◆ tangent_local_cell_operation()

template<int dim, typename number >
void MeltPoolDG::RadiativeTransport::PseudoRTEOperator< dim, number >::tangent_local_cell_operation ( FECellIntegrator< dim, 1, number > &  intensity_vals) const
private

◆ vmult()

template<int dim, typename number >
void MeltPoolDG::RadiativeTransport::PseudoRTEOperator< dim, number >::vmult ( VectorType ,
const VectorType  
) const
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
srcSource vector.
dstDestination vector.

Reimplemented from MeltPoolDG::OperatorMatrixFree< dim, number >.

Member Data Documentation

◆ heaviside

template<int dim, typename number >
const VectorType& MeltPoolDG::RadiativeTransport::PseudoRTEOperator< dim, number >::heaviside
private

◆ hs_dof_idx

template<int dim, typename number >
const unsigned int MeltPoolDG::RadiativeTransport::PseudoRTEOperator< dim, number >::hs_dof_idx
private

◆ laser_direction

template<int dim, typename number >
const dealii::Tensor<1, dim, number>& MeltPoolDG::RadiativeTransport::PseudoRTEOperator< dim, number >::laser_direction
private

◆ pure_gas_level_set

template<int dim, typename number >
const number MeltPoolDG::RadiativeTransport::PseudoRTEOperator< dim, number >::pure_gas_level_set
private

◆ pure_liquid_level_set

template<int dim, typename number >
const number MeltPoolDG::RadiativeTransport::PseudoRTEOperator< dim, number >::pure_liquid_level_set
private

◆ rte_data

template<int dim, typename number >
const RadiativeTransportData<number>& MeltPoolDG::RadiativeTransport::PseudoRTEOperator< dim, number >::rte_data
private

◆ rte_dof_idx

template<int dim, typename number >
const unsigned int MeltPoolDG::RadiativeTransport::PseudoRTEOperator< dim, number >::rte_dof_idx
private

◆ rte_quad_idx

template<int dim, typename number >
const unsigned int MeltPoolDG::RadiativeTransport::PseudoRTEOperator< dim, number >::rte_quad_idx
private

◆ scratch_data

template<int dim, typename number >
const ScratchData<dim, dim, number>& MeltPoolDG::RadiativeTransport::PseudoRTEOperator< dim, number >::scratch_data
private

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