include/meltpooldg/level_set/advection_diffusion_operation_base.hpp Source File

Developer Documentation: include/meltpooldg/level_set/advection_diffusion_operation_base.hpp Source File
Developer Documentation
advection_diffusion_operation_base.hpp
Go to the documentation of this file.
1#pragma once
2#include <deal.II/lac/la_parallel_block_vector.h>
3
7
8
10{
11 template <int dim, typename number>
13 {
14 protected:
17
18 public:
20
21 AdvectionDiffusionData<number> advec_diff_data;
22
23 virtual void
25
26 virtual void
31
32 virtual void
33 solve(const bool do_finish_time_step = true) = 0;
34
35 virtual void
36 reinit() = 0;
37
38 virtual void
39 set_initial_condition(const dealii::Function<dim> & /*initial_field_function*/) = 0;
40
41 virtual void
42 set_advection_velocity(const dealii::LinearAlgebra::distributed::Vector<number> &,
43 const unsigned int /*dof_idx*/)
44 {
45 AssertThrow(false, dealii::ExcNotImplemented());
46 }
47
48 virtual void
50 const std::shared_ptr<dealii::Function<dim, number>> & /*advection_velocity*/)
51 {
52 AssertThrow(false, dealii::ExcNotImplemented());
53 }
54
55 virtual void
58 const std::map<dealii::types::boundary_id,
59 std::shared_ptr<dealii::Function<dim>>> &dirichlet_bc_in) = 0;
60
61 virtual const dealii::LinearAlgebra::distributed::Vector<number> &
62 get_advected_field() const = 0;
63
64 virtual dealii::LinearAlgebra::distributed::Vector<number> &
66
67 virtual const dealii::LinearAlgebra::distributed::Vector<number> &
69
70 virtual dealii::LinearAlgebra::distributed::Vector<number> &
72
73 virtual dealii::LinearAlgebra::distributed::Vector<number> &
75
76 virtual const dealii::LinearAlgebra::distributed::Vector<number> &
77 get_user_rhs() const = 0;
78
79 virtual void
80 attach_vectors(std::vector<dealii::LinearAlgebra::distributed::Vector<number> *> &vectors) = 0;
81
82 virtual void
84 };
85} // namespace MeltPoolDG::LevelSet
A generic utility for managing simulation output data in the MeltPoolDG context.
Definition generic_data_out.hpp:32
Definition advection_diffusion_operation_base.hpp:13
AdvectionDiffusionData< number > advec_diff_data
Definition advection_diffusion_operation_base.hpp:21
virtual void set_advection_velocity_function(const std::shared_ptr< dealii::Function< dim, number > > &)
Definition advection_diffusion_operation_base.hpp:49
virtual void attach_vectors(std::vector< dealii::LinearAlgebra::distributed::Vector< number > * > &vectors)=0
virtual void attach_output_vectors(GenericDataOut< dim, number > &data_out) const =0
virtual void finish_time_advance()
Definition advection_diffusion_operation_base.hpp:27
virtual void solve(const bool do_finish_time_step=true)=0
virtual const dealii::LinearAlgebra::distributed::Vector< number > & get_advected_field_old() const =0
virtual const dealii::LinearAlgebra::distributed::Vector< number > & get_advected_field() const =0
virtual dealii::LinearAlgebra::distributed::Vector< number > & get_advected_field()=0
bool ready_for_time_advance
determine whether solution vectors are prepared for time advance
Definition advection_diffusion_operation_base.hpp:16
virtual const dealii::LinearAlgebra::distributed::Vector< number > & get_user_rhs() const =0
virtual dealii::LinearAlgebra::distributed::Vector< number > & get_advected_field_old()=0
virtual dealii::LinearAlgebra::distributed::Vector< number > & get_user_rhs()=0
virtual void setup_constraints(ScratchData< dim, dim, number > &mutable_scratch_data, const PeriodicBoundaryConditions< dim > &pbc, const std::map< dealii::types::boundary_id, std::shared_ptr< dealii::Function< dim > > > &dirichlet_bc_in)=0
virtual void set_initial_condition(const dealii::Function< dim > &)=0
virtual void set_advection_velocity(const dealii::LinearAlgebra::distributed::Vector< number > &, const unsigned int)
Definition advection_diffusion_operation_base.hpp:42
Container for shared scratch data between operations/operators.
Definition scratch_data.hpp:61
This operation solves the reinitialization problem for a CG- or DG-FEM-based discrete level-set field...
Definition advection_DG_operation.hpp:20
Definition periodic_boundary_conditions.hpp:11