Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members   Related Pages  

misc/setArrayData.C

Go to the documentation of this file.
00001 #include "setArrayData.h"
00002 #include "MultiDimArrayAccess.h"
00003 #include <math.h>
00004 #include <iostream.h>
00005 
00006 
00007 
00008 void setArrayDataToConstant(
00009   MultiDimArrayAccess<double,2> &s
00010   , const int *lower, const int *upper
00011   , const double *xlo, const double *xhi, const double *dx
00012   , double value
00013 ) {
00014   for ( int jj=lower[1]; jj<=upper[1]; ++jj) {
00015     for ( int ii=lower[0]; ii<=upper[0]; ++ii ) {
00016       s(jj,ii) = value;
00017     }
00018   }
00019 }
00020 
00021 
00022 
00023 
00024 void setArrayDataToCoordinateSum(
00025   double *ptr
00026   , const int *lower
00027   , const int *upper
00028   , const double *xlo, const double *xhi, const double *dx
00029 ) {
00030   MultiDimArrayAccess<double,2> s( ptr , lower , upper , true );
00031   for ( int jj=lower[1]; jj<=upper[1]; ++jj) {
00032     double y = xlo[1] + dx[1]*(jj-lower[1]+0.5);
00033     for ( int ii=lower[0]; ii<=upper[0]; ++ii ) {
00034       double x = xlo[0] + dx[0]*(ii-lower[0]+0.5);
00035       s(jj,ii) = x + y;
00036     }
00037   }
00038 }
00039 
00040 
00041 
00042 
00043 void setArrayDataToSinusoidal(
00044   MultiDimArrayAccess<double,2> &s
00045   , const int *lower
00046   , const int *upper
00047   , const double *xlo, const double *xhi, const double *dx
00048 ) {
00049   for ( int jj=lower[1]; jj<=upper[1]; ++jj) {
00050     double y = xlo[1] + dx[1]*(jj-lower[1]+0.5);
00051     double siny = sin(2*M_PI*y);
00052     for ( int ii=lower[0]; ii<=upper[0]; ++ii ) {
00053       double x = xlo[0] + dx[0]*(ii-lower[0]+0.5);
00054       double sinx = sin(2*M_PI*x);
00055       s(jj,ii) = sinx * siny;
00056     }
00057   }
00058 }
00059 
00060 
00061 
00062 
00063 void setArrayDataToSinusoidalGradient(
00064     double *gx_ptr, double *gy_ptr
00065   , const int *lower
00066   , const int *upper
00067   , const double *xlo, const double *xhi, const double *dx
00068 ) {
00069   MultiDimArrayAccess<double,2> gx( gx_ptr , lower , upper , true );
00070   MultiDimArrayAccess<double,2> gy( gy_ptr , lower , upper , true );
00071   for ( int jj=lower[1]; jj<=upper[1]; ++jj) {
00072     double y = xlo[1] + dx[1]*(jj-lower[1]+0.5);
00073     double siny = sin(2*M_PI*y);
00074     double cosy = cos(2*M_PI*y);
00075     for ( int ii=lower[0]; ii<=upper[0]; ++ii ) {
00076       double x = xlo[0] + dx[0]*(ii-lower[0]+0.5);
00077       double sinx = sin(2*M_PI*x);
00078       double cosx = cos(2*M_PI*x);
00079       gx(jj,ii) = 2*M_PI*cosx * siny;
00080       gy(jj,ii) = sinx * 2*M_PI*cosy;
00081     }
00082   }
00083 }
00084 
00085 
00086 
00087 
00088 void setArrayDataToScaled(
00089   MultiDimArrayAccess<double,2> &s
00090   , const int *lower, const int *upper
00091   , double factor
00092 ) {
00093   for ( int jj=lower[1]; jj<=upper[1]; ++jj) {
00094     for ( int ii=lower[0]; ii<=upper[0]; ++ii ) {
00095       s(jj,ii) *= factor;
00096     }
00097   }
00098 }

Generated on Wed Apr 17 12:51:45 2002 for samtut by doxygen1.2.12 written by Dimitri van Heesch, © 1997-2001