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