static char help[] = "Calculates moments for Gaussian functions.\n\n"; #include #include #include #include #include int main(int argc, char **argv) { int s,n = 15; PetscInt tick, moment = 0,momentummax = 7; PetscReal *zeros,*weights,scale,h,sigma = 1/sqrt(2), g = 0, mu = 0; PetscFunctionBeginUser; PetscCall(PetscInitialize(&argc,&argv,NULL,help)); PetscCall(PetscOptionsGetInt(NULL,NULL,"-n",&n,NULL)); PetscCall(PetscOptionsGetInt(NULL,NULL,"-moment_max",&momentummax,NULL)); PetscCall(PetscOptionsGetReal(NULL,NULL,"-sigma",&sigma,NULL)); PetscCall(PetscOptionsGetReal(NULL,NULL,"-mu",&mu,NULL)); /* calulate zeros and roots of Hermite Gauss quadrature */ PetscCall(PetscMalloc1(n,&zeros)); zeros[0] = 0; tick = n % 2; for (s=0; s