GRINS-0.6.0
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
src
solver
include
grins
mesh_adaptive_solver_base.h
Go to the documentation of this file.
1
//-----------------------------------------------------------------------bl-
2
//--------------------------------------------------------------------------
3
//
4
// GRINS - General Reacting Incompressible Navier-Stokes
5
//
6
// Copyright (C) 2014-2015 Paul T. Bauman, Roy H. Stogner
7
// Copyright (C) 2010-2013 The PECOS Development Team
8
//
9
// This library is free software; you can redistribute it and/or
10
// modify it under the terms of the Version 2.1 GNU Lesser General
11
// Public License as published by the Free Software Foundation.
12
//
13
// This library is distributed in the hope that it will be useful,
14
// but WITHOUT ANY WARRANTY; without even the implied warranty of
15
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16
// Lesser General Public License for more details.
17
//
18
// You should have received a copy of the GNU Lesser General Public
19
// License along with this library; if not, write to the Free Software
20
// Foundation, Inc. 51 Franklin Street, Fifth Floor,
21
// Boston, MA 02110-1301 USA
22
//
23
//-----------------------------------------------------------------------el-
24
25
#ifndef GRINS_MESH_ADAPTIVE_SOLVER_BASE_H
26
#define GRINS_MESH_ADAPTIVE_SOLVER_BASE_H
27
28
// C++
29
#include <string>
30
31
// Boost
32
#include <boost/scoped_ptr.hpp>
33
34
// GRINS
35
#include "
grins/grins_solver.h
"
36
37
//libMesh
38
#include "libmesh/libmesh.h"
39
#include "libmesh/mesh_refinement.h"
40
41
// libMesh forward declarations
42
class
GetPot;
43
namespace
libMesh
44
{
45
class
MeshBase;
46
class
ErrorVector;
47
}
48
49
namespace
GRINS
50
{
51
class
MeshAdaptiveSolverBase
:
public
Solver
52
{
53
public
:
54
55
MeshAdaptiveSolverBase
(
const
GetPot& input );
56
57
virtual
~MeshAdaptiveSolverBase
();
58
59
protected
:
60
61
enum
RefinementFlaggingType
{
INVALID
= 0,
62
ERROR_TOLERANCE
,
63
N_ELEM_TARGET
,
64
ERROR_FRACTION
,
65
ELEM_FRACTION
,
66
MEAN_STD_DEV
};
67
68
unsigned
int
_max_refinement_steps
;
69
bool
_coarsen_by_parents
;
70
libMesh::Real
_absolute_global_tolerance
;
71
unsigned
int
_nelem_target
;
72
libMesh::Real
_refine_fraction
;
73
libMesh::Real
_coarsen_fraction
;
74
libMesh::Real
_coarsen_threshold
;
75
bool
_plot_cell_errors
;
76
std::string
_error_plot_prefix
;
77
78
unsigned
int
_node_level_mismatch_limit
;
79
unsigned
int
_edge_level_mismatch_limit
;
80
unsigned
int
_face_level_mismatch_limit
;
81
bool
_enforce_mismatch_limit_prior_to_refinement
;
82
83
RefinementFlaggingType
_refinement_type
;
84
85
boost::scoped_ptr<libMesh::MeshRefinement>
_mesh_refinement
;
86
87
void
build_mesh_refinement
( libMesh::MeshBase& mesh );
88
89
void
set_refinement_type
(
const
GetPot& input,
90
RefinementFlaggingType
& refinement_type );
91
92
bool
check_for_convergence
(
SolverContext
& context,
93
const
libMesh::ErrorVector& error )
const
;
94
95
void
flag_elements_for_refinement
(
const
libMesh::ErrorVector& error );
96
97
private
:
98
99
MeshAdaptiveSolverBase
();
100
101
};
102
103
}
// end namespace GRINS
104
105
#endif // GRINS_MESH_ADAPTIVE_SOLVER_BASE_H
GRINS::MeshAdaptiveSolverBase::N_ELEM_TARGET
Definition:
mesh_adaptive_solver_base.h:63
GRINS::Solver
Definition:
grins_solver.h:58
GRINS::MeshAdaptiveSolverBase::MEAN_STD_DEV
Definition:
mesh_adaptive_solver_base.h:66
GRINS::MeshAdaptiveSolverBase::_mesh_refinement
boost::scoped_ptr< libMesh::MeshRefinement > _mesh_refinement
Definition:
mesh_adaptive_solver_base.h:85
GRINS::MeshAdaptiveSolverBase::_node_level_mismatch_limit
unsigned int _node_level_mismatch_limit
Definition:
mesh_adaptive_solver_base.h:78
GRINS::MeshAdaptiveSolverBase::_coarsen_threshold
libMesh::Real _coarsen_threshold
Definition:
mesh_adaptive_solver_base.h:74
GRINS::MeshAdaptiveSolverBase::INVALID
Definition:
mesh_adaptive_solver_base.h:61
GRINS::MeshAdaptiveSolverBase::ERROR_FRACTION
Definition:
mesh_adaptive_solver_base.h:64
GRINS::MeshAdaptiveSolverBase::build_mesh_refinement
void build_mesh_refinement(libMesh::MeshBase &mesh)
Definition:
mesh_adaptive_solver_base.C:67
libMesh
Definition:
bc_handling_base.h:44
GRINS::MeshAdaptiveSolverBase::_face_level_mismatch_limit
unsigned int _face_level_mismatch_limit
Definition:
mesh_adaptive_solver_base.h:80
GRINS::MeshAdaptiveSolverBase::_absolute_global_tolerance
libMesh::Real _absolute_global_tolerance
Definition:
mesh_adaptive_solver_base.h:70
GRINS::MeshAdaptiveSolverBase::ERROR_TOLERANCE
Definition:
mesh_adaptive_solver_base.h:62
GRINS::MeshAdaptiveSolverBase::check_for_convergence
bool check_for_convergence(SolverContext &context, const libMesh::ErrorVector &error) const
Definition:
mesh_adaptive_solver_base.C:148
GRINS::MeshAdaptiveSolverBase::_enforce_mismatch_limit_prior_to_refinement
bool _enforce_mismatch_limit_prior_to_refinement
Definition:
mesh_adaptive_solver_base.h:81
GRINS
GRINS namespace.
Definition:
axisym_heat_transfer_bc_handling.h:31
GRINS::MeshAdaptiveSolverBase::flag_elements_for_refinement
void flag_elements_for_refinement(const libMesh::ErrorVector &error)
Definition:
mesh_adaptive_solver_base.C:177
GRINS::MeshAdaptiveSolverBase::_max_refinement_steps
unsigned int _max_refinement_steps
Definition:
mesh_adaptive_solver_base.h:68
GRINS::MeshAdaptiveSolverBase::_refine_fraction
libMesh::Real _refine_fraction
Definition:
mesh_adaptive_solver_base.h:72
GRINS::MeshAdaptiveSolverBase::_plot_cell_errors
bool _plot_cell_errors
Definition:
mesh_adaptive_solver_base.h:75
GRINS::MeshAdaptiveSolverBase::ELEM_FRACTION
Definition:
mesh_adaptive_solver_base.h:65
GRINS::MeshAdaptiveSolverBase::_nelem_target
unsigned int _nelem_target
Definition:
mesh_adaptive_solver_base.h:71
GRINS::MeshAdaptiveSolverBase::_refinement_type
RefinementFlaggingType _refinement_type
Definition:
mesh_adaptive_solver_base.h:83
GRINS::MeshAdaptiveSolverBase::MeshAdaptiveSolverBase
MeshAdaptiveSolverBase()
GRINS::MeshAdaptiveSolverBase::_error_plot_prefix
std::string _error_plot_prefix
Definition:
mesh_adaptive_solver_base.h:76
GRINS::MeshAdaptiveSolverBase::_coarsen_by_parents
bool _coarsen_by_parents
Definition:
mesh_adaptive_solver_base.h:69
GRINS::SolverContext
Simple class to hold objects passed to Solver::solve.
Definition:
solver_context.h:49
grins_solver.h
GRINS::MeshAdaptiveSolverBase::~MeshAdaptiveSolverBase
virtual ~MeshAdaptiveSolverBase()
Definition:
mesh_adaptive_solver_base.C:62
GRINS::MeshAdaptiveSolverBase::RefinementFlaggingType
RefinementFlaggingType
Definition:
mesh_adaptive_solver_base.h:61
GRINS::MeshAdaptiveSolverBase
Definition:
mesh_adaptive_solver_base.h:51
GRINS::MeshAdaptiveSolverBase::_coarsen_fraction
libMesh::Real _coarsen_fraction
Definition:
mesh_adaptive_solver_base.h:73
GRINS::MeshAdaptiveSolverBase::set_refinement_type
void set_refinement_type(const GetPot &input, RefinementFlaggingType &refinement_type)
Definition:
mesh_adaptive_solver_base.C:84
GRINS::MeshAdaptiveSolverBase::_edge_level_mismatch_limit
unsigned int _edge_level_mismatch_limit
Definition:
mesh_adaptive_solver_base.h:79
Generated on Mon Jun 22 2015 21:32:20 for GRINS-0.6.0 by
doxygen
1.8.9.1