[cig-commits] commit: Gracefully handle tracer output without filling the pressure slot

Mercurial hg at geodynamics.org
Sat Oct 8 01:49:35 PDT 2011


changeset:   885:015f9792082d
tag:         tip
user:        Walter Landry <wlandry at caltech.edu>
date:        Sat Oct 08 01:47:58 2011 -0700
files:       Utils/src/TracerOutput.cxx
description:
Gracefully handle tracer output without filling the pressure slot


diff -r 60cca4257758 -r 015f9792082d Utils/src/TracerOutput.cxx
--- a/Utils/src/TracerOutput.cxx	Fri Oct 07 23:41:41 2011 -0700
+++ b/Utils/src/TracerOutput.cxx	Sat Oct 08 01:47:58 2011 -0700
@@ -191,7 +191,8 @@ void _TracerOutput_Build( void* swarmOut
   int i;
   TracerOutput*	self = (TracerOutput*) swarmOutput;
 
-  Stg_Component_Build( self->pressureField, data, False );
+  if(self->pressureField)
+    Stg_Component_Build( self->pressureField, data, False );
   for(i=0;i<self->num_fields;++i)
     Stg_Component_Build( self->fields[i], data, False );
 
@@ -201,7 +202,8 @@ void _TracerOutput_Initialise( void* swa
   int i;
   TracerOutput*	self = (TracerOutput*) swarmOutput;
 
-  Stg_Component_Initialise( self->pressureField, data, False );
+  if(self->pressureField)
+    Stg_Component_Initialise( self->pressureField, data, False );
   for(i=0;i<self->num_fields;++i)
     Stg_Component_Initialise( self->fields[i], data, False );
 	
@@ -216,7 +218,8 @@ void _TracerOutput_Destroy( void* swarmO
   int i;
   TracerOutput*	self = (TracerOutput*)swarmOutput;
 
-  Stg_Component_Destroy( self->pressureField, data, False );
+  if(self->pressureField)
+    Stg_Component_Destroy( self->pressureField, data, False );
   for(i=0;i<self->num_fields;++i)
     Stg_Component_Destroy( self->fields[i], data, False );
 	
@@ -262,12 +265,14 @@ void _TracerOutput_PrintData( void* swar
 
   _SwarmOutput_PrintData( self, stream, lParticle_I, context );
 
-  FieldVariable_InterpolateValueAt(self->pressureField,coord,&pressure );
-  if(hydrostaticTerm){
-    pressure+=HydrostaticTerm_Pressure(hydrostaticTerm,coord);
-  }
-  SwarmOutput_PrintValue( self, stream, pressure );
-
+  if(self->pressureField)
+    {
+      FieldVariable_InterpolateValueAt(self->pressureField,coord,&pressure );
+      if(hydrostaticTerm){
+        pressure+=HydrostaticTerm_Pressure(hydrostaticTerm,coord);
+      }
+      SwarmOutput_PrintValue( self, stream, pressure );
+    }
   for(i=0;i<self->num_fields;++i)
     {
       FieldVariable_InterpolateValueAt(self->fields[i],coord,&field);



More information about the CIG-COMMITS mailing list