[cig-commits] r17176 - mc/3D/CitcomS/trunk/lib
becker at geodynamics.org
becker at geodynamics.org
Tue Sep 7 00:05:09 PDT 2010
Author: becker
Date: 2010-09-07 00:05:09 -0700 (Tue, 07 Sep 2010)
New Revision: 17176
Modified:
mc/3D/CitcomS/trunk/lib/Ggrd_handling.c
mc/3D/CitcomS/trunk/lib/Instructions.c
mc/3D/CitcomS/trunk/lib/Output_gzdir.c
mc/3D/CitcomS/trunk/lib/Viscosity_structures.c
mc/3D/CitcomS/trunk/lib/global_defs.h
Log:
Made sure that viscosity prefactors get assigned for material dependent viscosity only (TDEPV = off)
Modified: mc/3D/CitcomS/trunk/lib/Ggrd_handling.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Ggrd_handling.c 2010-09-07 02:22:48 UTC (rev 17175)
+++ mc/3D/CitcomS/trunk/lib/Ggrd_handling.c 2010-09-07 07:05:09 UTC (rev 17176)
@@ -537,11 +537,14 @@
}else{
vip = indbl;
}
- /* limit the input scaling? */
- if(vip < 1e-5)
- vip = 1e-5;
- if(vip > 1e5)
- vip = 1e5;
+ if(E->control.ggrd_mat_limit_prefactor){
+ /* limit the input scaling? */
+ if(vip < 1e-5)
+ vip = 1e-5;
+ if(vip > 1e5)
+ vip = 1e5;
+ }
+ //fprintf(stderr,"lon %11g lat %11g depth %11g vip %11g\n",rout[2]*180/M_PI,90-rout[1]*180/M_PI,(1.0-rout[0]) * 6371.0,vip);
E->VIP[m][el] = vip;
}
}
Modified: mc/3D/CitcomS/trunk/lib/Instructions.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Instructions.c 2010-09-07 02:22:48 UTC (rev 17175)
+++ mc/3D/CitcomS/trunk/lib/Instructions.c 2010-09-07 07:05:09 UTC (rev 17176)
@@ -537,6 +537,7 @@
/* if > 0, will use top E->control.ggrd.mat_control layers and assign a prefactor for the viscosity */
/* if < 0, will assign only to layer == -ggrd_mat_control */
input_int("ggrd_mat_control",&(E->control.ggrd.mat_control),"0",m);
+ input_boolean("ggrd_mat_limit_prefactor",&(E->control.ggrd_mat_limit_prefactor),"on",m); /* limit prefactor to with 1e+/-5 */
input_string("ggrd_mat_file",E->control.ggrd.mat_file,"",m); /* file to read prefactors from */
input_string("ggrd_mat_depth_file",
E->control.ggrd_mat_depth_file,"_i_do_not_exist_",m);
Modified: mc/3D/CitcomS/trunk/lib/Output_gzdir.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Output_gzdir.c 2010-09-07 02:22:48 UTC (rev 17175)
+++ mc/3D/CitcomS/trunk/lib/Output_gzdir.c 2010-09-07 07:05:09 UTC (rev 17176)
@@ -981,7 +981,7 @@
snprintf(output_file,255,"%s/%d/horiz_avg.%d.%d.gz", E->control.data_dir,
cycles,E->parallel.me, cycles);
fp1=gzdir_output_open(output_file,"w");
- for(j=1;j<=E->lmesh.noz;j++) {
+ for(j=1;j<=E->lmesh.noz;j++) { /* format: r <T> <vh> <vr> (<C>) */
gzprintf(fp1,"%.4e %.4e %.4e %.4e",E->sx[1][3][j],E->Have.T[j],E->Have.V[1][j],E->Have.V[2][j]);
if (E->composition.on) {
Modified: mc/3D/CitcomS/trunk/lib/Viscosity_structures.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Viscosity_structures.c 2010-09-07 02:22:48 UTC (rev 17175)
+++ mc/3D/CitcomS/trunk/lib/Viscosity_structures.c 2010-09-07 07:05:09 UTC (rev 17176)
@@ -387,11 +387,17 @@
{
int i,m,jj;
-
- for(m=1;m<=E->sphere.caps_per_proc;m++)
+ if(E->control.mat_control){ /* use pre-factor even without temperature dependent viscosity */
+ for(m=1;m<=E->sphere.caps_per_proc;m++)
for(i=1;i<=E->lmesh.nel;i++)
- for(jj=1;jj<=vpoints[E->mesh.nsd];jj++)
- EEta[m][ (i-1)*vpoints[E->mesh.nsd]+jj ] = E->viscosity.N0[E->mat[m][i]-1];
+ for(jj=1;jj<=vpoints[E->mesh.nsd];jj++)
+ EEta[m][ (i-1)*vpoints[E->mesh.nsd]+jj ] = E->viscosity.N0[E->mat[m][i]-1]*E->VIP[m][i];
+ }else{
+ for(m=1;m<=E->sphere.caps_per_proc;m++)
+ for(i=1;i<=E->lmesh.nel;i++)
+ for(jj=1;jj<=vpoints[E->mesh.nsd];jj++)
+ EEta[m][ (i-1)*vpoints[E->mesh.nsd]+jj ] = E->viscosity.N0[E->mat[m][i]-1];
+ }
return;
}
Modified: mc/3D/CitcomS/trunk/lib/global_defs.h
===================================================================
--- mc/3D/CitcomS/trunk/lib/global_defs.h 2010-09-07 02:22:48 UTC (rev 17175)
+++ mc/3D/CitcomS/trunk/lib/global_defs.h 2010-09-07 07:05:09 UTC (rev 17176)
@@ -529,6 +529,7 @@
float ggrd_vtop_omega[4];
char ggrd_mat_depth_file[1000];
ggrd_boolean ggrd_mat_is_3d;
+ int ggrd_mat_limit_prefactor;
float ggrd_lower_depth_km,ggrd_lower_scale,ggrd_lower_offset;
#endif
double accuracy,inner_accuracy_scale;
More information about the CIG-COMMITS
mailing list