libMesh
Loading...
Searching...
No Matches
femparameters.h
Go to the documentation of this file.
1
2#ifndef FEMPARAMETERS_H
3#define FEMPARAMETERS_H
4
5#include "libmesh/libmesh_common.h"
6#include "libmesh/dof_map.h"
7#include "libmesh/enum_norm_type.h"
8#include "libmesh/function_base.h"
9#include "libmesh/getpot.h"
10#include "libmesh/id_types.h"
11#include "libmesh/parallel_object.h"
12#include "libmesh/periodic_boundaries.h"
13#include "libmesh/periodic_boundary.h"
14
15#include <limits>
16#include <map>
17#include <string>
18#include <vector>
19
20
21
23{
24public:
26
28
29 void read(GetPot & input,
30 const std::vector<std::string> * other_variable_names = nullptr);
31
32 // Parameters applicable to entire EquationSystems:
33
34 unsigned int initial_timestep, n_timesteps;
35 bool transient;
36 unsigned int deltat_reductions;
37 std::string timesolver_core;
38 std::string solution_history_type;
42 std::vector<libMesh::FEMNormType> timesolver_norm;
43
44 // Mesh generation
45
46 unsigned int dimension;
47 std::string domaintype, domainfile, elementtype;
51 unsigned int coarsegridx, coarsegridy, coarsegridz;
53 std::string mesh_redistribute_func;
54
55 // Mesh partitioning
56 std::string mesh_partitioner_type;
57
58 // Mesh refinement
59
60 unsigned int nelem_target;
63 unsigned int max_adaptivesteps;
64 unsigned int initial_adaptivesteps;
65
66 // Output
67
68 unsigned int write_interval;
75
76 // Types of Systems to create
77
78 std::vector<std::string> system_types;
79
80 // Parameters applicable to each system:
81
82 // Boundary and initial conditions
83
84#ifdef LIBMESH_ENABLE_PERIODIC
85 std::vector<libMesh::PeriodicBoundary> periodic_boundaries;
86#endif
87
88 std::map<libMesh::subdomain_id_type, libMesh::FunctionBase<libMesh::Number> *>
90 std::map<libMesh::boundary_id_type, libMesh::FunctionBase<libMesh::Number> *>
93 std::map<libMesh::boundary_id_type, std::vector<unsigned int>>
96 std::map<int, std::map<libMesh::subdomain_id_type,
99 std::map<int, std::map<libMesh::boundary_id_type,
102
103 // Execution type
104
106
107 // Approximation type
108
109 std::vector<std::string> fe_family;
110 std::vector<unsigned int> fe_order;
112
113 // Assembly options
114
118
125
126 // Solver options
127
129 bool use_petsc_snes;
138
139 // Initialization
140
141 unsigned int initial_sobolev_order;
142 unsigned int initial_extra_quadrature;
143
144 // Error indicators
145
146 bool refine_uniformly;
147 std::string indicator_type;
148 bool patch_reuse;
149 unsigned int sobolev_order;
150
151 // System-specific parameters file
152
153 std::string system_config_file;
154};
155
156#endif // FEMPARAMETERS_H
void ErrorVector unsigned int
std::string elementtype
std::map< libMesh::boundary_id_type, libMesh::FunctionBase< libMesh::Number > * > dirichlet_conditions
bool write_tecplot_error
std::vector< libMesh::PeriodicBoundary > periodic_boundaries
double minimum_linear_tolerance
double initial_linear_tolerance
unsigned int initial_adaptivesteps
unsigned int coarsegridx
unsigned int max_adaptivesteps
libMesh::Real timesolver_theta
double linear_tolerance_multiplier
libMesh::Real deltat
unsigned int write_interval
libMesh::Real refine_fraction
libMesh::Real end_time
libMesh::Real timesolver_tolerance
libMesh::Real domain_xmin
bool print_element_jacobians
libMesh::Real steadystate_tolerance
unsigned int coarserefinements
std::string mesh_redistribute_func
std::string system_config_file
std::map< libMesh::boundary_id_type, std::vector< unsigned int > > dirichlet_condition_variables
unsigned int initial_sobolev_order
libMesh::Real verify_analytic_jacobians
unsigned int max_nonlinear_iterations
libMesh::Real domain_edge_height
std::string domainfile
libMesh::Real timesolver_maxgrowth
libMesh::Real global_tolerance
bool write_exodus_error
std::string mesh_partitioner_type
unsigned int initial_extra_quadrature
libMesh::Real domain_ymin
std::string indicator_type
bool print_element_residuals
unsigned int coarsegridz
libMesh::Real min_step_length
libMesh::Real timesolver_upper_tolerance
std::string timesolver_core
libMesh::Real numerical_jacobian_h
std::map< int, std::map< libMesh::subdomain_id_type, libMesh::FunctionBase< libMesh::Number > * > > other_interior_functions
std::vector< std::string > fe_family
unsigned int initial_timestep
unsigned int dimension
libMesh::Real relative_residual_tolerance
std::map< libMesh::boundary_id_type, std::vector< unsigned int > > neumann_condition_variables
libMesh::Real elementorder
bool print_residual_norms
libMesh::Real absolute_residual_tolerance
bool print_jacobian_norms
std::string solution_history_type
unsigned int n_timesteps
std::string domaintype
std::vector< libMesh::FEMNormType > timesolver_norm
void read(GetPot &input, const std::vector< std::string > *other_variable_names=nullptr)
libMesh::Real domain_edge_length
std::map< int, std::map< libMesh::boundary_id_type, libMesh::FunctionBase< libMesh::Number > * > > other_boundary_functions
libMesh::Real relative_step_tolerance
unsigned int max_linear_iterations
bool require_residual_reduction
libMesh::Real coarsen_fraction
FEMParameters(const libMesh::Parallel::Communicator &comm_in)
std::map< libMesh::subdomain_id_type, libMesh::FunctionBase< libMesh::Number > * > initial_conditions
unsigned int nelem_target
std::vector< unsigned int > fe_order
unsigned int extrarefinements
unsigned int coarsegridy
libMesh::Real coarsen_threshold
bool print_solution_norms
std::map< libMesh::boundary_id_type, libMesh::FunctionBase< libMesh::Number > * > neumann_conditions
unsigned int deltat_reductions
bool reuse_preconditioner
libMesh::Real domain_edge_width
std::vector< std::string > system_types
bool print_element_solutions
unsigned int sobolev_order
libMesh::Real domain_zmin
Base class for functors that can be evaluated at a point and (optionally) time.
An object whose state is distributed along a set of processors.
int8_t boundary_id_type
Definition id_types.h:51
TestClass subdomain_id_type
Based on the 4-byte comment warning above, this probably doesn't work with exodusII at all....
Definition id_types.h:43
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real