libMesh
Loading...
Searching...
No Matches
discontinuity_measure.h
Go to the documentation of this file.
1// The libMesh Finite Element Library.
2// Copyright (C) 2002-2026 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
31namespace libMesh
32{
33
34// Forward Declarations
35class Point;
36
37
38
39
40
50{
51public:
52
59
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
83protected:
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
This class measures discontinuities between elements for debugging purposes.
DiscontinuityMeasure & operator=(const DiscontinuityMeasure &)=delete
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.
virtual ErrorEstimatorType type() const override
virtual void internal_side_integration() override
The function which calculates a normal derivative jump based error term on an internal side.
DiscontinuityMeasure(const DiscontinuityMeasure &)=delete
This class cannot be (default) copy constructed/assigned because its base class has unique_ptr member...
virtual ~DiscontinuityMeasure()=default
virtual void init_context(FEMContext &c) override
An initialization function, for requesting specific data from the FE objects.
virtual bool boundary_side_integration() override
The function which calculates a normal derivative jump based error term on a boundary side.
DiscontinuityMeasure(DiscontinuityMeasure &&)=default
Defaulted move ctor, move assignment operator, and destructor.
std::pair< bool, Real >(* _bc_function)(const System &system, const Point &p, const std::string &var_name)
Pointer to function that provides BC information.
This class provides all data required for a physics package (e.g.
Definition fem_context.h:63
This abstract base class implements utility functions for error estimators which are based on integra...
A Point defines a location in LIBMESH_DIM dimensional Real space.
Definition point.h:40
Manages consistently variables, degrees of freedom, and coefficient vectors.
Definition system.h:100
The libMesh namespace provides an interface to certain functionality in the library.
ErrorEstimatorType
Defines an enum for the different types of error estimators which are available.
Number fptr(const Point &p, const Parameters &, const std::string &libmesh_dbg_var(sys_name), const std::string &unknown_name)
Definition projection.C:81