PRISMS-PF Manual
Loading...
Searching...
No Matches
problem.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
10
13
15
17
18#include <prismspf/config.h>
19
21
26template <unsigned int dim, unsigned int degree, typename number>
28{
29public:
33 Problem(const std::vector<FieldAttributes> &field_attributes,
34 const std::vector<SolveBlock> &solve_blocks,
35 const UserInputParameters<dim> &_user_inputs,
36 PhaseFieldTools<dim> &_pf_tools,
37 const PDEOperatorBase<dim, degree, number> &_pde_operator);
38
43 void
44 solve();
45
46private:
50 void
52
56 void
58
62 void
64
68 std::vector<FieldAttributes> field_attributes;
69
73 std::vector<SolveBlock> solve_blocks;
74
79
84
89
94
99
104
108 std::vector<std::shared_ptr<SolverBase<dim, degree, number>>> solvers;
109
114
119};
120
121PRISMS_PF_END_NAMESPACE
The class handles the generation and application of boundary conditions based on the user-inputs.
Definition constraint_manager.h:50
Class that manages the deal.II DoFHandlers.
Definition dof_manager.h:27
This class contains the user implementation of each PDE operator.
Definition pde_operator_base.h:24
void init_system()
Initialize the system.
Definition problem.cc:127
RefinementManager< dim, degree, number > grid_refiner
Grid refiner.
Definition problem.h:118
std::vector< FieldAttributes > field_attributes
Field attributes.
Definition problem.h:68
DoFManager< dim, degree > dof_manager
DoF manager.
Definition problem.h:93
const UserInputParameters< dim > * user_inputs_ptr
User-inputs.
Definition problem.h:78
void reinit_system()
Reinitialize the system.
std::vector< SolveBlock > solve_blocks
Solve groups.
Definition problem.h:73
std::vector< std::shared_ptr< SolverBase< dim, degree, number > > > solvers
Solvers.
Definition problem.h:108
SolveContext< dim, degree, number > solve_context
Solver context.
Definition problem.h:103
ConstraintManager< dim, degree, number > constraint_manager
Constraint handler.
Definition problem.h:98
void solve()
Main time-stepping loop that calls solve_increment, reinit_system, output_results,...
Definition problem.cc:191
Problem(const std::vector< FieldAttributes > &field_attributes, const std::vector< SolveBlock > &solve_blocks, const UserInputParameters< dim > &_user_inputs, PhaseFieldTools< dim > &_pf_tools, const PDEOperatorBase< dim, degree, number > &_pde_operator)
Constructor.
Definition problem.cc:96
TriangulationManager< dim > triangulation_manager
Triangulation handler.
Definition problem.h:88
void solve_increment(SimulationTimer &sim_timer)
Solve a single increment of the given PDEs.
Definition problem.cc:251
PhaseFieldTools< dim > * pf_tools
Phase field tools.
Definition problem.h:83
SolutionIndexer< dim, number > solution_indexer
Solution indexer.
Definition problem.h:113
Definition refinement_manager.h:30
Definition simulation_timer.h:13
Class that provides access to solution vectors spread across different groups.
Definition solution_indexer.h:20
This class provides context for a solver with ptrs to all the relevant dependencies.
Definition solve_context.h:36
This class handlers the generation and manipulation of triangulations.
Definition triangulation_manager.h:26
Definition user_input_parameters.h:32
Definition conditional_ostreams.cc:20
This class contains mutable utilities for phase field problems.
Definition phase_field_tools.h:21