include/meltpooldg/heat/heat_operation_base.hpp Source File

Developer Documentation: include/meltpooldg/heat/heat_operation_base.hpp Source File
Developer Documentation
heat_operation_base.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <deal.II/base/function.h>
4
5#include <deal.II/lac/la_parallel_block_vector.h>
6#include <deal.II/lac/la_parallel_vector.h>
7
11
12#include <vector>
13
14namespace MeltPoolDG::Heat
15{
16 template <int dim, typename number>
18 {
19 public:
20 using VectorType = dealii::LinearAlgebra::distributed::Vector<number>;
21 using BlockVectorType = dealii::LinearAlgebra::distributed::BlockVector<number>;
22
23 virtual ~HeatOperationBase() = default;
24
25 virtual void
26 reinit() = 0;
27
28 virtual void
30
31 virtual void
33
34 virtual void
35 set_initial_condition(const dealii::Function<dim> &initial_temperature) = 0;
36
37 virtual void
39
40 virtual void
42
43 virtual void
44 solve() = 0;
45
46 virtual void
48 const VectorType &distance,
49 const BlockVectorType &normal_vector,
50 const LevelSet::NearestPointData<double> &nearest_point_data) = 0;
51
52 virtual void
54
58 virtual void
59 attach_vectors(std::vector<VectorType *> &vectors) = 0;
60
64 virtual void
66
67 virtual void
69
70 /*
71 * getters
72 */
73 virtual const VectorType &
74 get_temperature() const = 0;
75
76 virtual VectorType &
78
79 virtual const VectorType &
81
82 virtual VectorType &
84
85 virtual const VectorType &
86 get_heat_source() const = 0;
87
88 virtual VectorType &
90 };
91} // namespace MeltPoolDG::Heat
A generic utility for managing simulation output data in the MeltPoolDG context.
Definition generic_data_out.hpp:32
Definition heat_operation_base.hpp:18
virtual VectorType & get_temperature()=0
virtual VectorType & get_heat_source()=0
dealii::LinearAlgebra::distributed::Vector< number > VectorType
Definition heat_operation_base.hpp:20
virtual void attach_output_vectors(GenericDataOut< dim, number > &data_out) const =0
virtual const VectorType & get_interface_temperature() const =0
virtual void compute_interface_temperature()=0
dealii::LinearAlgebra::distributed::BlockVector< number > BlockVectorType
Definition heat_operation_base.hpp:21
virtual void set_initial_condition(const dealii::Function< dim > &initial_temperature)=0
virtual void attach_vectors(std::vector< VectorType * > &vectors)=0
virtual const VectorType & get_heat_source() const =0
virtual const VectorType & get_temperature() const =0
virtual void register_interface_projection_data(const VectorType &distance, const BlockVectorType &normal_vector, const LevelSet::NearestPointData< double > &nearest_point_data)=0
virtual void distribute_dofs(ScratchData< dim, dim, number > &scratch_data) const =0
virtual VectorType & get_interface_temperature()=0
virtual void attach_output_vectors_failed_step(GenericDataOut< dim, number > &data_out) const =0
virtual void setup_constraints(ScratchData< dim, dim, number > &scratch_data) const =0
Container for shared scratch data between operations/operators.
Definition scratch_data.hpp:61
Definition apparent_capacity.hpp:9