Add files via upload

This commit is contained in:
toquydong
2019-09-17 21:38:10 +02:00
committed by GitHub
parent 9c5840445c
commit 10684973f8
2 changed files with 219 additions and 162 deletions

View File

@ -89,6 +89,7 @@ double RanMars::uniform()
return uni;
}
/* ----------------------------------------------------------------------
gaussian RN
------------------------------------------------------------------------- */
@ -113,3 +114,56 @@ double RanMars::gaussian()
}
return first;
}
/* ----------------------------------------------------------------------
Gaussian RN
------------------------------------------------------------------------- */
double RanMars::gaussian(double mu, double sigma)
{
double v1;
v1 = mu+sigma*gaussian();
return v1;
}
/* ---------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Rayleigh RN
------------------------------------------------------------------------- */
double RanMars::rayleigh(double sigma)
{
double first,v1;
if (sigma <= 0)
error->all(FLERR,"Invalid Rayleigh parameter");
else {
v1 = uniform();
first = sigma*sqrt(-2.0*log(v1));
return first;
}
}
/* ----------------------------------------------------------------------
Bessel exponential RN
------------------------------------------------------------------------- */
double RanMars::besselexp(double theta, double alpha, double cp)
{
double first,v1,v2;
if ((theta < 0) || (alpha < 0) || (alpha >1))
error->all(FLERR,"Invalid Bessel exponential distribution parameters");
else {
v1 = uniform();
v2 = uniform();
if (cp < 0)
first = sqrt((1-alpha)*cp*cp-2*alpha*theta*log(v1)+2*sqrt(-2*theta*(1-alpha)*alpha*log(v1))*cos(2*M_PI*v2)*cp);
else {
first = - sqrt((1-alpha)*cp*cp-2*alpha*theta*log(v1)-2*sqrt(-2*theta*(1-alpha)*alpha*log(v1))*cos(2*M_PI*v2)*cp) ;}
return first;
}
}

View File

@ -24,6 +24,9 @@ class RanMars : protected Pointers {
~RanMars();
double uniform();
double gaussian();
double gaussian(double mu, double sigma);
double rayleigh(double sigma);
double besselexp(double theta, double alpha, double cp);
private:
int save;