[cig-commits] r17911 - mc/3D/CitcomCU/trunk/src

becker at geodynamics.org becker at geodynamics.org
Sat Feb 19 16:02:18 PST 2011


Author: becker
Date: 2011-02-19 16:02:18 -0800 (Sat, 19 Feb 2011)
New Revision: 17911

Modified:
   mc/3D/CitcomCU/trunk/src/Instructions.c
   mc/3D/CitcomCU/trunk/src/Nodal_mesh.c
   mc/3D/CitcomCU/trunk/src/Output_gzdir.c
   mc/3D/CitcomCU/trunk/src/global_defs.h
   mc/3D/CitcomCU/trunk/src/prototypes.h
Log:
Added output of second strain rate invariant to gzdir version. 



Modified: mc/3D/CitcomCU/trunk/src/Instructions.c
===================================================================
--- mc/3D/CitcomCU/trunk/src/Instructions.c	2011-02-19 23:45:06 UTC (rev 17910)
+++ mc/3D/CitcomCU/trunk/src/Instructions.c	2011-02-20 00:02:18 UTC (rev 17911)
@@ -778,6 +778,7 @@
 #endif
 	/* control of VTK type of gzdir output */
 	input_boolean("vtk_pressure_out",&(E->control.vtk_pressure_out),"on",m);
+	input_boolean("vtk_e2_out",&(E->control.vtk_e2_out),"off",m);
 	input_boolean("vtk_vgm_out",&(E->control.vtk_vgm_out),"off",m);
 	input_boolean("vtk_viscosity_out",&(E->control.vtk_viscosity_out),"on",m);
 

Modified: mc/3D/CitcomCU/trunk/src/Nodal_mesh.c
===================================================================
--- mc/3D/CitcomCU/trunk/src/Nodal_mesh.c	2011-02-19 23:45:06 UTC (rev 17910)
+++ mc/3D/CitcomCU/trunk/src/Nodal_mesh.c	2011-02-20 00:02:18 UTC (rev 17911)
@@ -416,6 +416,23 @@
 
 	return;
 }
+void e2_to_nodes(struct All_variables *E, float *e2, float *e2n, int lev)
+{
+  int element, node, j;
+  
+  for(node = 1; node <= E->lmesh.NNO[lev]; node++)
+    e2n[node] = 0.0;
+  for(element = 1; element <= E->lmesh.NEL[lev]; element++){
+    for(j = 1; j <= enodes[E->mesh.nsd]; j++){
+      node = E->IEN[lev][element].node[j];
+      e2n[node] += e2[element] * E->TW[lev][node];
+    }
+  }
+  
+  exchange_node_f20(E, e2n, lev);
+  
+  return;
+}
 
 
 void p_to_centres(struct All_variables *E, float *PN, double *P, int lev)

Modified: mc/3D/CitcomCU/trunk/src/Output_gzdir.c
===================================================================
--- mc/3D/CitcomCU/trunk/src/Output_gzdir.c	2011-02-19 23:45:06 UTC (rev 17910)
+++ mc/3D/CitcomCU/trunk/src/Output_gzdir.c	2011-02-20 00:02:18 UTC (rev 17911)
@@ -94,7 +94,7 @@
   const int nno = E->mesh.nno;
   const int lev = E->mesh.levmax;
   const int ppts = ppoints[dims];
-
+  float *e2,*e2n;
   gzFile gzout;
 
   if(E->control.composition)
@@ -336,6 +336,24 @@
 	    gzprintf(gzout,"%.6e\n",E->NP[i]);
 	  gzclose(gzout);
 	}
+	if(E->control.vtk_e2_out){
+	  /* 
+	     second invariant 
+	  */
+	  e2n = (float *)malloc((E->lmesh.nno + 10) * sizeof(float));
+	  e2 = (float *)malloc((E->lmesh.nel + 1) * sizeof(float));
+	  strain_rate_2_inv(E, e2, 1); /* compute strain rate for every element */
+	  e2_to_nodes(E, e2,e2n, E->mesh.levmax); /* project to nodes */
+	  sprintf(output_file,"%s/%d/e2inv.%d.%d.gz",E->control.data_file2,
+		  file_number, E->parallel.me,file_number);
+	  gzout = safe_gzopen(output_file,"w");
+	  gzprintf(gzout,"%d %d %13.6e\n",file_number,E->lmesh.nno,E->monitor.elapsed_time);
+	  gzprintf(gzout,"%3d %7d\n",1,E->lmesh.nno);
+	  for(i=1;i<=E->lmesh.nno;i++)          
+	    gzprintf(gzout,"%.6e\n",e2n[i]);
+	  gzclose(gzout);
+	  free(e2n);free(e2);
+	}
 	if(E->control.vtk_vgm_out){
 	  /* 
 	     

Modified: mc/3D/CitcomCU/trunk/src/global_defs.h
===================================================================
--- mc/3D/CitcomCU/trunk/src/global_defs.h	2011-02-19 23:45:06 UTC (rev 17910)
+++ mc/3D/CitcomCU/trunk/src/global_defs.h	2011-02-20 00:02:18 UTC (rev 17911)
@@ -821,7 +821,7 @@
 	int total_iteration_cycles;
 	int total_v_solver_calls;
 
-  int gzdir,vtk_pressure_out,vtk_vgm_out,vtk_viscosity_out;
+  int gzdir,vtk_pressure_out,vtk_vgm_out,vtk_viscosity_out,vtk_e2_out;
   
 	int record_every;
 	int record_all_until;

Modified: mc/3D/CitcomCU/trunk/src/prototypes.h
===================================================================
--- mc/3D/CitcomCU/trunk/src/prototypes.h	2011-02-19 23:45:06 UTC (rev 17910)
+++ mc/3D/CitcomCU/trunk/src/prototypes.h	2011-02-20 00:02:18 UTC (rev 17911)
@@ -207,6 +207,7 @@
 void flogical_mesh_to_real(struct All_variables *, float *, int);
 void p_to_nodes(struct All_variables *, double *, float *, int);
 void p_to_centres(struct All_variables *, float *, double *, int);
+void e2_to_nodes(struct All_variables *, float *, float *, int );
 void v_to_intpts(struct All_variables *, float *, float *, int);
 void v_to_nodes(struct All_variables *, float *, float *, int);
 void visc_to_intpts(struct All_variables *, float *, float *, int);



More information about the CIG-COMMITS mailing list