include/meltpooldg/radiative_transport/radiative_transport_operation.hpp Source File

Developer Documentation: include/meltpooldg/radiative_transport/radiative_transport_operation.hpp Source File
Developer Documentation
radiative_transport_operation.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <deal.II/base/tensor.h>
4
5#include <deal.II/lac/la_parallel_vector.h>
6
14
15#include <memory>
16#include <vector>
17
19{
20 /*
21 * TODO
22 */
23 template <int dim, typename number>
25 {
26 private:
27 using VectorType = dealii::LinearAlgebra::distributed::Vector<number>;
28
30
32
33 const dealii::Tensor<1, dim, number> laser_direction;
34
36
37 const unsigned int rte_dof_idx;
38 const unsigned int rte_hanging_nodes_dof_idx;
39 const unsigned int rte_quad_idx;
40 const unsigned int hs_dof_idx;
41
44
45 std::unique_ptr<RadiativeTransportOperator<dim, number>> rte_operator;
46
47 std::unique_ptr<PseudoRTEOperation<dim, number>> pseudo_rte_operation;
48
49 public:
51 const RadiativeTransportData<number> &rte_data_in,
52 const dealii::Tensor<1, dim, number> &laser_direction_in,
53 const VectorType &heaviside_in,
54 const unsigned int rte_dof_idx_in,
55 const unsigned int rte_hanging_nodes_dof_idx_in,
56 const unsigned int rte_quad_idx_in,
57 const unsigned int hs_dof_idx_in);
58
59 void
60 reinit();
61
62 void
64
65 void
68 const std::map<dealii::types::boundary_id, std::shared_ptr<dealii::Function<dim>>> &bc_data,
70
71 void
72 solve();
73
74 const VectorType &
75 get_intensity() const;
76
79
83 void
84 attach_vectors(std::vector<VectorType *> &vectors);
85
89 void
91
92 void
94 const unsigned int heat_source_dof_idx,
95 const bool zero_out = true) const;
96
97 private:
99 };
100} // namespace MeltPoolDG::RadiativeTransport
A generic utility for managing simulation output data in the MeltPoolDG context.
Definition generic_data_out.hpp:32
Definition preconditioner.hpp:42
Definition radiative_transport_operation.hpp:25
const unsigned int rte_hanging_nodes_dof_idx
Definition radiative_transport_operation.hpp:38
VectorType intensity
Definition radiative_transport_operation.hpp:42
const RadiativeTransportData< number > rte_data
Definition radiative_transport_operation.hpp:31
void attach_output_vectors(MeltPoolDG::GenericDataOut< dim, number > &data_out) const
Definition radiative_transport_operation.cpp:288
void distribute_constraints()
Definition radiative_transport_operation.cpp:90
const VectorType & get_intensity() const
Definition radiative_transport_operation.cpp:265
Preconditioner< dim, VectorType, number > preconditioner
Definition radiative_transport_operation.hpp:98
const VectorType & heaviside
Definition radiative_transport_operation.hpp:35
void reinit()
Definition radiative_transport_operation.cpp:74
const unsigned int rte_dof_idx
Definition radiative_transport_operation.hpp:37
dealii::LinearAlgebra::distributed::Vector< number > VectorType
Definition radiative_transport_operation.hpp:27
const ScratchData< dim, dim, number > & scratch_data
Definition radiative_transport_operation.hpp:29
const unsigned int hs_dof_idx
Definition radiative_transport_operation.hpp:40
std::unique_ptr< RadiativeTransportOperator< dim, number > > rte_operator
Definition radiative_transport_operation.hpp:45
VectorType rhs
Definition radiative_transport_operation.hpp:43
const dealii::Tensor< 1, dim, number > laser_direction
Definition radiative_transport_operation.hpp:33
void solve()
Definition radiative_transport_operation.cpp:108
void compute_heat_source(VectorType &heat_source, const unsigned int heat_source_dof_idx, const bool zero_out=true) const
Definition radiative_transport_operation.cpp:169
const unsigned int rte_quad_idx
Definition radiative_transport_operation.hpp:39
void setup_constraints(ScratchData< dim, dim, number > &scratch_data, const std::map< dealii::types::boundary_id, std::shared_ptr< dealii::Function< dim > > > &bc_data, const PeriodicBoundaryConditions< dim > &pbc)
Definition radiative_transport_operation.cpp:97
std::unique_ptr< PseudoRTEOperation< dim, number > > pseudo_rte_operation
Definition radiative_transport_operation.hpp:47
void attach_vectors(std::vector< VectorType * > &vectors)
Definition radiative_transport_operation.cpp:279
Container for shared scratch data between operations/operators.
Definition scratch_data.hpp:61
Definition pseudo_rte_data.hpp:9
Definition periodic_boundary_conditions.hpp:11
Definition radiative_transport_data.hpp:32