26 #ifndef OOMPH_ERROR_ESTIMATOR_NAMESPACE_HEADER
27 #define OOMPH_ERROR_ESTIMATOR_NAMESPACE_HEADER
111 std::ostream& outfile,
117 "compute_exact_Z2_error undefined for this element \n";
118 outfile << error_message;
351 adjacent_elements_pt,
377 const unsigned& num_recovery_terms,
378 const unsigned& num_flux_terms,
411 const unsigned& num_flux_terms,
447 const unsigned& central_node_number,
448 const bool& use_lagrangian_coordinates =
false)
457 "Can't use this error estimator on distributed meshes!",
468 "Can't build error estimator if there are no elements in mesh\n",
475 if (use_lagrangian_coordinates)
479 if (solid_nod_pt != 0)
484 unsigned nregion = elements_to_refine.size();
487 for (
unsigned e = 0;
e < nregion;
e++)
493 unsigned nnod = el_pt->
nnode();
494 for (
unsigned j = 0;
j < nnod;
j++)
497 for (
unsigned i = 0;
i < dim;
i++)
499 double x = nod_pt->
x(
i);
500 if (use_lagrangian_coordinates)
503 if (solid_nod_pt != 0)
505 x = solid_nod_pt->
xi(
i);
533 const unsigned& central_node_number,
534 const bool& use_lagrangian_coordinates =
false)
542 "Can't build error estimator if there are no elements in mesh\n",
548 unsigned nregion = 1;
574 std::ostringstream warning_stream;
576 <<
"No output defined in DummyErrorEstimator::get_element_errors()\n"
577 <<
"Ignoring doc_info flag.\n";
579 "DummyErrorEstimator::get_element_errors()",
584 unsigned nelem = mesh_pt->
nelement();
585 for (
unsigned e = 0;
e < nelem;
e++)
587 elemental_error[
e] = 0.0;
593 for (
unsigned r = 0;
r < nregion;
r++)
595 bool is_inside =
true;
597 for (
unsigned i = 0;
i < dim;
i++)
599 double x = nod_pt->
x(
i);
603 if (solid_nod_pt != 0)
605 x = solid_nod_pt->
xi(
i);
621 elemental_error[
e] = 1.0;
int i
Definition: BiCGSTAB_step_by_step.cpp:9
Array< double, 1, 3 > e(1./3., 0.5, 2.)
Definition: oomph_utilities.h:499
bool is_doc_enabled() const
Are we documenting?
Definition: oomph_utilities.h:548
void disable_doc()
Disable documentation.
Definition: oomph_utilities.h:542
Definition: error_estimator.h:435
bool Use_lagrangian_coordinates
Definition: error_estimator.h:631
Vector< Vector< double > > Region_low_bound
Lower bounds for the coordinates of the refinement regions.
Definition: error_estimator.h:641
DummyErrorEstimator(Mesh *mesh_pt, const Vector< unsigned > &elements_to_refine, const unsigned ¢ral_node_number, const bool &use_lagrangian_coordinates=false)
Definition: error_estimator.h:445
DummyErrorEstimator(const DummyErrorEstimator &)=delete
Broken copy constructor.
virtual void get_element_errors(Mesh *&mesh_pt, Vector< double > &elemental_error, DocInfo &doc_info)
Definition: error_estimator.h:567
Vector< Vector< double > > Region_upp_bound
Upper bounds for the coordinates of the refinement regions.
Definition: error_estimator.h:638
unsigned Central_node_number
Definition: error_estimator.h:635
DummyErrorEstimator(Mesh *mesh_pt, const Vector< double > &lower_left, const Vector< double > &upper_right, const unsigned ¢ral_node_number, const bool &use_lagrangian_coordinates=false)
Definition: error_estimator.h:530
virtual ~DummyErrorEstimator()
Empty virtual destructor.
Definition: error_estimator.h:562
void operator=(const DummyErrorEstimator &)=delete
Broken assignment operator.
Definition: error_estimator.h:79
ElementWithZ2ErrorEstimator(const ElementWithZ2ErrorEstimator &)=delete
Broken copy constructor.
void operator=(const ElementWithZ2ErrorEstimator &)=delete
Broken assignment operator.
virtual Node * vertex_node_pt(const unsigned &j) const =0
virtual unsigned nvertex_node() const =0
Number of vertex nodes in the element.
virtual unsigned ncompound_fluxes()
Definition: error_estimator.h:100
virtual void get_Z2_compound_flux_indices(Vector< unsigned > &flux_index)
Definition: error_estimator.h:127
ElementWithZ2ErrorEstimator()
Default empty constructor.
Definition: error_estimator.h:82
virtual void get_Z2_flux(const Vector< double > &s, Vector< double > &flux)=0
Z2 'flux' terms for Z2 error estimation.
virtual void compute_exact_Z2_error(std::ostream &outfile, FiniteElement::SteadyExactSolutionFctPt exact_flux_pt, double &error, double &norm)
Definition: error_estimator.h:110
virtual double geometric_jacobian(const Vector< double > &x)
Definition: error_estimator.h:142
virtual unsigned num_Z2_flux_terms()=0
Number of 'flux' terms for Z2 error estimation.
virtual unsigned nrecovery_order()=0
Order of recovery shape functions.
Base class for spatial error estimators.
Definition: error_estimator.h:40
void get_element_errors(Mesh *&mesh_pt, Vector< double > &elemental_error)
Definition: error_estimator.h:56
ErrorEstimator()
Default empty constructor.
Definition: error_estimator.h:43
virtual ~ErrorEstimator()
Empty virtual destructor.
Definition: error_estimator.h:52
ErrorEstimator(const ErrorEstimator &)=delete
Broken copy constructor.
virtual void get_element_errors(Mesh *&mesh_pt, Vector< double > &elemental_error, DocInfo &doc_info)=0
void operator=(const ErrorEstimator &)=delete
Broken assignment operator.
Definition: elements.h:1313
Node *& node_pt(const unsigned &n)
Return a pointer to the local node n.
Definition: elements.h:2175
unsigned nnode() const
Return the number of nodes.
Definition: elements.h:2210
void(* SteadyExactSolutionFctPt)(const Vector< double > &, Vector< double > &)
Definition: elements.h:1759
Definition: integral.h:49
Definition: map_matrix.h:109
bool is_mesh_distributed() const
Boolean to indicate if Mesh has been distributed.
Definition: mesh.h:1588
FiniteElement * finite_element_pt(const unsigned &e) const
Definition: mesh.h:473
unsigned long nelement() const
Return number of elements in the mesh.
Definition: mesh.h:590
double & x(const unsigned &i)
Return the i-th nodal coordinate.
Definition: nodes.h:1060
unsigned ndim() const
Return (Eulerian) spatial dimension of the node.
Definition: nodes.h:1054
Definition: oomph_definitions.h:222
Definition: oomph_definitions.h:267
double & xi(const unsigned &i)
Reference to i-th Lagrangian position.
Definition: nodes.h:1883
unsigned nlagrangian() const
Return number of lagrangian coordinates.
Definition: nodes.h:1870
Definition: error_estimator.h:266
void get_recovered_flux_in_patch(const Vector< ElementWithZ2ErrorEstimator * > &patch_el_pt, const unsigned &num_recovery_terms, const unsigned &num_flux_terms, const unsigned &dim, DenseMatrix< double > *&recovered_flux_coefficient_pt)
Definition: error_estimator.cc:666
CombinedErrorEstimateFctPt & combined_error_fct_pt()
Access function: Pointer to combined error estimate function.
Definition: error_estimator.h:334
unsigned nrecovery_terms(const unsigned &dim)
Definition: error_estimator.cc:812
Z2ErrorEstimator(const unsigned &recovery_order)
Constructor: Set order of recovery shape functions.
Definition: error_estimator.h:272
CombinedErrorEstimateFctPt Combined_error_fct_pt
Function pointer to combined error estimator function.
Definition: error_estimator.h:420
Z2ErrorEstimator()
Definition: error_estimator.h:284
virtual ~Z2ErrorEstimator()
Empty virtual destructor.
Definition: error_estimator.h:299
double reference_flux_norm() const
Access function for prescribed reference flux norm (const. version)
Definition: error_estimator.h:361
double get_combined_error_estimate(const Vector< double > &compound_error)
Return a combined error estimate from all compound errors.
Definition: error_estimator.cc:460
void setup_patches(Mesh *&mesh_pt, std::map< Node *, Vector< ElementWithZ2ErrorEstimator * > * > &adjacent_elements_pt, Vector< Node * > &vertex_node_pt)
Definition: error_estimator.cc:505
void operator=(const Z2ErrorEstimator &)=delete
Broken assignment operator.
double(* CombinedErrorEstimateFctPt)(const Vector< double > &errors)
Function pointer to combined error estimator function.
Definition: error_estimator.h:269
double & reference_flux_norm()
Access function for prescribed reference flux norm.
Definition: error_estimator.h:355
unsigned Recovery_order
Order of recovery polynomials.
Definition: error_estimator.h:403
double Reference_flux_norm
Prescribed reference flux norm.
Definition: error_estimator.h:417
void get_element_errors(Mesh *&mesh_pt, Vector< double > &elemental_error)
Definition: error_estimator.h:303
CombinedErrorEstimateFctPt combined_error_fct_pt() const
Definition: error_estimator.h:341
Z2ErrorEstimator(const Z2ErrorEstimator &)=delete
Broken copy constructor.
void shape_rec(const Vector< double > &x, const unsigned &dim, Vector< double > &psi_r)
Definition: error_estimator.cc:44
Integral * integral_rec(const unsigned &dim, const bool &is_q_mesh)
Definition: error_estimator.cc:245
unsigned recovery_order() const
Access function for order of recovery polynomials (const version)
Definition: error_estimator.h:328
void doc_flux(Mesh *mesh_pt, const unsigned &num_flux_terms, MapMatrixMixed< Node *, int, double > &rec_flux_map, const Vector< double > &elemental_error, DocInfo &doc_info)
Doc flux and recovered flux.
Definition: error_estimator.cc:1802
unsigned & recovery_order()
Access function for order of recovery polynomials.
Definition: error_estimator.h:322
bool Recovery_order_from_first_element
Definition: error_estimator.h:407
RealScalar s
Definition: level1_cplx_impl.h:130
void flux(const double &time, const Vector< double > &x, double &flux)
Get flux applied along boundary x=0.
Definition: pretend_melt.cc:59
int error
Definition: calibrate.py:297
std::string string(const unsigned &i)
Definition: oomph_definitions.cc:286
DRAIG: Change all instances of (SPATIAL_DIM) to (DIM-1).
Definition: AnisotropicHookean.h:10
list x
Definition: plotDoE.py:28
#define OOMPH_EXCEPTION_LOCATION
Definition: oomph_definitions.h:61
#define OOMPH_CURRENT_FUNCTION
Definition: oomph_definitions.h:86
std::ptrdiff_t j
Definition: tut_arithmetic_redux_minmax.cpp:2