[cig-commits] r6232 - mc/3D/CitcomS/trunk/lib
tan2 at geodynamics.org
tan2 at geodynamics.org
Mon Mar 12 15:07:19 PDT 2007
Author: tan2
Date: 2007-03-12 15:07:19 -0700 (Mon, 12 Mar 2007)
New Revision: 6232
Modified:
mc/3D/CitcomS/trunk/lib/Composition_related.c
mc/3D/CitcomS/trunk/lib/Full_tracer_advection.c
mc/3D/CitcomS/trunk/lib/composition_related.h
Log:
Initial bulk composition
Modified: mc/3D/CitcomS/trunk/lib/Composition_related.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Composition_related.c 2007-03-12 22:06:37 UTC (rev 6231)
+++ mc/3D/CitcomS/trunk/lib/Composition_related.c 2007-03-12 22:07:19 UTC (rev 6232)
@@ -234,6 +234,7 @@
if (E->composition.ichemical_buoyancy==1 && E->composition.ibuoy_type==1) {
initialize_old_composition(E);
fill_composition(E);
+ init_bulk_composition(E);
}
return;
}
@@ -425,9 +426,7 @@
/*********** GET BULK COMPOSITION *******************************/
-void get_bulk_composition(E)
- struct All_variables *E;
-
+void init_bulk_composition(struct All_variables *E)
{
char output_file[200];
@@ -446,63 +445,53 @@
FILE *fp;
- static int been_here=0;
-
/* ival=0 returns integral not average */
- volume=return_bulk_value_d(E,E->composition.comp_node,ival);
+ volume = return_bulk_value_d(E,E->composition.comp_node,ival);
- E->composition.bulk_composition=volume;
+ E->composition.bulk_composition = volume;
+ E->composition.initial_bulk_composition = volume;
- /* Here we assume if restart = 1 or 0 tracers are reset */
- /* if restart = 2 tracers may or may not be reset */
- /* (read initial composition from file) */
- //TODO: figure out how to remove been_here
- if (been_here==0)
- {
- if (E->composition.ireset_initial_composition==1)
- {
- E->composition.initial_bulk_composition=volume;
- }
- else
- {
+ /* If retarting tracers, the initital bulk composition is read from file */
+ if (E->trace.ic_method == 2 &&
+ !E->composition.ireset_initial_composition) {
- if (E->trace.ic_method!=2)
- {
- fprintf(E->trace.fpt,"ERROR(bulk composition)-wrong reset,restart combo\n");
- fflush(E->trace.fpt);
- exit(10);
- }
+ sprintf(output_file,"%s.comp_el.%d.%d",E->control.old_P_file,
+ E->parallel.me, E->monitor.solution_cycles);
- sprintf(output_file,"%s.comp.%d.%d",E->control.old_P_file,
- E->parallel.me,E->monitor.solution_cycles);
+ fp=fopen(output_file,"r");
+ fgets(input_s,200,fp);
+ sscanf(input_s,"%d %d %lf %lf %lf",
+ &istep,&idum1,&rdum1,&rdum2,&rdum3);
- fp=fopen(output_file,"r");
- fgets(input_s,200,fp);
- sscanf(input_s,"%d %d %lf %lf %lf",
- &istep,&idum1,&rdum1,&rdum2,&rdum3);
+ E->composition.initial_bulk_composition = rdum2;
+ fclose(fp);
- E->composition.initial_bulk_composition=rdum2;
- fclose(fp);
+ }
- if (istep!=E->monitor.solution_cycles)
- {
- fprintf(E->trace.fpt,"ERROR(get_bulk_composition) %d %d\n",
- istep,E->monitor.solution_cycles);
- fflush(E->trace.fpt);
- exit(10);
- }
- }
- }
+ return;
+}
+
+void get_bulk_composition(E)
+ struct All_variables *E;
+
+{
+
+ double return_bulk_value_d();
+ double volume;
+ const ival = 0;
+
+ /* ival=0 returns integral not average */
+ volume=return_bulk_value_d(E,E->composition.comp_node,ival);
+
+ E->composition.bulk_composition=volume;
+
E->composition.error_fraction=((volume-E->composition.initial_bulk_composition)/
E->composition.initial_bulk_composition);
- parallel_process_sync(E);
-
- been_here++;
return;
}
Modified: mc/3D/CitcomS/trunk/lib/Full_tracer_advection.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Full_tracer_advection.c 2007-03-12 22:06:37 UTC (rev 6231)
+++ mc/3D/CitcomS/trunk/lib/Full_tracer_advection.c 2007-03-12 22:07:19 UTC (rev 6232)
@@ -276,7 +276,6 @@
exit(10);
}
-
/* total number of tracers */
E->trace.ilast_tracer_count = isum_tracers(E);
@@ -367,8 +366,6 @@
static int been_here=0;
- //TODO: fix this function
- if (E->composition.ichemical_buoyancy==1) get_bulk_composition(E);
fprintf(E->trace.fpt,"Number of times for all element search %d\n",E->trace.istat1);
@@ -3194,6 +3191,7 @@
fflush(E->trace.fpt);
}
+ fclose(fp1);
return;
Modified: mc/3D/CitcomS/trunk/lib/composition_related.h
===================================================================
--- mc/3D/CitcomS/trunk/lib/composition_related.h 2007-03-12 22:06:37 UTC (rev 6231)
+++ mc/3D/CitcomS/trunk/lib/composition_related.h 2007-03-12 22:07:19 UTC (rev 6232)
@@ -28,6 +28,7 @@
void composition_input(struct All_variables *E);
void composition_setup(struct All_variables *E);
void write_composition_instructions(struct All_variables *E);
+void init_bulk_composition(struct All_variables *E);
void init_tracer_composition(struct All_variables *E);
void fill_composition(struct All_variables *E);
More information about the cig-commits
mailing list