libMesh
discontinuity_measure.h
Go to the documentation of this file.
1 // The libMesh Finite Element Library.
2 // Copyright (C) 2002-2024 Benjamin S. Kirk, John W. Peterson, Roy H. Stogner
3 
4 // This library is free software; you can redistribute it and/or
5 // modify it under the terms of the GNU Lesser General Public
6 // License as published by the Free Software Foundation; either
7 // version 2.1 of the License, or (at your option) any later version.
8 
9 // This library is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 // Lesser General Public License for more details.
13 
14 // You should have received a copy of the GNU Lesser General Public
15 // License along with this library; if not, write to the Free Software
16 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 
18 
19 
20 #ifndef LIBMESH_DISCONTINUITY_MEASURE_H
21 #define LIBMESH_DISCONTINUITY_MEASURE_H
22 
23 // Local Includes
24 #include "libmesh/jump_error_estimator.h"
25 
26 // C++ includes
27 #include <cstddef>
28 #include <string>
29 #include <vector>
30 
31 namespace libMesh
32 {
33 
34 // Forward Declarations
35 class Point;
36 
37 
38 
39 
40 
50 {
51 public:
52 
59 
64  DiscontinuityMeasure (const DiscontinuityMeasure &) = delete;
66 
72  virtual ~DiscontinuityMeasure() = default;
73 
77  void attach_essential_bc_function (std::pair<bool,Real> fptr(const System & system,
78  const Point & p,
79  const std::string & var_name));
80 
81  virtual ErrorEstimatorType type() const override;
82 
83 protected:
84 
89  virtual void init_context(FEMContext & c) override;
90 
95  virtual void internal_side_integration() override;
96 
103  virtual bool boundary_side_integration() override;
104 
108  std::pair<bool,Real> (* _bc_function) (const System & system,
109  const Point & p,
110  const std::string & var_name);
111 };
112 
113 
114 } // namespace libMesh
115 
116 #endif // LIBMESH_DISCONTINUITY_MEASURE_H
virtual bool boundary_side_integration() override
The function which calculates a normal derivative jump based error term on a boundary side...
virtual ~DiscontinuityMeasure()=default
ErrorEstimatorType
Defines an enum for the different types of error estimators which are available.
This abstract base class implements utility functions for error estimators which are based on integra...
DiscontinuityMeasure & operator=(const DiscontinuityMeasure &)=delete
The libMesh namespace provides an interface to certain functionality in the library.
This class measures discontinuities between elements for debugging purposes.
void attach_essential_bc_function(std::pair< bool, Real > fptr(const System &system, const Point &p, const std::string &var_name))
Register a user function to use in computing the essential BCs.
Number fptr(const Point &p, const Parameters &, const std::string &libmesh_dbg_var(sys_name), const std::string &unknown_name)
Definition: projection.C:80
virtual void init_context(FEMContext &c) override
An initialization function, for requesting specific data from the FE objects.
Manages consistently variables, degrees of freedom, and coefficient vectors.
Definition: system.h:96
This class provides all data required for a physics package (e.g.
Definition: fem_context.h:62
virtual void internal_side_integration() override
The function which calculates a normal derivative jump based error term on an internal side...
virtual ErrorEstimatorType type() const override
A Point defines a location in LIBMESH_DIM dimensional Real space.
Definition: point.h:39