17#ifndef SCREENINGFUNCTION_H
18#define SCREENINGFUNCTION_H
75 double f(
double r)
const;
82 double df(
double r)
const;
89 void fdf(
double r,
double& fr,
double& dfr)
const;
94 std::vector<std::string>
info()
const;
137 if (r >=
outer)
return 1.0;
138 else if (r <=
inner)
return 0.0;
void fdf(double x, double &fx, double &dfx) const
Calculate function and derivative at once.
double df(double x) const
Calculate derivative of function at argument .
void setType(Type const type)
Set function type.
Type getType() const
Getter for type.
double f(double x) const
Calculate function value .
Type
List of available function types.
A screening functions for use with electrostatics.
void setCoreFunction(CoreFunction::Type const type)
Set functional form of transition region.
ScreeningFunction()
Constructor, initializes to #CoreFunction::Type::POLY2.
double scale
Inverse width.
double getOuter() const
Getter for outer.
void fdf(double r, double &fr, double &dfr) const
Calculate screening function and derivative at once.
double df(double r) const
Derivative of screening function .
double inner
Inner radius where transition region starts.
CoreFunction::Type getCoreFunctionType() const
Getter for #type.
double f(double r) const
Screening function .
CoreFunction core
Core function to be used in the transition region.
void changeLengthUnits(double const conv)
Change length units of screening function.
double getInner() const
Getter for inner.
std::vector< std::string > info() const
Get string with information of screening function.
double outer
Outer radius where transition region ends.
void setInnerOuter(double inner, double outer)
Set inner and outer limit of transition region.