PRISMS-PF Manual
Loading...
Searching...
No Matches
read_field_base.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: © 2025 PRISMS Center at the University of Michigan
2// SPDX-License-Identifier: GNU Lesser General Public Version 2.1
3
4#pragma once
5
6#include <deal.II/base/exceptions.h>
7#include <deal.II/base/point.h>
8#include <deal.II/lac/vector.h>
9
10#include <prismspf/core/types.h>
11
14
16
17#include <filesystem>
18
20
21template <unsigned int dim, typename number>
23{
24public:
30
34 virtual ~ReadFieldBase() = default;
35
40
46
51
56 operator=(ReadFieldBase &&read_base) noexcept = delete;
57
61 virtual void
63
67 virtual number
68 get_scalar_value(const dealii::Point<dim> &point, const std::string &scalar_name) = 0;
69
73 virtual dealii::Vector<number>
74 get_vector_value(const dealii::Point<dim> &point, const std::string &vector_name) = 0;
75
76protected:
77 // info for file/discretization passed by dependency injection, class is non-copyable
82
87};
88
89template <unsigned int dim, typename number>
93 : spatial_discretization(_spatial_discretization)
94 , ic_file(_ic_file)
95{
96 // Check that the filename exists
97 if (!std::filesystem::exists(this->ic_file.filename))
98 {
99 AssertThrow(false,
100 dealii::ExcMessage("File " + this->ic_file.filename +
101 " does not exist"));
102 }
103}
104
Definition read_field_base.h:23
ReadFieldBase & operator=(const ReadFieldBase &read_base)=delete
Copy assignment.
const InitialConditionFile & ic_file
Initial condition file object.
Definition read_field_base.h:86
virtual ~ReadFieldBase()=default
Destructor.
virtual number get_scalar_value(const dealii::Point< dim > &point, const std::string &scalar_name)=0
Get scalar value for a given point.
ReadFieldBase(const InitialConditionFile &_ic_file, const SpatialDiscretization< dim > &_spatial_discretization)
Constructor.
Definition read_field_base.h:90
ReadFieldBase & operator=(ReadFieldBase &&read_base) noexcept=delete
Move assignment.
const SpatialDiscretization< dim > & spatial_discretization
Spatial discretization object.
Definition read_field_base.h:81
ReadFieldBase(const ReadFieldBase &read_base)=delete
Copy constructor.
ReadFieldBase(ReadFieldBase &&read_base) noexcept=delete
Move constructor.
virtual dealii::Vector< number > get_vector_value(const dealii::Point< dim > &point, const std::string &vector_name)=0
Get vector value for a given point.
virtual void print_file()=0
Print the input file for debugging.
@ Value
Use value of the variable as a criterion for refinement.
Definition grid_refiner_criterion.h:31
Definition conditional_ostreams.cc:20
Struct that store the read-in information for a single file.
Definition load_initial_condition_parameters.h:25
std::string filename
Definition load_initial_condition_parameters.h:27
Struct that holds spatial discretization parameters.
Definition spatial_discretization.h:230