[cig-commits] r11329 - in mc/3D/CitcomS/trunk: examples lib visual
tan2 at geodynamics.org
tan2 at geodynamics.org
Wed Mar 5 13:04:21 PST 2008
Author: tan2
Date: 2008-03-05 13:04:21 -0800 (Wed, 05 Mar 2008)
New Revision: 11329
Modified:
mc/3D/CitcomS/trunk/examples/Makefile.am
mc/3D/CitcomS/trunk/lib/Full_sphere_related.c
mc/3D/CitcomS/trunk/lib/Full_version_dependent.c
mc/3D/CitcomS/trunk/lib/General_matrix_functions.c
mc/3D/CitcomS/trunk/lib/Instructions.c
mc/3D/CitcomS/trunk/lib/Obsolete.c
mc/3D/CitcomS/trunk/lib/Regional_version_dependent.c
mc/3D/CitcomS/trunk/lib/Tracer_setup.c
mc/3D/CitcomS/trunk/lib/global_defs.h
mc/3D/CitcomS/trunk/visual/Makefile.am
Log:
Revert r11328
Modified: mc/3D/CitcomS/trunk/examples/Makefile.am
===================================================================
--- mc/3D/CitcomS/trunk/examples/Makefile.am 2008-03-05 20:50:31 UTC (rev 11328)
+++ mc/3D/CitcomS/trunk/examples/Makefile.am 2008-03-05 21:04:21 UTC (rev 11329)
@@ -33,6 +33,65 @@
Cookbook4/coor.dat \
Cookbook5/cookbook5.cfg \
Cookbook5/coor.dat \
+ Cookbook5/ic/cookbook5.velo.0.0 \
+ Cookbook5/ic/cookbook5.velo.1.0 \
+ Cookbook5/velocity/bvel.dat0 \
+ Cookbook5/velocity/bvel.dat1 \
+ Cookbook5/velocity/bvel.dat10 \
+ Cookbook5/velocity/bvel.dat11 \
+ Cookbook5/velocity/bvel.dat12 \
+ Cookbook5/velocity/bvel.dat13 \
+ Cookbook5/velocity/bvel.dat14 \
+ Cookbook5/velocity/bvel.dat15 \
+ Cookbook5/velocity/bvel.dat16 \
+ Cookbook5/velocity/bvel.dat17 \
+ Cookbook5/velocity/bvel.dat18 \
+ Cookbook5/velocity/bvel.dat19 \
+ Cookbook5/velocity/bvel.dat2 \
+ Cookbook5/velocity/bvel.dat20 \
+ Cookbook5/velocity/bvel.dat21 \
+ Cookbook5/velocity/bvel.dat22 \
+ Cookbook5/velocity/bvel.dat23 \
+ Cookbook5/velocity/bvel.dat24 \
+ Cookbook5/velocity/bvel.dat25 \
+ Cookbook5/velocity/bvel.dat26 \
+ Cookbook5/velocity/bvel.dat27 \
+ Cookbook5/velocity/bvel.dat28 \
+ Cookbook5/velocity/bvel.dat29 \
+ Cookbook5/velocity/bvel.dat3 \
+ Cookbook5/velocity/bvel.dat30 \
+ Cookbook5/velocity/bvel.dat31 \
+ Cookbook5/velocity/bvel.dat32 \
+ Cookbook5/velocity/bvel.dat33 \
+ Cookbook5/velocity/bvel.dat34 \
+ Cookbook5/velocity/bvel.dat35 \
+ Cookbook5/velocity/bvel.dat36 \
+ Cookbook5/velocity/bvel.dat37 \
+ Cookbook5/velocity/bvel.dat38 \
+ Cookbook5/velocity/bvel.dat39 \
+ Cookbook5/velocity/bvel.dat4 \
+ Cookbook5/velocity/bvel.dat40 \
+ Cookbook5/velocity/bvel.dat41 \
+ Cookbook5/velocity/bvel.dat42 \
+ Cookbook5/velocity/bvel.dat43 \
+ Cookbook5/velocity/bvel.dat44 \
+ Cookbook5/velocity/bvel.dat45 \
+ Cookbook5/velocity/bvel.dat46 \
+ Cookbook5/velocity/bvel.dat47 \
+ Cookbook5/velocity/bvel.dat48 \
+ Cookbook5/velocity/bvel.dat49 \
+ Cookbook5/velocity/bvel.dat5 \
+ Cookbook5/velocity/bvel.dat50 \
+ Cookbook5/velocity/bvel.dat51 \
+ Cookbook5/velocity/bvel.dat52 \
+ Cookbook5/velocity/bvel.dat53 \
+ Cookbook5/velocity/bvel.dat54 \
+ Cookbook5/velocity/bvel.dat55 \
+ Cookbook5/velocity/bvel.dat56 \
+ Cookbook5/velocity/bvel.dat6 \
+ Cookbook5/velocity/bvel.dat7 \
+ Cookbook5/velocity/bvel.dat8 \
+ Cookbook5/velocity/bvel.dat9 \
Cookbook6/cookbook6.cfg \
Cookbook6/coord.dat \
Cookbook6/README \
@@ -40,11 +99,21 @@
Cookbook8/cookbook8.cfg \
Cookbook8/coord.dat \
Cookbook9/cookbook9.cfg \
+ Cookbook9/ic/cntn.velo.0.0 \
+ Cookbook9/ic/cntn.velo.1.0 \
+ Cookbook9/ic/embd.velo.0.0 \
+ Cookbook9/ic/embd.velo.1.0 \
+ Cookbook9/velocity/bvel.dat0 \
+ Cookbook9/velocity/bvel.dat1 \
example0.cfg \
example1.cfg \
Full/input.sample \
Full/machine.sample \
+ Full/velbc/README \
+ Full/velbc/velbc_full.tar.gz \
Regional/input.sample \
- Regional/machines.sample
+ Regional/machines.sample \
+ Regional/velbc/README \
+ Regional/velbc/velbc_regional.tar.gz
## end of Makefile.am
Modified: mc/3D/CitcomS/trunk/lib/Full_sphere_related.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Full_sphere_related.c 2008-03-05 20:50:31 UTC (rev 11328)
+++ mc/3D/CitcomS/trunk/lib/Full_sphere_related.c 2008-03-05 21:04:21 UTC (rev 11329)
@@ -154,7 +154,7 @@
void full_coord_of_cap(struct All_variables *E, int m, int icap)
{
- int i, j, k, lev, temp, elx, ely;
+ int i, j, k, lev, temp, elx, ely, nox, noy, noz;
int node, snode, ns, step;
int lelx, lely, lnox, lnoy;
int lvnox, lvnoy, lvnoz;
@@ -232,6 +232,8 @@
/* # of elements/nodes per cap */
elx = E->lmesh.ELX[lev]*E->parallel.nprocx;
ely = E->lmesh.ELY[lev]*E->parallel.nprocy;
+ nox = elx+1;
+ noy = ely+1;
/* # of elements/nodes per processor */
lelx = E->lmesh.ELX[lev];
Modified: mc/3D/CitcomS/trunk/lib/Full_version_dependent.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Full_version_dependent.c 2008-03-05 20:50:31 UTC (rev 11328)
+++ mc/3D/CitcomS/trunk/lib/Full_version_dependent.c 2008-03-05 21:04:21 UTC (rev 11329)
@@ -176,6 +176,7 @@
FILE *fp1;
void full_coord_of_cap();
+ void rotate_mesh ();
void compute_angle_surf_area ();
rr = (double *) malloc((E->mesh.noz+1)*sizeof(double));
Modified: mc/3D/CitcomS/trunk/lib/General_matrix_functions.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/General_matrix_functions.c 2008-03-05 20:50:31 UTC (rev 11328)
+++ mc/3D/CitcomS/trunk/lib/General_matrix_functions.c 2008-03-05 21:04:21 UTC (rev 11329)
@@ -41,6 +41,148 @@
{0, 1,-1, 1} };
+/*=====================================================================
+ Variable dimension matrix allocation function from numerical recipes
+ Note: ANSII consistency requires some additional features !
+ ===================================================================== */
+
+double **dmatrix(nrl,nrh,ncl,nch)
+ int nrl,nrh,ncl,nch;
+{
+ int i,nrow = nrh-nrl+1,ncol=nch-ncl+1;
+ double **m;
+
+ /* allocate pointer to rows */
+ m=(double **) malloc((nrow+1)* sizeof(double *));
+ m+=1;
+ m-= nrl;
+
+ /* allocate rows and set the pointers accordingly */
+ m[nrl] = (double *) malloc((nrow*ncol+1)* sizeof(double));
+ m[nrl] += 1;
+ m[nrl] -= ncl;
+
+ for(i=nrl+1;i<=nrh;i++)
+ m[i] = m[i-1] + ncol;
+
+ return(m); }
+
+
+float **fmatrix(nrl,nrh,ncl,nch)
+ int nrl,nrh,ncl,nch;
+{
+ int i,nrow = nrh-nrl+1,ncol=nch-ncl+1;
+ float **m;
+
+ /* allocate pointer to rows */
+ m=(float **) malloc((unsigned)((nrow+1)* sizeof(float *)));
+ m+=1;
+ m-= nrl;
+
+ /* allocate rows and set the pointers accordingly */
+ m[nrl] = (float *) malloc((unsigned)((nrow*ncol+1)* sizeof(float)));
+ m[nrl] += 1;
+ m[nrl] -= ncl;
+
+ for(i=nrl+1;i<=nrh;i++)
+ m[i] = m[i-1] + ncol;
+
+ return(m); }
+
+
+void dfree_matrix(m,nrl,nrh,ncl,nch)
+ double **m;
+ int nrl,nrh,ncl,nch;
+{
+ int i;
+ for(i=nrh;i>=nrl;i--)
+ free((void *)(m[i] + ncl));
+ free((void *) (m+nrl));
+ return;
+}
+
+void ffree_matrix(m,nrl,nrh,ncl,nch)
+ float **m;
+ int nrl,nrh,ncl,nch;
+{
+ int i;
+ for(i=nrh;i>=nrl;i--)
+ free((void *)(m[i] + ncl));
+ free((void *) (m+nrl));
+ return;
+}
+
+/*=============================================================
+ Functions to allocate/remove space for variable sized vector.
+ ============================================================= */
+
+double *dvector(nl,nh)
+ int nl,nh;
+{
+ double *v;
+ v=(double *) malloc((unsigned) ( nh - nl +1)* sizeof(double));
+ return( v-nl ); }
+
+float *fvector(nl,nh)
+ int nl,nh;
+{
+ float *v;
+ v=(float *) malloc((unsigned) ( nh - nl +1)* sizeof(float));
+ return( v-nl ); }
+
+void dfree_vector(v,nl,nh)
+ double *v;
+ int nl,nh;
+{
+ free((char*) (v+nl)); }
+
+void ffree_vector(v,nl,nh)
+ float *v;
+ int nl,nh;
+{
+ free((char*) (v+nl)); }
+
+int *sivector(nl,nh)
+ int nl,nh;
+{
+ int *v;
+ v=(int*) malloc((unsigned)(nh-nl +1) * sizeof(int));
+ return (v-nl);
+}
+
+void sifree_vector(v,nl,nh)
+ int *v;
+ int nl,nh;
+{ free((char *) (v+nl)); }
+
+
+
+void dvcopy(E,A,B,a,b)
+ struct All_variables *E;
+ double **A,**B;
+ int a,b;
+
+{ int i,m;
+
+ for (m=1;m<=E->sphere.caps_per_proc;m++)
+ for(i=a;i<=b;i++)
+ A[m][i] = B[m][i];
+
+ return; }
+
+void vcopy(A,B,a,b)
+ float *A,*B;
+ int a,b;
+
+{ int i;
+
+ for(i=a;i<=b;i++)
+ A[i] = B[i];
+
+ return; }
+
+
+
/* ===========================================================
Iterative solver also using multigrid ........
=========================================================== */
@@ -753,13 +895,36 @@
}
+void print_elt_k(E,a)
+ struct All_variables *E;
+ double a[24*24];
+{ int l,ll,n;
+
+ printf("elt k is ...\n");
+
+
+ n = loc_mat_size[E->mesh.nsd];
+
+ for(l=0;l<n;l++)
+ { fprintf(stderr,"\n");fflush(stderr);
+ for(ll=0;ll<n;ll++)
+ { fprintf(stderr,"%s%.3e ",a[ll*n+l] >= 0.0 ? "+" : "",a[ll*n+l]);
+ fflush(stderr);
+ }
+ }
+ fprintf(stderr,"\n"); fflush(stderr);
+
+ return; }
+
+
double cofactor(A,i,j,n)
double A[4][4];
int i,j,n;
{ int k,l,p,q;
double determinant();
+ double **dmatrix();
double B[4][4]; /* because of recursive behaviour of det/cofac, need to use
new copy of B at each 'n' level of this routine */
@@ -831,6 +996,76 @@
}
+ float area_of_4node(x1,y1,x2,y2,x3,y3,x4,y4)
+ float x1,y1,x2,y2,x3,y3,x4,y4;
+
+ {
+ float area;
+
+ area = fabs(0.5*(x1*(y2-y4)+x2*(y4-y1)+x4*(y1-y2)))
+ + fabs(0.5*(x2*(y3-y4)+x3*(y4-y2)+x4*(y2-y3)));
+
+ return area;
+ }
+
+/* =====================================*/
+ double sphere_h(l,m,t,f,ic)
+ int l,m,ic;
+ double t,f;
+ {
+
+ double plgndr_a(),sphere_hamonics;
+
+ sphere_hamonics = 0.0;
+ if (ic==0)
+ sphere_hamonics = cos(m*f)*plgndr_a(l,m,t);
+ else if (m)
+ sphere_hamonics = sin(m*f)*plgndr_a(l,m,t);
+
+ return sphere_hamonics;
+ }
+
+/* =====================================*/
+ double plgndr_a(l,m,t)
+ int l,m;
+ double t;
+ {
+
+ int i,ll;
+ double x,fact,pll,pmm,pmmp1,somx2,plgndr;
+ const double two=2.0;
+ const double one=1.0;
+
+ x = cos(t);
+ pmm=one;
+ if(m>0) {
+ somx2=sqrt((one-x)*(one+x));
+ fact = one;
+ for (i=1;i<=m;i++) {
+ pmm = -pmm*fact*somx2;
+ fact = fact + two;
+ }
+ }
+
+ if (l==m)
+ plgndr = pmm;
+ else {
+ pmmp1 = x*(2*m+1)*pmm;
+ if(l==m+1)
+ plgndr = pmmp1;
+ else {
+ for (ll=m+2;ll<=l;ll++) {
+ pll = (x*(2*ll-1)*pmmp1-(ll+m-1)*pmm)/(ll-m);
+ pmm = pmmp1;
+ pmmp1 = pll;
+ }
+ plgndr = pll;
+ }
+ }
+
+ return plgndr;
+ }
+
/* =====================================
=====================================*/
double modified_plgndr_a(l,m,t)
@@ -884,3 +1119,47 @@
return plgndr;
}
+ /* =================================== */
+ double sqrt_multis(jj,ii)
+ int ii,jj;
+ {
+ int i;
+ double sqrt_multisa;
+
+ sqrt_multisa = 1.0;
+ if(jj>ii)
+ for (i=jj;i>ii;i--)
+ sqrt_multisa *= 1.0/sqrt((double)i);
+
+ return sqrt_multisa;
+ }
+
+ /* =================================== */
+ double multis(ii)
+ int ii;
+ {
+ int i;
+ double multisa;
+
+ multisa = 1.0;
+ if (ii)
+ for (i=2;i<=ii;i++)
+ multisa *= (double)i;
+
+ return multisa;
+ }
+
+
+ /* =================================== */
+ int int_multis(ii)
+ int ii;
+ {
+ int i,multisa;
+
+ multisa = 1;
+ if (ii)
+ for (i=2;i<=ii;i++)
+ multisa *= i;
+
+ return multisa;
+ }
Modified: mc/3D/CitcomS/trunk/lib/Instructions.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Instructions.c 2008-03-05 20:50:31 UTC (rev 11328)
+++ mc/3D/CitcomS/trunk/lib/Instructions.c 2008-03-05 21:04:21 UTC (rev 11329)
@@ -636,6 +636,7 @@
E->P[j] = (double *) malloc((npno+1)*sizeof(double));
E->T[j] = (double *) malloc((nno+1)*sizeof(double));
E->NP[j] = (float *) malloc((nno+1)*sizeof(float));
+ E->edot[j] = (float *) malloc((nno+1)*sizeof(float));
E->buoyancy[j] = (double *) malloc((nno+1)*sizeof(double));
E->gstress[j] = (float *) malloc((6*nno+1)*sizeof(float));
@@ -644,6 +645,8 @@
for(i=1;i<=E->mesh.nsd;i++)
E->sphere.cap[j].TB[i] = (float *) malloc((nno+1)*sizeof(float));
+ E->age[j] = (float *)malloc((nsf+2)*sizeof(float));
+
E->slice.tpg[j] = (float *)malloc((nsf+2)*sizeof(float));
E->slice.tpgb[j] = (float *)malloc((nsf+2)*sizeof(float));
E->slice.divg[j] = (float *)malloc((nsf+2)*sizeof(float));
@@ -744,7 +747,13 @@
nxyz = elx*ely;
E->CC[i][j] =(struct CC *) malloc((1)*sizeof(struct CC));
E->CCX[i][j]=(struct CCX *) malloc((1)*sizeof(struct CCX));
+ /* Test */
+ E->ELEMENT[i][j] = (unsigned int *) malloc ((nel+1)*sizeof(unsigned int));
+ for (k=1;k<=nel;k++)
+ E->ELEMENT[i][j][k] = 0;
+ /*ccccc*/
+
E->elt_del[i][j] = (struct EG *) malloc((nel+1)*sizeof(struct EG));
if(E->control.inv_gruneisen != 0)
@@ -840,7 +849,19 @@
for(i=0;i<E->lmesh.neq;i++)
E->U[j][i] = E->temp[j][i] = E->temp1[j][i] = 0.0;
+ if(E->control.tracer == 1) {
+ for(i=1;i<=E->mesh.nsd;i++) {
+ E->GV[j][i]=(float*) malloc(((E->lmesh.nno+1)*E->parallel.nproc+1)*sizeof(float));
+ E->GV1[j][i]=(float*) malloc(((E->lmesh.nno+1)*E->parallel.nproc+1)*sizeof(float));
+ E->V[j][i]=(float*) malloc((E->lmesh.nno+1)*sizeof(float));
+ for(k=0;k<(E->lmesh.nno+1)*E->parallel.nproc;k++) {
+ E->GV[j][i][k]=0.0;
+ E->GV1[j][i][k]=0.0;
+ }
+ }
+ }
+
for(k=1;k<=E->mesh.nsd;k++)
for(i=1;i<=E->lmesh.nnov;i++)
E->sphere.cap[j].VB[k][i] = 0.0;
@@ -1026,6 +1047,7 @@
E->cc[j] = E->CC[E->mesh.levmax][j];
E->ccx[j] = E->CCX[E->mesh.levmax][j];
E->Mass[j] = E->MASS[E->mesh.levmax][j];
+ E->element[j] = E->ELEMENT[E->mesh.levmax][j];
E->gDA[j] = E->GDA[E->mesh.levmax][j];
E->gNX[j] = E->GNX[E->mesh.levmax][j];
Modified: mc/3D/CitcomS/trunk/lib/Obsolete.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Obsolete.c 2008-03-05 20:50:31 UTC (rev 11328)
+++ mc/3D/CitcomS/trunk/lib/Obsolete.c 2008-03-05 21:04:21 UTC (rev 11329)
@@ -1125,287 +1125,6 @@
/* From General_matrix_functions.c */
/* =========================================================== */
-/*=====================================================================
- Variable dimension matrix allocation function from numerical recipes
- Note: ANSII consistency requires some additional features !
- ===================================================================== */
-
-double **dmatrix(nrl,nrh,ncl,nch)
- int nrl,nrh,ncl,nch;
-{
- int i,nrow = nrh-nrl+1,ncol=nch-ncl+1;
- double **m;
-
- /* allocate pointer to rows */
- m=(double **) malloc((nrow+1)* sizeof(double *));
- m+=1;
- m-= nrl;
-
- /* allocate rows and set the pointers accordingly */
- m[nrl] = (double *) malloc((nrow*ncol+1)* sizeof(double));
- m[nrl] += 1;
- m[nrl] -= ncl;
-
- for(i=nrl+1;i<=nrh;i++)
- m[i] = m[i-1] + ncol;
-
- return(m); }
-
-
-float **fmatrix(nrl,nrh,ncl,nch)
- int nrl,nrh,ncl,nch;
-{
- int i,nrow = nrh-nrl+1,ncol=nch-ncl+1;
- float **m;
-
- /* allocate pointer to rows */
- m=(float **) malloc((unsigned)((nrow+1)* sizeof(float *)));
- m+=1;
- m-= nrl;
-
- /* allocate rows and set the pointers accordingly */
- m[nrl] = (float *) malloc((unsigned)((nrow*ncol+1)* sizeof(float)));
- m[nrl] += 1;
- m[nrl] -= ncl;
-
- for(i=nrl+1;i<=nrh;i++)
- m[i] = m[i-1] + ncol;
-
- return(m); }
-
-
-void dfree_matrix(m,nrl,nrh,ncl,nch)
- double **m;
- int nrl,nrh,ncl,nch;
-{
- int i;
- for(i=nrh;i>=nrl;i--)
- free((void *)(m[i] + ncl));
- free((void *) (m+nrl));
- return;
-}
-
-void ffree_matrix(m,nrl,nrh,ncl,nch)
- float **m;
- int nrl,nrh,ncl,nch;
-{
- int i;
- for(i=nrh;i>=nrl;i--)
- free((void *)(m[i] + ncl));
- free((void *) (m+nrl));
- return;
-}
-
-/*=============================================================
- Functions to allocate/remove space for variable sized vector.
- ============================================================= */
-
-double *dvector(nl,nh)
- int nl,nh;
-{
- double *v;
- v=(double *) malloc((unsigned) ( nh - nl +1)* sizeof(double));
- return( v-nl ); }
-
-float *fvector(nl,nh)
- int nl,nh;
-{
- float *v;
- v=(float *) malloc((unsigned) ( nh - nl +1)* sizeof(float));
- return( v-nl ); }
-
-void dfree_vector(v,nl,nh)
- double *v;
- int nl,nh;
-{
- free((char*) (v+nl)); }
-
-void ffree_vector(v,nl,nh)
- float *v;
- int nl,nh;
-{
- free((char*) (v+nl)); }
-
-int *sivector(nl,nh)
- int nl,nh;
-{
- int *v;
- v=(int*) malloc((unsigned)(nh-nl +1) * sizeof(int));
- return (v-nl);
-}
-
-void sifree_vector(v,nl,nh)
- int *v;
- int nl,nh;
-{ free((char *) (v+nl)); }
-
-
-
-void dvcopy(E,A,B,a,b)
- struct All_variables *E;
- double **A,**B;
- int a,b;
-
-{ int i,m;
-
- for (m=1;m<=E->sphere.caps_per_proc;m++)
- for(i=a;i<=b;i++)
- A[m][i] = B[m][i];
-
- return; }
-
-void vcopy(A,B,a,b)
- float *A,*B;
- int a,b;
-
-{ int i;
-
- for(i=a;i<=b;i++)
- A[i] = B[i];
-
- return; }
-
-
-
-/* =====================================*/
- double sphere_h(l,m,t,f,ic)
- int l,m,ic;
- double t,f;
- {
-
- double plgndr_a(),sphere_hamonics;
-
- sphere_hamonics = 0.0;
- if (ic==0)
- sphere_hamonics = cos(m*f)*plgndr_a(l,m,t);
- else if (m)
- sphere_hamonics = sin(m*f)*plgndr_a(l,m,t);
-
- return sphere_hamonics;
- }
-
-/* =====================================*/
- double plgndr_a(l,m,t)
- int l,m;
- double t;
- {
-
- int i,ll;
- double x,fact,pll,pmm,pmmp1,somx2,plgndr;
- const double two=2.0;
- const double one=1.0;
-
- x = cos(t);
- pmm=one;
- if(m>0) {
- somx2=sqrt((one-x)*(one+x));
- fact = one;
- for (i=1;i<=m;i++) {
- pmm = -pmm*fact*somx2;
- fact = fact + two;
- }
- }
-
- if (l==m)
- plgndr = pmm;
- else {
- pmmp1 = x*(2*m+1)*pmm;
- if(l==m+1)
- plgndr = pmmp1;
- else {
- for (ll=m+2;ll<=l;ll++) {
- pll = (x*(2*ll-1)*pmmp1-(ll+m-1)*pmm)/(ll-m);
- pmm = pmmp1;
- pmmp1 = pll;
- }
- plgndr = pll;
- }
- }
-
- return plgndr;
- }
-
- float area_of_4node(x1,y1,x2,y2,x3,y3,x4,y4)
- float x1,y1,x2,y2,x3,y3,x4,y4;
-
- {
- float area;
-
- area = fabs(0.5*(x1*(y2-y4)+x2*(y4-y1)+x4*(y1-y2)))
- + fabs(0.5*(x2*(y3-y4)+x3*(y4-y2)+x4*(y2-y3)));
-
- return area;
- }
-
-void print_elt_k(E,a)
- struct All_variables *E;
- double a[24*24];
-
-{ int l,ll,n;
-
- printf("elt k is ...\n");
-
-
- n = loc_mat_size[E->mesh.nsd];
-
- for(l=0;l<n;l++)
- { fprintf(stderr,"\n");fflush(stderr);
- for(ll=0;ll<n;ll++)
- { fprintf(stderr,"%s%.3e ",a[ll*n+l] >= 0.0 ? "+" : "",a[ll*n+l]);
- fflush(stderr);
- }
- }
- fprintf(stderr,"\n"); fflush(stderr);
-
- return; }
-
-
- /* =================================== */
- double sqrt_multis(jj,ii)
- int ii,jj;
- {
- int i;
- double sqrt_multisa;
-
- sqrt_multisa = 1.0;
- if(jj>ii)
- for (i=jj;i>ii;i--)
- sqrt_multisa *= 1.0/sqrt((double)i);
-
- return sqrt_multisa;
- }
-
- /* =================================== */
- double multis(ii)
- int ii;
- {
- int i;
- double multisa;
-
- multisa = 1.0;
- if (ii)
- for (i=2;i<=ii;i++)
- multisa *= (double)i;
-
- return multisa;
- }
-
-
- /* =================================== */
- int int_multis(ii)
- int ii;
- {
- int i,multisa;
-
- multisa = 1;
- if (ii)
- for (i=2;i<=ii;i++)
- multisa *= i;
-
- return multisa;
- }
-
-
void jacobi(E,d0,F,Ad,acc,cycles,level,guess)
struct All_variables *E;
double **d0;
Modified: mc/3D/CitcomS/trunk/lib/Regional_version_dependent.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Regional_version_dependent.c 2008-03-05 20:50:31 UTC (rev 11328)
+++ mc/3D/CitcomS/trunk/lib/Regional_version_dependent.c 2008-03-05 21:04:21 UTC (rev 11329)
@@ -149,6 +149,7 @@
FILE *fp1;
void regional_coord_of_cap();
+ void rotate_mesh ();
void compute_angle_surf_area ();
void parallel_process_termination();
void myerror();
Modified: mc/3D/CitcomS/trunk/lib/Tracer_setup.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Tracer_setup.c 2008-03-05 20:50:31 UTC (rev 11328)
+++ mc/3D/CitcomS/trunk/lib/Tracer_setup.c 2008-03-05 21:04:21 UTC (rev 11329)
@@ -272,18 +272,16 @@
E->trace.istat_elements_checked=0;
E->trace.istat1=0;
- /* write timing information every 20 steps */
- if ((E->monitor.solution_cycles % 20) == 0) {
- fprintf(E->trace.fpt, "STEP %d\n", E->monitor.solution_cycles);
+ fprintf(E->trace.fpt, "STEP %d\n", E->monitor.solution_cycles);
- fprintf(E->trace.fpt, "Advecting tracers takes %f seconds.\n",
- E->trace.advection_time - E->trace.find_tracers_time);
- fprintf(E->trace.fpt, "Finding element takes %f seconds.\n",
- E->trace.find_tracers_time - E->trace.lost_souls_time);
- fprintf(E->trace.fpt, "Exchanging lost tracers takes %f seconds.\n",
- E->trace.lost_souls_time);
- }
+ fprintf(E->trace.fpt, "Tracer advecting takes %f seconds.\n",
+ E->trace.advection_time);
+ fprintf(E->trace.fpt, "|--Tracer finding takes %f seconds.\n",
+ E->trace.find_tracers_time);
+ fprintf(E->trace.fpt, " |--Tracer exchanging takes %f seconds.\n",
+ E->trace.lost_souls_time);
+
if(E->control.verbose){
fprintf(E->trace.fpt,"Number of times for all element search %d\n",E->trace.istat1);
@@ -316,9 +314,9 @@
}
}
- fflush(E->trace.fpt);
}
+ fflush(E->trace.fpt);
return;
}
Modified: mc/3D/CitcomS/trunk/lib/global_defs.h
===================================================================
--- mc/3D/CitcomS/trunk/lib/global_defs.h 2008-03-05 20:50:31 UTC (rev 11328)
+++ mc/3D/CitcomS/trunk/lib/global_defs.h 2008-03-05 21:04:21 UTC (rev 11329)
@@ -725,6 +725,8 @@
higher_precision *Eqn_k1[MAX_LEVELS][NCS],*Eqn_k2[MAX_LEVELS][NCS],*Eqn_k3[MAX_LEVELS][NCS];
int *Node_map [MAX_LEVELS][NCS];
+ int *Node_eqn [MAX_LEVELS][NCS];
+ int *Node_k_id[MAX_LEVELS][NCS];
double *BI[MAX_LEVELS][NCS],*BPI[MAX_LEVELS][NCS];
@@ -733,17 +735,18 @@
double *heating_visc[NCS];
double *heating_latent[NCS];
- double *P[NCS],*F[NCS],*U[NCS];
+ double *P[NCS],*F[NCS],*H[NCS],*S[NCS],*U[NCS];
double *T[NCS],*Tdot[NCS],*buoyancy[NCS];
double *u1[NCS];
double *temp[NCS],*temp1[NCS];
- float *NP[NCS],*Mass[NCS];
+ float *NP[NCS],*edot[NCS],*Mass[NCS];
float *MASS[MAX_LEVELS][NCS];
double *TMass[NCS];
double *SX[MAX_LEVELS][NCS][4],*X[MAX_LEVELS][NCS][4];
double *sx[NCS][4],*x[NCS][4];
double *surf_det[NCS][5];
double *SinCos[MAX_LEVELS][NCS][4];
+ float *V[NCS][4],*GV[NCS][4],*GV1[NCS][4];
float *stress[NCS];
float *gstress[NCS];
@@ -758,9 +761,11 @@
int *surf_element[NCS],*surf_node[NCS];
int *mat[NCS];
float *VIP[NCS];
- unsigned int *NODE[MAX_LEVELS][NCS];
- unsigned int *node[NCS];
+ unsigned int *ELEMENT[MAX_LEVELS][NCS],*NODE[MAX_LEVELS][NCS];
+ unsigned int *element[NCS],*node[NCS];
+ unsigned int *eqn[NCS],*EQN[MAX_LEVELS][NCS];
+ float *age[NCS]; /* nodal weightings */
float *age_t;
struct Shape_function_dx *GNX[MAX_LEVELS][NCS];
Modified: mc/3D/CitcomS/trunk/visual/Makefile.am
===================================================================
--- mc/3D/CitcomS/trunk/visual/Makefile.am 2008-03-05 20:50:31 UTC (rev 11328)
+++ mc/3D/CitcomS/trunk/visual/Makefile.am 2008-03-05 21:04:21 UTC (rev 11329)
@@ -55,6 +55,50 @@
zslice.py
nobase_dist_visual_DATA = \
+ Mayavi2/citcoms_plugins/__init__.py \
+ Mayavi2/citcoms_plugins/plugins/__init__.py \
+ Mayavi2/citcoms_plugins/plugins/CitcomS_hdf_file_reader.py \
+ Mayavi2/citcoms_plugins/plugins/CitcomSHDFUgrid.py \
+ Mayavi2/citcoms_plugins/plugins/OpenCitcomSFILES.py \
+ Mayavi2/citcoms_plugins/plugins/filter/CitcomSFilterActions.py \
+ Mayavi2/citcoms_plugins/plugins/filter/__init__.py \
+ Mayavi2/citcoms_plugins/plugins/filter/CitcomSshowSurface.py \
+ Mayavi2/citcoms_plugins/plugins/filter/CitcomSSphere.py \
+ Mayavi2/citcoms_plugins/plugins/filter/CitcomsCapFilter.py \
+ Mayavi2/citcoms_plugins/plugins/filter/CitcomsReduceFilter.py \
+ Mayavi2/citcoms_plugins/utils.py \
+ Mayavi2/citcoms_plugins/custom_ui.py \
+ Mayavi2/citcoms_plugins/README \
+ Mayavi2/README \
+ Mayavi2/mayavi_custom_ui.py \
+ samples/cookbook1.h5 \
+ samples/cookbook1.100.h5 \
+ samples/fulltest.cap00.100 \
+ samples/fulltest.cap00.100.general \
+ samples/fulltest.cap01.100 \
+ samples/fulltest.cap01.100.general \
+ samples/fulltest.cap02.100 \
+ samples/fulltest.cap02.100.general \
+ samples/fulltest.cap03.100 \
+ samples/fulltest.cap03.100.general \
+ samples/fulltest.cap04.100 \
+ samples/fulltest.cap04.100.general \
+ samples/fulltest.cap05.100 \
+ samples/fulltest.cap05.100.general \
+ samples/fulltest.cap06.100 \
+ samples/fulltest.cap06.100.general \
+ samples/fulltest.cap07.100 \
+ samples/fulltest.cap07.100.general \
+ samples/fulltest.cap08.100 \
+ samples/fulltest.cap08.100.general \
+ samples/fulltest.cap09.100 \
+ samples/fulltest.cap09.100.general \
+ samples/fulltest.cap10.100 \
+ samples/fulltest.cap10.100.general \
+ samples/fulltest.cap11.100 \
+ samples/fulltest.cap11.100.general \
+ samples/regtest.cap00.100 \
+ samples/regtest.cap00.100.general \
visFull.cfg \
visRegional.cfg \
visRegionalSurface.cfg
More information about the cig-commits
mailing list