Adaptive< T > Class Template Reference
#include <adaptive.h>
Public Member Functions | |
| Adaptive (EquationSystems &es) | |
| Adaptive (EquationSystems &es, const std::string &name, const unsigned int number) | |
| ~Adaptive () | |
| virtual void | solve () |
| unsigned int | refinement_step () const |
| unsigned int | n_refinement_steps () const |
| unsigned int & | n_refinement_steps () |
| unsigned int | max_refinement_level () const |
| unsigned int & | max_refinement_level () |
Protected Member Functions | |
| unsigned int & | refinement_step () |
Private Attributes | |
| unsigned int | _refinement_step |
| unsigned int | _n_refinement_steps |
| unsigned int | _max_refinement_level |
Detailed Description
template<class T = Linear<>>
class Adaptive< T >
This is a generic class that defines a adaptive to be used in a simulation. A user can define a adaptive by deriving from this class and implementing certain functions.
Definition at line 47 of file adaptive.h.
Constructor & Destructor Documentation
| Adaptive< T >::Adaptive | ( | EquationSystems & | es | ) | [inline] |
Constructor. Requires a reference to a system to be solved.
Definition at line 133 of file adaptive.h.
00133 : 00134 T (es), // Call the base class constructor 00135 _refinement_step (0), // Solver parameters 00136 _n_refinement_steps (1), 00137 _max_refinement_level(100) 00138 { 00139 libmesh_deprecated(); 00140 }
| Adaptive< T >::Adaptive | ( | EquationSystems & | es, | |
| const std::string & | name, | |||
| const unsigned int | number | |||
| ) | [inline] |
Constructor. Requires a referece to the EquationSystems object.
Definition at line 145 of file adaptive.h.
Member Function Documentation
| unsigned int& Adaptive< T >::max_refinement_level | ( | ) | [inline] |
Sets the maximum level for mesh refinement.
Definition at line 97 of file adaptive.h.
References Adaptive< T >::_max_refinement_level.
00097 { return _max_refinement_level; }
| unsigned int Adaptive< T >::max_refinement_level | ( | ) | const [inline] |
- Returns:
- the maximum level for mesh refinement.
Definition at line 92 of file adaptive.h.
References Adaptive< T >::_max_refinement_level.
Referenced by Adaptive< T >::solve().
00092 { return _max_refinement_level; }
| unsigned int& Adaptive< T >::n_refinement_steps | ( | ) | [inline] |
Sets the number of refinement steps to take.
Definition at line 87 of file adaptive.h.
References Adaptive< T >::_n_refinement_steps.
00087 { return _n_refinement_steps; }
| unsigned int Adaptive< T >::n_refinement_steps | ( | ) | const [inline] |
- Returns:
- the number of refinement steps to take.
Definition at line 82 of file adaptive.h.
References Adaptive< T >::_n_refinement_steps.
Referenced by Adaptive< T >::solve().
00082 { return _n_refinement_steps; }
| unsigned int& Adaptive< T >::refinement_step | ( | ) | [inline, protected] |
Sets the current refinement step.
Definition at line 106 of file adaptive.h.
References Adaptive< T >::_refinement_step.
00106 { return _refinement_step; }
| unsigned int Adaptive< T >::refinement_step | ( | ) | const [inline] |
- Returns:
- the current refinement step.
Definition at line 77 of file adaptive.h.
References Adaptive< T >::_refinement_step.
Referenced by Adaptive< T >::solve().
00077 { return _refinement_step; }
| void Adaptive< T >::solve | ( | ) | [inline, virtual] |
Re-implement the solve member to do a fixed number of linear solves
Definition at line 164 of file adaptive.h.
References JumpErrorEstimator::estimate_error(), MeshRefinement::flag_elements_by_error_fraction(), Adaptive< T >::max_refinement_level(), mesh, Adaptive< T >::n_refinement_steps(), MeshRefinement::refine_and_coarsen_elements(), and Adaptive< T >::refinement_step().
00165 { 00166 // First solve the base system 00167 T::solve (); 00168 00169 for (this->refinement_step()=0; 00170 this->refinement_step() < this->n_refinement_steps(); 00171 this->refinement_step()++) 00172 { 00173 // Then estimate the error in the base system 00174 // and refine the mesh 00175 { 00176 ErrorVector error; 00177 00178 KellyErrorEstimator error_estimator; 00179 00180 error_estimator.estimate_error (this->system(), "incomp_ns", error); 00181 00182 MeshRefinement mesh_refinement (this->mesh()); 00183 00184 mesh_refinement.flag_elements_by_error_fraction (error, 00185 0.40, 00186 0.40, 00187 this->max_refinement_level()); 00188 00189 mesh_refinement.refine_and_coarsen_elements (); 00190 00191 this->system().reinit (); 00192 } 00193 00194 // Then re-solve the base system 00195 T::solve (); 00196 } 00197 }
Member Data Documentation
unsigned int Adaptive< T >::_max_refinement_level [private] |
The maximum allowable levels of refinement.
Definition at line 125 of file adaptive.h.
Referenced by Adaptive< T >::max_refinement_level().
unsigned int Adaptive< T >::_n_refinement_steps [private] |
The number of refinement steps to take.
Definition at line 120 of file adaptive.h.
Referenced by Adaptive< T >::n_refinement_steps().
unsigned int Adaptive< T >::_refinement_step [private] |
The current refinement step.
Definition at line 115 of file adaptive.h.
Referenced by Adaptive< T >::refinement_step().
The documentation for this class was generated from the following file: