34 #include "libmesh/error_vector.h"
35 #include "libmesh/steady_solver.h"
53 libMesh::SteadySolver* time_solver =
new libMesh::SteadySolver( *(system) );
55 system->time_solver = libMesh::AutoPtr<libMesh::TimeSolver>( time_solver );
67 std::cout <<
"==========================================================" << std::endl
69 <<
"==========================================================" << std::endl;
74 std::cout <<
"==========================================================" << std::endl
75 <<
"Adaptive Refinement Step " << r_step << std::endl
76 <<
"==========================================================" << std::endl;
100 libMesh::ErrorVector error;
102 std::cout <<
"==========================================================" << std::endl
103 <<
"Estimating error" << std::endl
104 <<
"==========================================================" << std::endl;
114 std::cout <<
"==========================================================" << std::endl
115 <<
"Checking convergence" << std::endl
116 <<
"==========================================================" << std::endl;
122 std::cout <<
"==========================================================" << std::endl
123 <<
"Convergence detected!" << std::endl
124 <<
"==========================================================" << std::endl;
130 if( r_step < this->_max_refinement_steps -1 )
132 std::cout <<
"==========================================================" << std::endl
133 <<
"Performing Mesh Refinement" << std::endl
134 <<
"==========================================================" << std::endl;
143 std::cout <<
"==========================================================" << std::endl
144 <<
"Refined mesh to " << std::setw(12) << mesh.n_active_elem()
145 <<
" active elements" << std::endl
146 <<
" " << std::setw(16) << context.
system->n_active_dofs()
147 <<
" active dofs" << std::endl
148 <<
"==========================================================" << std::endl;
154 context.
system->assemble_qoi();
155 const CompositeQoI* my_qoi = libMesh::libmesh_cast_ptr<const CompositeQoI*>(context.
system->get_qoi());
157 std::cout << std::endl;
169 const libMesh::QoISet& qoi_indices,
170 const libMesh::ParameterVector& parameters_in,
171 libMesh::SensitivityData& sensitivities)
const
173 context.
system->adjoint_qoi_parameter_sensitivity
174 (qoi_indices, parameters_in, sensitivities);
179 const libMesh::QoISet& qoi_indices,
180 const libMesh::ParameterVector& parameters_in,
181 libMesh::SensitivityData& sensitivities)
const
183 context.
system->forward_qoi_parameter_sensitivity
184 (qoi_indices, parameters_in, sensitivities);
187 context.
vis->output_residual_sensitivities
191 context.
vis->output_solution_sensitivities
virtual void forward_qoi_parameter_sensitivity(SolverContext &context, const libMesh::QoISet &qoi_indices, const libMesh::ParameterVector ¶meters_in, libMesh::SensitivityData &sensitivities) const
boost::scoped_ptr< libMesh::MeshRefinement > _mesh_refinement
virtual void solve(SolverContext &context)
void build_mesh_refinement(libMesh::MeshBase &mesh)
void steady_adjoint_solve(SolverContext &context)
Do steady version of adjoint solve.
bool check_for_convergence(SolverContext &context, const libMesh::ErrorVector &error) const
std::tr1::shared_ptr< libMesh::EquationSystems > equation_system
std::tr1::shared_ptr< libMesh::ErrorEstimator > error_estimator
void flag_elements_for_refinement(const libMesh::ErrorVector &error)
unsigned int _max_refinement_steps
virtual ~SteadyMeshAdaptiveSolver()
bool output_residual_sensitivities
GRINS::MultiphysicsSystem * system
Interface with libMesh for solving Multiphysics problems.
std::tr1::shared_ptr< PostProcessedQuantities< libMesh::Real > > postprocessing
void output_qoi(std::ostream &out) const
Basic output for computed QoI's.
SteadyMeshAdaptiveSolver(const GetPot &input)
std::tr1::shared_ptr< GRINS::Visualization > vis
std::string _error_plot_prefix
Simple class to hold objects passed to Solver::solve.
virtual void adjoint_qoi_parameter_sensitivity(SolverContext &context, const libMesh::QoISet &qoi_indices, const libMesh::ParameterVector ¶meters_in, libMesh::SensitivityData &sensitivities) const
bool output_solution_sensitivities
virtual void init_time_solver(MultiphysicsSystem *system)