libMesh
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 {
24 public:
26 
28 
29  void read(GetPot & input,
30  const std::vector<std::string> * other_variable_names = libmesh_nullptr);
31 
32  // Parameters applicable to entire EquationSystems:
33 
35  bool transient;
36  unsigned int deltat_reductions;
37  std::string timesolver_core;
41  std::vector<libMesh::FEMNormType> timesolver_norm;
42 
43  // Mesh generation
44 
45  unsigned int dimension;
53 
54  // Mesh refinement
55 
56  unsigned int nelem_target;
59  unsigned int max_adaptivesteps;
60  unsigned int initial_adaptivesteps;
61 
62  // Output
63 
64  unsigned int write_interval;
71 
72  // Types of Systems to create
73 
74  std::vector<std::string> system_types;
75 
76  // Parameters applicable to each system:
77 
78  // Boundary and initial conditions
79 
80 #ifdef LIBMESH_ENABLE_PERIODIC
81  std::vector<libMesh::PeriodicBoundary> periodic_boundaries;
82 #endif
83 
84  std::map<libMesh::subdomain_id_type, libMesh::FunctionBase<libMesh::Number> *>
86  std::map<libMesh::boundary_id_type, libMesh::FunctionBase<libMesh::Number> *>
89  std::map<libMesh::boundary_id_type, std::vector<unsigned int>>
92  std::map<int, std::map<libMesh::subdomain_id_type,
95  std::map<int, std::map<libMesh::boundary_id_type,
98 
99  // Execution type
100 
102 
103  // Approximation type
104 
105  std::vector<std::string> fe_family;
106  std::vector<unsigned int> fe_order;
108 
109  // Assembly options
110 
114 
121 
122  // Solver options
123 
133 
134  // Initialization
135 
136  unsigned int initial_sobolev_order;
138 
139  // Error indicators
140 
142  std::string indicator_type;
144  unsigned int sobolev_order;
145 
146  // System-specific parameters file
147 
148  std::string system_config_file;
149 };
150 
151 #endif // FEMPARAMETERS_H
unsigned int nelem_target
Definition: femparameters.h:56
libMesh::Real timesolver_upper_tolerance
Definition: femparameters.h:38
libMesh::Real domain_ymin
Definition: femparameters.h:48
bool print_solution_norms
libMesh::Real deltat
Definition: femparameters.h:38
unsigned int initial_timestep
Definition: femparameters.h:34
bool print_element_residuals
libMesh::Real initial_linear_tolerance
unsigned int dimension
Definition: femparameters.h:45
Encapsulates the MPI_Comm object.
Definition: parallel.h:657
unsigned int coarserefinements
Definition: femparameters.h:51
bool reuse_preconditioner
libMesh::Real timesolver_tolerance
Definition: femparameters.h:38
std::string domaintype
Definition: femparameters.h:46
libMesh::Real elementorder
Definition: femparameters.h:47
bool analytic_jacobians
TestClass subdomain_id_type
Based on the 4-byte comment warning above, this probably doesn&#39;t work with exodusII at all...
Definition: id_types.h:43
libMesh::Real domain_edge_length
Definition: femparameters.h:49
std::string timesolver_core
Definition: femparameters.h:37
std::string system_config_file
bool require_residual_reduction
unsigned int coarsegridy
Definition: femparameters.h:50
libMesh::Real domain_zmin
Definition: femparameters.h:48
bool print_residual_norms
libMesh::Real timesolver_maxgrowth
Definition: femparameters.h:38
const class libmesh_nullptr_t libmesh_nullptr
std::map< libMesh::boundary_id_type, libMesh::FunctionBase< libMesh::Number > * > neumann_conditions
Definition: femparameters.h:87
libMesh::Real relative_step_tolerance
std::string indicator_type
libMesh::Real refine_fraction
Definition: femparameters.h:58
libMesh::Real domain_edge_height
Definition: femparameters.h:49
unsigned int initial_extra_quadrature
std::vector< unsigned int > fe_order
std::string mesh_redistribute_func
Definition: femparameters.h:52
libMesh::Real coarsen_threshold
Definition: femparameters.h:58
bool write_gmv_error
Definition: femparameters.h:65
libMesh::Real end_time
Definition: femparameters.h:38
unsigned int max_linear_iterations
int8_t boundary_id_type
Definition: id_types.h:51
std::map< int, std::map< libMesh::subdomain_id_type, libMesh::FunctionBase< libMesh::Number > * > > other_interior_functions
Definition: femparameters.h:94
std::map< libMesh::subdomain_id_type, libMesh::FunctionBase< libMesh::Number > * > initial_conditions
Definition: femparameters.h:85
std::string domainfile
Definition: femparameters.h:46
libMesh::Real minimum_linear_tolerance
std::vector< libMesh::PeriodicBoundary > periodic_boundaries
Definition: femparameters.h:81
std::vector< std::string > fe_family
std::map< int, std::map< libMesh::boundary_id_type, libMesh::FunctionBase< libMesh::Number > * > > other_boundary_functions
Definition: femparameters.h:97
unsigned int coarsegridx
Definition: femparameters.h:50
libMesh::Real verify_analytic_jacobians
unsigned int write_interval
Definition: femparameters.h:64
unsigned int max_adaptivesteps
Definition: femparameters.h:59
std::map< libMesh::boundary_id_type, std::vector< unsigned int > > neumann_condition_variables
Definition: femparameters.h:90
int extra_quadrature_order
libMesh::Real global_tolerance
Definition: femparameters.h:57
std::string elementtype
Definition: femparameters.h:46
libMesh::Real absolute_residual_tolerance
This class forms the base class for all other classes that are expected to be implemented in parallel...
bool write_exodus_error
Definition: femparameters.h:65
libMesh::Real relative_residual_tolerance
bool print_element_solutions
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
bool print_jacobian_norms
unsigned int extrarefinements
Definition: femparameters.h:51
libMesh::Real min_step_length
unsigned int n_timesteps
Definition: femparameters.h:34
libMesh::Real timesolver_theta
Definition: femparameters.h:38
void read(GetPot &input, const std::vector< std::string > *other_variable_names=libmesh_nullptr)
unsigned int coarsegridz
Definition: femparameters.h:50
bool print_element_jacobians
unsigned int max_nonlinear_iterations
std::map< libMesh::boundary_id_type, std::vector< unsigned int > > dirichlet_condition_variables
Definition: femparameters.h:90
unsigned int initial_adaptivesteps
Definition: femparameters.h:60
bool time_solver_quiet
unsigned int initial_sobolev_order
This is the base class for functor-like classes.
libMesh::Real numerical_jacobian_h
std::map< libMesh::boundary_id_type, libMesh::FunctionBase< libMesh::Number > * > dirichlet_conditions
Definition: femparameters.h:87
std::vector< libMesh::FEMNormType > timesolver_norm
Definition: femparameters.h:41
unsigned int sobolev_order
std::vector< std::string > system_types
Definition: femparameters.h:74
libMesh::Real linear_tolerance_multiplier
void ErrorVector unsigned int
Definition: adjoints_ex3.C:360
FEMParameters(const libMesh::Parallel::Communicator &comm_in)
Definition: femparameters.C:24
bool write_tecplot_error
Definition: femparameters.h:65
libMesh::Real domain_edge_width
Definition: femparameters.h:49
libMesh::Real coarsen_fraction
Definition: femparameters.h:58
libMesh::Real steadystate_tolerance
Definition: femparameters.h:38
libMesh::Real domain_xmin
Definition: femparameters.h:48
unsigned int deltat_reductions
Definition: femparameters.h:36