16 #include <deal.II/base/function_lib.h> 17 #include <deal.II/base/point.h> 18 #include <deal.II/base/tensor.h> 20 #include <deal.II/lac/vector.h> 24 DEAL_II_NAMESPACE_OPEN
32 const unsigned int n_components,
33 const unsigned int select)
63 const unsigned int select)
71 const unsigned int component)
const 83 std::vector<double> & values,
84 const unsigned int component)
const 86 Assert(values.size() == points.size(),
94 for (
unsigned int k = 0; k < values.size(); ++k)
97 std::fill(values.begin(), values.end(), 0.);
107 Assert(values.size() == points.size(),
110 for (
unsigned int k = 0; k < values.size(); ++k)
129 const unsigned int select)
137 const unsigned int component)
const 143 return ((d < this->
radius) ? (this->radius - d) : 0.);
152 std::vector<double> & values,
153 const unsigned int component)
const 155 Assert(values.size() == points.size(),
160 for (
unsigned int i = 0; i < values.size(); ++i)
163 values[i] = ((d < this->
radius) ? (this->
radius - d) : 0.);
166 std::fill(values.begin(), values.end(), 0.);
177 Assert(values.size() == points.size(),
180 for (
unsigned int k = 0; k < values.size(); ++k)
183 const double val = (d < this->
radius) ? (this->
radius - d) : 0.;
200 const unsigned int select)
208 const unsigned int component)
const 214 const double r = this->
radius;
217 const double e = -r * r / (r * r - d * d);
218 return ((e < -50) ? 0. :
numbers::E * exp(e));
227 std::vector<double> & values,
228 const unsigned int component)
const 230 Assert(values.size() == points.size(),
233 const double r = this->
radius;
237 for (
unsigned int i = 0; i < values.size(); ++i)
246 const double e = -r * r / (r * r - d * d);
247 values[i] = (e < -50) ? 0. :
numbers::E * exp(e);
251 std::fill(values.begin(), values.end(), 0.);
261 Assert(values.size() == points.size(),
264 for (
unsigned int k = 0; k < values.size(); ++k)
267 const double r = this->
radius;
271 const double e = -r * r / (r * r - d * d);
291 const unsigned int)
const 294 const double r = this->
radius;
297 const double e = -d * d / (r - d) / (r + d);
301 (-2.0 * r * r / pow(-r * r + d * d, 2.0) * d * exp(e)));
319 DEAL_II_NAMESPACE_CLOSE
virtual void value_list(const std::vector< Point< dim >> &points, std::vector< double > &values, const unsigned int component=0) const override
virtual void value_list(const std::vector< Point< dim >> &points, std::vector< double > &values, const unsigned int component=0) const override
const unsigned int n_components
virtual Tensor< 1, dim > gradient(const Point< dim > &p, const unsigned int component=0) const override
CutOffFunctionLinfty(const double radius=1., const Point< dim >=Point< dim >(), const unsigned int n_components=1, const unsigned int select=CutOffFunctionBase< dim >::no_component)
numbers::NumberTraits< Number >::real_type distance(const Point< dim, Number > &p) const
static::ExceptionBase & ExcIndexRange(int arg1, int arg2, int arg3)
virtual double value(const Point< dim > &p, const unsigned int component=0) const override
void new_center(const Point< dim > &p)
#define Assert(cond, exc)
static::ExceptionBase & ExcDimensionMismatch(std::size_t arg1, std::size_t arg2)
virtual void vector_value_list(const std::vector< Point< dim >> &points, std::vector< Vector< double >> &values) const override
virtual double value(const Point< dim > &p, const unsigned int component=0) const override
CutOffFunctionBase(const double radius=1., const Point< dim >=Point< dim >(), const unsigned int n_components=1, const unsigned int select=CutOffFunctionBase< dim >::no_component)
virtual void vector_value_list(const std::vector< Point< dim >> &points, std::vector< Vector< double >> &values) const override
const unsigned int selected
virtual void value_list(const std::vector< Point< dim >> &points, std::vector< double > &values, const unsigned int component=0) const override
virtual double value(const Point< dim > &p, const unsigned int component=0) const override
virtual void vector_value_list(const std::vector< Point< dim >> &points, std::vector< Vector< double >> &values) const override
CutOffFunctionCinfty(const double radius=1., const Point< dim >=Point< dim >(), const unsigned int n_components=1, const unsigned int select=CutOffFunctionBase< dim >::no_component)
CutOffFunctionW1(const double radius=1., const Point< dim >=Point< dim >(), const unsigned int n_components=1, const unsigned int select=CutOffFunctionBase< dim >::no_component)
void new_radius(const double r)