PRISMS-PF Manual
Loading...
Searching...
No Matches
read_field_factory.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: © 2026 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
9
12
14
16
17#ifdef PRISMS_PF_WITH_VTK
19#endif
20
22
27
33
34template <unsigned int dim, typename number>
35std::shared_ptr<ReadFieldBase<dim, number>>
37 const SpatialDiscretization<dim> &spatial_discretization)
38{
39 switch (ic_file.format)
40 {
42#ifdef PRISMS_PF_WITH_VTK
43 return std::make_shared<ReadUnstructuredVTK<dim, number>>(ic_file,
44 spatial_discretization);
45#else
46 AssertThrow(false,
47 dealii::ExcMessage(
48 "You are trying to read a VTK file as an input; however, PRISMS-PF "
49 "was not built with VTK. Please reconfig PRISMS-PF with VTK using "
50 "-D PRISMS_PF_WITH_VTK=ON"));
51#endif
53 return std::make_shared<ReadBinary<dim, number>>(ic_file, spatial_discretization);
54 default:
55 AssertThrow(false, UnreachableCode());
56 }
57}
58
59PRISMS_PF_END_NAMESPACE
Class to read in a flat binary file and provide values at given points.
Definition read_binary.h:31
Definition read_vtk.h:24
Definition conditional_ostreams.cc:20
Type
Factory function to create appropriate reader based on input file type not a member of ReadFieldBase ...
Definition read_field_factory.h:29
std::shared_ptr< ReadFieldBase< dim, number > > create_reader(const InitialConditionFile &ic_file, const SpatialDiscretization< dim > &spatial_discretization)
Definition read_field_factory.h:36
Initial condition file.
Definition io_parameters.h:320
DataFormatType format
Definition io_parameters.h:337
@ FlatBinary
Definition io_parameters.h:326
@ VTKUnstructuredGrid
Definition io_parameters.h:327
Struct that holds spatial discretization parameters.
Definition spatial_discretization.h:308