[cig-commits] r5419 - mc/3D/CitcomS/trunk/lib
tan2 at geodynamics.org
tan2 at geodynamics.org
Fri Dec 1 16:57:22 PST 2006
Author: tan2
Date: 2006-12-01 16:57:22 -0800 (Fri, 01 Dec 2006)
New Revision: 5419
Modified:
mc/3D/CitcomS/trunk/lib/Viscosity_structures.c
Log:
Added more rheology options, which is required for benchmarks
rheol=1: visc = visc0 * exp(viscE * (viscT - T))
rheol=2: visc = visc0 * exp(-T / viscT)
Modified: mc/3D/CitcomS/trunk/lib/Viscosity_structures.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Viscosity_structures.c 2006-12-02 00:38:50 UTC (rev 5418)
+++ mc/3D/CitcomS/trunk/lib/Viscosity_structures.c 2006-12-02 00:57:22 UTC (rev 5419)
@@ -224,11 +224,57 @@
switch (E->viscosity.RHEOL) {
case 1:
- if (E->parallel.me==0) fprintf(stderr,"not supported for rheol=1\n");
+ for(m=1;m<=E->sphere.caps_per_proc;m++)
+ for(i=1;i<=nel;i++) {
+ l = E->mat[m][i];
+
+ if(E->control.mat_control==0)
+ tempa = E->viscosity.N0[l-1];
+ else if(E->control.mat_control==1)
+ tempa = E->viscosity.N0[l-1]*E->VIP[m][i];
+
+ for(kk=1;kk<=ends;kk++) {
+ TT[kk] = E->T[m][E->ien[m][i].node[kk]];
+ }
+
+ for(jj=1;jj<=vpts;jj++) {
+ temp=0.0;
+ for(kk=1;kk<=ends;kk++) {
+ temp += TT[kk] * E->N.vpt[GNVINDEX(kk,jj)];
+ }
+
+ EEta[m][ (i-1)*vpts + jj ] = tempa*
+ exp( E->viscosity.E[l-1] * (E->viscosity.T[l-1] - temp));
+
+ }
+ }
break;
case 2:
- if (E->parallel.me==0) fprintf(stderr,"not supported for rheol=2\n");
+ for(m=1;m<=E->sphere.caps_per_proc;m++)
+ for(i=1;i<=nel;i++) {
+ l = E->mat[m][i];
+
+ if(E->control.mat_control==0)
+ tempa = E->viscosity.N0[l-1];
+ else if(E->control.mat_control==1)
+ tempa = E->viscosity.N0[l-1]*E->VIP[m][i];
+
+ for(kk=1;kk<=ends;kk++) {
+ TT[kk] = E->T[m][E->ien[m][i].node[kk]];
+ }
+
+ for(jj=1;jj<=vpts;jj++) {
+ temp=0.0;
+ for(kk=1;kk<=ends;kk++) {
+ temp += TT[kk] * E->N.vpt[GNVINDEX(kk,jj)];
+ }
+
+ EEta[m][ (i-1)*vpts + jj ] = tempa*
+ exp( -temp / E->viscosity.T[l-1]);
+
+ }
+ }
break;
case 3:
More information about the cig-commits
mailing list