Unverified Commit 10684973 authored by toquydong's avatar toquydong Committed by GitHub
Browse files

Add files via upload

parent 9c584044
Loading
Loading
Loading
Loading
+54 −0
Changes for src/random_mars.cpp: 54 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -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;
   }
}
 No newline at end of file
+3 −0
Changes for src/random_mars.h: 3 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -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;