[cig-commits] r19360 - mc/3D/CitcomS/trunk/lib
becker at geodynamics.org
becker at geodynamics.org
Sat Jan 14 00:00:42 PST 2012
Author: becker
Date: 2012-01-14 00:00:41 -0800 (Sat, 14 Jan 2012)
New Revision: 19360
Modified:
mc/3D/CitcomS/trunk/lib/Advection_diffusion.c
mc/3D/CitcomS/trunk/lib/Composition_related.c
mc/3D/CitcomS/trunk/lib/Drive_solvers.c
mc/3D/CitcomS/trunk/lib/Ggrd_handling.c
mc/3D/CitcomS/trunk/lib/Output_gzdir.c
mc/3D/CitcomS/trunk/lib/Pan_problem_misc_functions.c
mc/3D/CitcomS/trunk/lib/Topo_gravity.c
mc/3D/CitcomS/trunk/lib/Viscosity_structures.c
Log:
Made sure that compositional viscosity without compositional buoyancy
can be assigned without setting ibuoy=1 and the buoyancy number to zero.
Modified: mc/3D/CitcomS/trunk/lib/Advection_diffusion.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Advection_diffusion.c 2012-01-14 01:49:16 UTC (rev 19359)
+++ mc/3D/CitcomS/trunk/lib/Advection_diffusion.c 2012-01-14 08:00:41 UTC (rev 19360)
@@ -777,6 +777,8 @@
const int vpts = VPOINTS3D;
strain_sqr = (float*) malloc((E->lmesh.nel+1)*sizeof(float));
+ /* note that this will be negative for Atemp < 0 for time
+ reversal */
temp = E->control.disptn_number / E->control.Atemp / vpts;
strain_rate_2_inv(E, m, strain_sqr, 0);
@@ -833,7 +835,9 @@
double temp, temp0, temp1, temp2, temp3, matprop;
int e, ez, i, j;
const int ends = ENODES3D;
-
+ /*
+ note that this will be negative for time-reversal
+ */
temp0 = 2.0 * inv_width * clapeyron * E->control.disptn_number * Ra / E->control.Atemp / ends;
temp1 = temp0 * clapeyron;
Modified: mc/3D/CitcomS/trunk/lib/Composition_related.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Composition_related.c 2012-01-14 01:49:16 UTC (rev 19359)
+++ mc/3D/CitcomS/trunk/lib/Composition_related.c 2012-01-14 08:00:41 UTC (rev 19360)
@@ -45,12 +45,16 @@
{
int i;
int m = E->parallel.me;
+ input_boolean("CDEPV",&(E->viscosity.CDEPV),"off",m);
+ E->composition.icompositional_rheology = E->viscosity.CDEPV;
input_boolean("chemical_buoyancy",
&(E->composition.ichemical_buoyancy),
"1,0,nomax",m);
- if (E->control.tracer && E->composition.ichemical_buoyancy) {
+ if (E->control.tracer &&
+ (E->composition.ichemical_buoyancy ||
+ E->composition.icompositional_rheology)) {
/* ibuoy_type=0 (absolute method) */
/* ibuoy_type=1 (ratio method) */
@@ -66,7 +70,7 @@
E->composition.ncomp = E->trace.nflavors;
else if (E->composition.ibuoy_type==1)
E->composition.ncomp = E->trace.nflavors - 1;
-
+
E->composition.buoyancy_ratio = (double*) malloc(E->composition.ncomp
*sizeof(double));
@@ -81,11 +85,17 @@
/* compositional rheology */
- /* what was this about? there is a CDEPV for compositional rheology TWB */
+ /* what was this about? there is a CDEPV for compositional rheology
+
+ i moved this to the top so that cdepv = on would activate tracers
+ TWB */
+
/* icompositional_rheology=0 (off) */
/* icompositional_rheology=1 (on) */
- E->composition.icompositional_rheology = 0;
+ //E->composition.icompositional_rheology = 0;
+
+
/*
input_int("compositional_rheology",
&(E->composition.icompositional_rheology),"1,0,nomax",m);
Modified: mc/3D/CitcomS/trunk/lib/Drive_solvers.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Drive_solvers.c 2012-01-14 01:49:16 UTC (rev 19359)
+++ mc/3D/CitcomS/trunk/lib/Drive_solvers.c 2012-01-14 08:00:41 UTC (rev 19360)
@@ -172,7 +172,7 @@
}
}
int need_to_iterate(struct All_variables *E){
- if(E->control.force_iteration){
+ if((E->control.force_iteration) && (E->monitor.solution_cycles == 0)){
return 1;
}else{
#ifdef CITCOM_ALLOW_ANISOTROPIC_VISC
Modified: mc/3D/CitcomS/trunk/lib/Ggrd_handling.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Ggrd_handling.c 2012-01-14 01:49:16 UTC (rev 19359)
+++ mc/3D/CitcomS/trunk/lib/Ggrd_handling.c 2012-01-14 08:00:41 UTC (rev 19360)
@@ -124,7 +124,7 @@
}
if(ggrd_grdtrack_init_general(FALSE,E->trace.ggrd_file,
char_dummy,gmt_bc,
- ggrd_ict,FALSE,FALSE,
+ ggrd_ict,(E->parallel.me==0)?TRUE:FALSE,FALSE,
use_nearneighbor)){
myerror(E,"ggrd tracer init error");
}
@@ -134,7 +134,7 @@
mpi_rc = MPI_Send(&mpi_success_message, 1,
MPI_INT, (E->parallel.me+1), 0, E->parallel.world);
}else{
- report(E,"ggrd_init_tracer_flavors: last processor done with ggrd mat init");
+ fprintf(stderr,"ggrd_init_tracer_flavors: last processor done with ggrd mat init");
}
/* init done */
Modified: mc/3D/CitcomS/trunk/lib/Output_gzdir.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Output_gzdir.c 2012-01-14 01:49:16 UTC (rev 19359)
+++ mc/3D/CitcomS/trunk/lib/Output_gzdir.c 2012-01-14 08:00:41 UTC (rev 19360)
@@ -1135,7 +1135,7 @@
E->composition.initial_bulk_composition,
E->composition.bulk_composition);
for(i=1;i<=E->lmesh.nno;i++) {
- for(k=0;k<E->composition.ncomp;k++)
+ for(k=0;k < E->composition.ncomp;k++)
gzprintf(gz1,"%.6e ",E->composition.comp_node[j][k][i]);
gzprintf(gz1,"\n");
}
Modified: mc/3D/CitcomS/trunk/lib/Pan_problem_misc_functions.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Pan_problem_misc_functions.c 2012-01-14 01:49:16 UTC (rev 19359)
+++ mc/3D/CitcomS/trunk/lib/Pan_problem_misc_functions.c 2012-01-14 08:00:41 UTC (rev 19360)
@@ -157,7 +157,7 @@
//char filename[100];FILE *out;
nxny = E->lmesh.nox*E->lmesh.noy;
- /* Rayleigh number */
+ /* Rayleigh number (can be negative for time reversal) */
temp = E->control.Atemp;
/* thermal buoyancy */
Modified: mc/3D/CitcomS/trunk/lib/Topo_gravity.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Topo_gravity.c 2012-01-14 01:49:16 UTC (rev 19359)
+++ mc/3D/CitcomS/trunk/lib/Topo_gravity.c 2012-01-14 08:00:41 UTC (rev 19360)
@@ -605,7 +605,7 @@
/* scale for buoyancy */
scaling2 = -E->data.therm_exp*E->data.ref_temperature*E->data.density
- / E->control.Atemp;
+ / fabs(E->control.Atemp);
/* scale for geoid */
scaling = 4.0 * M_PI * 1.0e3 * E->data.radius_km * E->data.grav_const
/ E->data.grav_acc;
Modified: mc/3D/CitcomS/trunk/lib/Viscosity_structures.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Viscosity_structures.c 2012-01-14 01:49:16 UTC (rev 19359)
+++ mc/3D/CitcomS/trunk/lib/Viscosity_structures.c 2012-01-14 08:00:41 UTC (rev 19360)
@@ -172,8 +172,8 @@
rheology (activated it for anisotropic viscosity)
*/
-
- input_boolean("CDEPV",&(E->viscosity.CDEPV),"off",m);
+ // moved to Composition related, for init purposes
+ //input_boolean("CDEPV",&(E->viscosity.CDEPV),"off",m);
for(i=0;i<10;i++)
E->viscosity.cdepv_ff[i] = 1.0; /* flavor factors for CDEPV */
if(E->viscosity.CDEPV){
More information about the CIG-COMMITS
mailing list