[cig-commits] r5031 - in long/3D/Gale/trunk/src/Underworld: . Rheology/src Rheology/tests/LateralViscosityAnalytic Rheology/tests/NonNewtonianShearSolution Rheology/tests/testConstitutiveMatrix Rheology/tests/testDirector Rheology/tests/testDirectorPerMaterial Rheology/tests/testDirectorRandomness Rheology/tests/testStiffnessMatrixAssembly Rheology/tests/testYieldCriterion Utils/src libUnderworld/src plugins/Application plugins/EulerDeform plugins/IncompressibleExtensionBC plugins/MaterialThermalDiffusivity plugins/MovingMesh plugins/MovingMesh/tests/plugins plugins/MovingMeshEnergyCorrection plugins/Output/BoundaryLayers plugins/Output/ConvectionData plugins/Output/CylinderNodeProfiling plugins/Output/MaxTemperature plugins/Output/Nusselt plugins/Output/Nusselt_deltaT plugins/Output/Shfl plugins/Output/Vrms plugins/VariableConditions/ShapeTemperatureIC src

walter at geodynamics.org walter at geodynamics.org
Sat Oct 14 11:40:00 PDT 2006


Author: walter
Date: 2006-10-14 11:34:47 -0700 (Sat, 14 Oct 2006)
New Revision: 5031

Modified:
   long/3D/Gale/trunk/src/Underworld/
   long/3D/Gale/trunk/src/Underworld/Rheology/src/AlignmentSwarmVariable.c
   long/3D/Gale/trunk/src/Underworld/Rheology/src/AlignmentSwarmVariable.h
   long/3D/Gale/trunk/src/Underworld/Rheology/src/Anisotropic.c
   long/3D/Gale/trunk/src/Underworld/Rheology/src/Anisotropic.h
   long/3D/Gale/trunk/src/Underworld/Rheology/src/Arrhenius.c
   long/3D/Gale/trunk/src/Underworld/Rheology/src/Arrhenius.h
   long/3D/Gale/trunk/src/Underworld/Rheology/src/BuiterStrainWeakening.c
   long/3D/Gale/trunk/src/Underworld/Rheology/src/BuiterStrainWeakening.h
   long/3D/Gale/trunk/src/Underworld/Rheology/src/Byerlee.c
   long/3D/Gale/trunk/src/Underworld/Rheology/src/Byerlee.h
   long/3D/Gale/trunk/src/Underworld/Rheology/src/Compressible.c
   long/3D/Gale/trunk/src/Underworld/Rheology/src/Compressible.h
   long/3D/Gale/trunk/src/Underworld/Rheology/src/ConstitutiveMatrix.c
   long/3D/Gale/trunk/src/Underworld/Rheology/src/ConstitutiveMatrix.h
   long/3D/Gale/trunk/src/Underworld/Rheology/src/ConstitutiveMatrixCartesian.c
   long/3D/Gale/trunk/src/Underworld/Rheology/src/ConstitutiveMatrixCartesian.h
   long/3D/Gale/trunk/src/Underworld/Rheology/src/DepthDependentViscosity.c
   long/3D/Gale/trunk/src/Underworld/Rheology/src/DepthDependentViscosity.h
   long/3D/Gale/trunk/src/Underworld/Rheology/src/Director.c
   long/3D/Gale/trunk/src/Underworld/Rheology/src/Director.h
   long/3D/Gale/trunk/src/Underworld/Rheology/src/DruckerPrager.c
   long/3D/Gale/trunk/src/Underworld/Rheology/src/DruckerPrager.h
   long/3D/Gale/trunk/src/Underworld/Rheology/src/FaultingMoresiMuhlhaus2006.c
   long/3D/Gale/trunk/src/Underworld/Rheology/src/FaultingMoresiMuhlhaus2006.h
   long/3D/Gale/trunk/src/Underworld/Rheology/src/FrankKamenetskii.c
   long/3D/Gale/trunk/src/Underworld/Rheology/src/FrankKamenetskii.h
   long/3D/Gale/trunk/src/Underworld/Rheology/src/MaterialViscosity.c
   long/3D/Gale/trunk/src/Underworld/Rheology/src/MaterialViscosity.h
   long/3D/Gale/trunk/src/Underworld/Rheology/src/MultiRheologyMaterial.c
   long/3D/Gale/trunk/src/Underworld/Rheology/src/MultiRheologyMaterial.h
   long/3D/Gale/trunk/src/Underworld/Rheology/src/NonNewtonian.c
   long/3D/Gale/trunk/src/Underworld/Rheology/src/NonNewtonian.h
   long/3D/Gale/trunk/src/Underworld/Rheology/src/Orthotropic.c
   long/3D/Gale/trunk/src/Underworld/Rheology/src/Orthotropic.h
   long/3D/Gale/trunk/src/Underworld/Rheology/src/OrthotropicAligned.c
   long/3D/Gale/trunk/src/Underworld/Rheology/src/OrthotropicAligned.h
   long/3D/Gale/trunk/src/Underworld/Rheology/src/RheologyClass.c
   long/3D/Gale/trunk/src/Underworld/Rheology/src/RheologyClass.h
   long/3D/Gale/trunk/src/Underworld/Rheology/src/RheologyMaterial.c
   long/3D/Gale/trunk/src/Underworld/Rheology/src/RheologyMaterial.h
   long/3D/Gale/trunk/src/Underworld/Rheology/src/StoreStress.c
   long/3D/Gale/trunk/src/Underworld/Rheology/src/StoreStress.h
   long/3D/Gale/trunk/src/Underworld/Rheology/src/StoreViscosity.c
   long/3D/Gale/trunk/src/Underworld/Rheology/src/StoreViscosity.h
   long/3D/Gale/trunk/src/Underworld/Rheology/src/StrainWeakening.c
   long/3D/Gale/trunk/src/Underworld/Rheology/src/StrainWeakening.h
   long/3D/Gale/trunk/src/Underworld/Rheology/src/VonMises.c
   long/3D/Gale/trunk/src/Underworld/Rheology/src/VonMises.h
   long/3D/Gale/trunk/src/Underworld/Rheology/src/YieldRheology.c
   long/3D/Gale/trunk/src/Underworld/Rheology/src/YieldRheology.h
   long/3D/Gale/trunk/src/Underworld/Rheology/tests/LateralViscosityAnalytic/LateralViscosityAnalytic.c
   long/3D/Gale/trunk/src/Underworld/Rheology/tests/NonNewtonianShearSolution/NonNewtonianShearSolution.c
   long/3D/Gale/trunk/src/Underworld/Rheology/tests/testConstitutiveMatrix/testConstitutiveMatrix.c
   long/3D/Gale/trunk/src/Underworld/Rheology/tests/testDirector/testDirector.c
   long/3D/Gale/trunk/src/Underworld/Rheology/tests/testDirectorPerMaterial/testDirectorPerMaterial.c
   long/3D/Gale/trunk/src/Underworld/Rheology/tests/testDirectorRandomness/testDirectorRandomness.c
   long/3D/Gale/trunk/src/Underworld/Rheology/tests/testStiffnessMatrixAssembly/testStiffnessMatrixAssembly.c
   long/3D/Gale/trunk/src/Underworld/Rheology/tests/testYieldCriterion/testYieldCriterion.c
   long/3D/Gale/trunk/src/Underworld/Utils/src/Context.c
   long/3D/Gale/trunk/src/Underworld/Utils/src/Context.h
   long/3D/Gale/trunk/src/Underworld/Utils/src/PressureTemperatureOutput.c
   long/3D/Gale/trunk/src/Underworld/Utils/src/PressureTemperatureOutput.h
   long/3D/Gale/trunk/src/Underworld/Utils/src/RadiogenicHeatingTerm.c
   long/3D/Gale/trunk/src/Underworld/Utils/src/RadiogenicHeatingTerm.h
   long/3D/Gale/trunk/src/Underworld/Utils/src/StressField.c
   long/3D/Gale/trunk/src/Underworld/Utils/src/StressField.h
   long/3D/Gale/trunk/src/Underworld/Utils/src/ViscosityField.c
   long/3D/Gale/trunk/src/Underworld/Utils/src/ViscosityField.h
   long/3D/Gale/trunk/src/Underworld/libUnderworld/src/Init.c
   long/3D/Gale/trunk/src/Underworld/plugins/Application/Application.c
   long/3D/Gale/trunk/src/Underworld/plugins/Application/Application.h
   long/3D/Gale/trunk/src/Underworld/plugins/EulerDeform/EulerDeform.c
   long/3D/Gale/trunk/src/Underworld/plugins/EulerDeform/EulerDeform.h
   long/3D/Gale/trunk/src/Underworld/plugins/IncompressibleExtensionBC/IncompressibleExtensionBC.c
   long/3D/Gale/trunk/src/Underworld/plugins/MaterialThermalDiffusivity/MaterialThermalDiffusivity.c
   long/3D/Gale/trunk/src/Underworld/plugins/MovingMesh/MovingMesh.c
   long/3D/Gale/trunk/src/Underworld/plugins/MovingMesh/MovingMesh.h
   long/3D/Gale/trunk/src/Underworld/plugins/MovingMesh/tests/plugins/testMovingMesh.c
   long/3D/Gale/trunk/src/Underworld/plugins/MovingMeshEnergyCorrection/MovingMeshEnergyCorrection.c
   long/3D/Gale/trunk/src/Underworld/plugins/Output/BoundaryLayers/BoundaryLayers.c
   long/3D/Gale/trunk/src/Underworld/plugins/Output/ConvectionData/ConvectionData.c
   long/3D/Gale/trunk/src/Underworld/plugins/Output/CylinderNodeProfiling/CylinderNodeProfiling.c
   long/3D/Gale/trunk/src/Underworld/plugins/Output/MaxTemperature/MaxTemperature.c
   long/3D/Gale/trunk/src/Underworld/plugins/Output/Nusselt/Nusselt.c
   long/3D/Gale/trunk/src/Underworld/plugins/Output/Nusselt_deltaT/Nusselt_deltaT.c
   long/3D/Gale/trunk/src/Underworld/plugins/Output/Shfl/Shfl.c
   long/3D/Gale/trunk/src/Underworld/plugins/Output/Vrms/Vrms.c
   long/3D/Gale/trunk/src/Underworld/plugins/VariableConditions/ShapeTemperatureIC/ShapeTemperatureIC.c
   long/3D/Gale/trunk/src/Underworld/src/main.c
Log:
 r663 at earth:  boo | 2006-10-14 11:34:11 -0700
  r657 at earth (orig r354):  SteveQuenette | 2006-10-12 01:19:27 -0700
  STGERMAIN INTERFACE CHANGE
  * *_Construct now takes a third argument "void* data"
  * This code re-affirms a "Context" as a "Component" with its interfaces (the phases) implemented as entry points.
     * Entry point "IC" renamed to "Initialise"
        * Entry point "Run" renamed to "Execute"
        * All the code in main.c to construct a context is taken out and moved into the context itself: i.e. a context now constructs itself!
  
 



Property changes on: long/3D/Gale/trunk/src/Underworld
___________________________________________________________________
Name: svk:merge
   - 9570c393-cf10-0410-b476-9a651db1e55a:/cig:662
c24a034b-ab11-0410-afe6-cfe714e2959e:/trunk:353
   + 9570c393-cf10-0410-b476-9a651db1e55a:/cig:663
c24a034b-ab11-0410-afe6-cfe714e2959e:/trunk:354

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/src/AlignmentSwarmVariable.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/src/AlignmentSwarmVariable.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/src/AlignmentSwarmVariable.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -131,17 +131,17 @@
 		name );
 }
 
-void _AlignmentSwarmVariable_Construct( void* druckerPrager, Stg_ComponentFactory* cf ){
+void _AlignmentSwarmVariable_Construct( void* druckerPrager, Stg_ComponentFactory* cf, void* data ){
 	AlignmentSwarmVariable*   self           = (AlignmentSwarmVariable*)druckerPrager;
 	FeVariable*               velocityField;
 	Director*                 director;
 
 	/* Construct Parent */
-	_SwarmVariable_Construct( self, cf );
+	_SwarmVariable_Construct( self, cf, data );
 
 	/* Construct 'AlignmentSwarmVariable' stuff */
-	velocityField = Stg_ComponentFactory_ConstructByKey( cf, self->name, "VelocityField", FeVariable, True ) ;
-	director      = Stg_ComponentFactory_ConstructByKey( cf, self->name, "Director", Director, True ) ;
+	velocityField = Stg_ComponentFactory_ConstructByKey( cf, self->name, "VelocityField", FeVariable, True, data ) ;
+	director      = Stg_ComponentFactory_ConstructByKey( cf, self->name, "Director", Director, True, data ) ;
 
 	_AlignmentSwarmVariable_Init(
 			self, 

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/src/AlignmentSwarmVariable.h
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/src/AlignmentSwarmVariable.h	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/src/AlignmentSwarmVariable.h	2006-10-14 18:34:47 UTC (rev 5031)
@@ -80,7 +80,7 @@
 	
 	/* 'Stg_Component' implementations */
 	void* _AlignmentSwarmVariable_DefaultNew( Name name ) ;
-	void _AlignmentSwarmVariable_Construct( void* alignment, Stg_ComponentFactory* cf );
+	void _AlignmentSwarmVariable_Construct( void* alignment, Stg_ComponentFactory* cf, void* data );
 	void _AlignmentSwarmVariable_Initialise( void* alignment, void* data ) ;
 
 	/* 'SwarmVariable Virtual Implementations */

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/src/Anisotropic.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/src/Anisotropic.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/src/Anisotropic.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -117,14 +117,14 @@
 		name );
 }
 
-void _Anisotropic_Construct( void* rheology, Stg_ComponentFactory* cf ){
+void _Anisotropic_Construct( void* rheology, Stg_ComponentFactory* cf, void* data ){
 	Anisotropic*     self = (Anisotropic*)rheology;
 	Director*        director;
 
 	/* Construct Parent */
-	_Rheology_Construct( self, cf );
+	_Rheology_Construct( self, cf, data );
 	
-	director =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  "Director", Director,  True  ) ;
+	director =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  "Director", Director,  True, data ) ;
 
 	_Anisotropic_Init( 
 			self, 

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/src/Anisotropic.h
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/src/Anisotropic.h	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/src/Anisotropic.h	2006-10-14 18:34:47 UTC (rev 5031)
@@ -78,7 +78,7 @@
 
 	/* 'Stg_Component' implementations */
 	void* _Anisotropic_DefaultNew( Name name ) ;
-	void _Anisotropic_Construct( void* rheology, Stg_ComponentFactory* cf );
+	void _Anisotropic_Construct( void* rheology, Stg_ComponentFactory* cf, void* data );
 
 	void _Anisotropic_ModifyConstitutiveMatrix( 
 		void*                                              rheology, 

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/src/Arrhenius.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/src/Arrhenius.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/src/Arrhenius.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -123,16 +123,16 @@
 		name );
 }
 
-void _Arrhenius_Construct( void* rheology, Stg_ComponentFactory* cf ){
+void _Arrhenius_Construct( void* rheology, Stg_ComponentFactory* cf, void* data ){
 	Arrhenius*     self = (Arrhenius*)rheology;
 	FeVariable*    temperatureField;
 
 	/* Construct Parent */
-	_Rheology_Construct( self, cf );
+	_Rheology_Construct( self, cf, data );
 	
 	// TODO: 'KeyFallback' soon to be deprecated/updated
 	temperatureField = Stg_ComponentFactory_ConstructByNameWithKeyFallback(
-                        cf, self->name, "TemperatureField", "TemperatureField", FeVariable, True );
+                        cf, self->name, "TemperatureField", "TemperatureField", FeVariable, True, data );
 	/*temperatureField = Stg_ComponentFactory_ConstructByKey( 
 			cf, self->name, "TemperatureField", FeVariable, True );*/
 

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/src/Arrhenius.h
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/src/Arrhenius.h	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/src/Arrhenius.h	2006-10-14 18:34:47 UTC (rev 5031)
@@ -82,7 +82,7 @@
 
 	/* 'Stg_Component' implementations */
 	void* _Arrhenius_DefaultNew( Name name ) ;
-	void _Arrhenius_Construct( void* rheology, Stg_ComponentFactory* cf );
+	void _Arrhenius_Construct( void* rheology, Stg_ComponentFactory* cf, void* data );
 
 	void _Arrhenius_ModifyConstitutiveMatrix( 
 		void*                                              rheology, 

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/src/BuiterStrainWeakening.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/src/BuiterStrainWeakening.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/src/BuiterStrainWeakening.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -143,11 +143,11 @@
 		name );
 }
 
-void _BuiterStrainWeakening_Construct( void* strainWeakening, Stg_ComponentFactory* cf ){
+void _BuiterStrainWeakening_Construct( void* strainWeakening, Stg_ComponentFactory* cf, void* data ){
 	BuiterStrainWeakening*        self           = (BuiterStrainWeakening*) strainWeakening;
 
 	/* Construct Parent */
-	_StrainWeakening_Construct( self, cf );
+	_StrainWeakening_Construct( self, cf, data );
 }
 
 void _BuiterStrainWeakening_Build( void* strainWeakening, void* data ) {

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/src/BuiterStrainWeakening.h
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/src/BuiterStrainWeakening.h	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/src/BuiterStrainWeakening.h	2006-10-14 18:34:47 UTC (rev 5031)
@@ -80,7 +80,7 @@
 	
 	/* 'Stg_Component' implementations */
 	void* _BuiterStrainWeakening_DefaultNew( Name name ) ;
-	void _BuiterStrainWeakening_Construct( void* rheology, Stg_ComponentFactory* cf );
+	void _BuiterStrainWeakening_Construct( void* rheology, Stg_ComponentFactory* cf, void* data );
 	void _BuiterStrainWeakening_Build( void* strainWeakening, void* data ) ;
 	void _BuiterStrainWeakening_Initialise( void* strainWeakening, void* data ) ;
 

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/src/Byerlee.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/src/Byerlee.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/src/Byerlee.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -131,18 +131,18 @@
 		name );
 }
 
-void _Byerlee_Construct( void* rheology, Stg_ComponentFactory* cf ){
+void _Byerlee_Construct( void* rheology, Stg_ComponentFactory* cf, void* data ){
 	Byerlee*            self           = (Byerlee*)rheology;
 	BlockGeometry*      geometry;
 	FiniteElement_Mesh* mesh;
 
 	/* Construct Parent */
-	_VonMises_Construct( self, cf );
+	_VonMises_Construct( self, cf, data );
 	// TODO: "KeyFallback' soon to be deprecated/updated
 	geometry = Stg_ComponentFactory_ConstructByNameWithKeyFallback(
-                        cf, self->name, "geometry", "BlockGeometry", BlockGeometry, True );
-        mesh     = Stg_ComponentFactory_ConstructByNameWithKeyFallback(
-                        cf, self->name, "mesh-linear", "FiniteElement_Mesh", FiniteElement_Mesh, True );
+                        cf, self->name, "geometry", "BlockGeometry", BlockGeometry, True, data );
+	mesh     = Stg_ComponentFactory_ConstructByNameWithKeyFallback(
+                        cf, self->name, "mesh-linear", "FiniteElement_Mesh", FiniteElement_Mesh, True, data );
 	/*geometry = Stg_ComponentFactory_ConstructByKey( 
 			cf, self->name, "BlockGeometry", BlockGeometry, True );
 	mesh     = Stg_ComponentFactory_ConstructByKey( 

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/src/Byerlee.h
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/src/Byerlee.h	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/src/Byerlee.h	2006-10-14 18:34:47 UTC (rev 5031)
@@ -83,7 +83,7 @@
 
 	/* 'Stg_Component' implementations */
 	void* _Byerlee_DefaultNew( Name name ) ;
-	void _Byerlee_Construct( void* rheology, Stg_ComponentFactory* cf );
+	void _Byerlee_Construct( void* rheology, Stg_ComponentFactory* cf, void* data );
 
 	/* 'YieldRheology' implementations */
 	double _Byerlee_GetYieldCriterion( 

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/src/Compressible.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/src/Compressible.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/src/Compressible.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -138,14 +138,14 @@
 }
 
 
-void _Compressible_Construct( void* compressible, Stg_ComponentFactory* cf ){
+void _Compressible_Construct( void* compressible, Stg_ComponentFactory* cf, void* data ){
 	Compressible*    self = (Compressible*)compressible;
 	FiniteElement_Mesh* geometryMesh;
 	Materials_Register* materials_Register;
 
-	_StiffnessMatrixTerm_Construct( self, cf );
+	_StiffnessMatrixTerm_Construct( self, cf, data );
 
-	geometryMesh = Stg_ComponentFactory_ConstructByKey( cf, self->name, "GeometryMesh", FiniteElement_Mesh, True );
+	geometryMesh = Stg_ComponentFactory_ConstructByKey( cf, self->name, "GeometryMesh", FiniteElement_Mesh, True, data );
 
 	materials_Register = Stg_ObjectList_Get( cf->registerRegister, "Materials_Register" );
 	assert( materials_Register );

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/src/Compressible.h
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/src/Compressible.h	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/src/Compressible.h	2006-10-14 18:34:47 UTC (rev 5031)
@@ -82,7 +82,7 @@
 	
 	/* 'Stg_Component' implementations */
 	void* _Compressible_DefaultNew( Name name ) ;
-	void _Compressible_Construct( void* rheology, Stg_ComponentFactory* cf );
+	void _Compressible_Construct( void* rheology, Stg_ComponentFactory* cf, void* data );
 	void _Compressible_Build( void* compressible, void* data );
 	void _Compressible_Initialise( void* compressible, void* data );
 	void _Compressible_Execute( void* compressible, void* data );

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/src/ConstitutiveMatrix.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/src/ConstitutiveMatrix.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/src/ConstitutiveMatrix.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -230,20 +230,20 @@
 	return (void*)newConstitutiveMatrix;
 }
 
-void _ConstitutiveMatrix_Construct( void* constitutiveMatrix, Stg_ComponentFactory* cf ) {
+void _ConstitutiveMatrix_Construct( void* constitutiveMatrix, Stg_ComponentFactory* cf, void* data ) {
 	ConstitutiveMatrix*         self          = (ConstitutiveMatrix*)constitutiveMatrix;
 	Dimension_Index             dim;
 	Materials_Register*         materialsRegister;
 	FiniteElementContext*       context;
 
-	_StiffnessMatrixTerm_Construct( self, cf );
+	_StiffnessMatrixTerm_Construct( self, cf, data );
 	
 	materialsRegister = Stg_ObjectList_Get( cf->registerRegister, "Materials_Register" );
 	assert( materialsRegister );
 
 	dim = Stg_ComponentFactory_GetRootDictUnsignedInt( cf, "dim", 0 );
 
-	context = (FiniteElementContext*)Stg_ComponentFactory_ConstructByName( cf, "context", FiniteElementContext, True );
+	context = (FiniteElementContext*)Stg_ComponentFactory_ConstructByName( cf, "context", FiniteElementContext, True, data );
 
 	_ConstitutiveMatrix_Init( self, dim, context, materialsRegister );
 }

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/src/ConstitutiveMatrix.h
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/src/ConstitutiveMatrix.h	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/src/ConstitutiveMatrix.h	2006-10-14 18:34:47 UTC (rev 5031)
@@ -121,7 +121,7 @@
 	void* _ConstitutiveMatrix_Copy( void* constitutiveMatrix, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 	
 	/* 'Stg_Component' Virtual Functions */
-	void _ConstitutiveMatrix_Construct( void* constitutiveMatrix, Stg_ComponentFactory* cf );
+	void _ConstitutiveMatrix_Construct( void* constitutiveMatrix, Stg_ComponentFactory* cf, void* data );
 	void _ConstitutiveMatrix_Build( void* constitutiveMatrix, void* data );
 	void _ConstitutiveMatrix_Initialise( void* constitutiveMatrix, void* data );
 	void _ConstitutiveMatrix_Execute( void* constitutiveMatrix, void* data );

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/src/ConstitutiveMatrixCartesian.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/src/ConstitutiveMatrixCartesian.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/src/ConstitutiveMatrixCartesian.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -189,11 +189,11 @@
 		name );
 }
 
-void _ConstitutiveMatrixCartesian_Construct( void* constitutiveMatrix, Stg_ComponentFactory* cf ) {
+void _ConstitutiveMatrixCartesian_Construct( void* constitutiveMatrix, Stg_ComponentFactory* cf, void* data ) {
 	ConstitutiveMatrixCartesian*            self             = (ConstitutiveMatrixCartesian*)constitutiveMatrix;
 
 	/* Construct Parent */
-	_ConstitutiveMatrix_Construct( self, cf );
+	_ConstitutiveMatrix_Construct( self, cf, data );
 
 	_ConstitutiveMatrixCartesian_Init( self );
 }

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/src/ConstitutiveMatrixCartesian.h
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/src/ConstitutiveMatrixCartesian.h	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/src/ConstitutiveMatrixCartesian.h	2006-10-14 18:34:47 UTC (rev 5031)
@@ -100,7 +100,7 @@
 	void _ConstitutiveMatrixCartesian_Print( void* constitutiveMatrix, Stream* stream );
 
 	void* _ConstitutiveMatrixCartesian_DefaultNew( Name name ) ;
-	void _ConstitutiveMatrixCartesian_Construct( void* constitutiveMatrix, Stg_ComponentFactory* cf ) ;
+void _ConstitutiveMatrixCartesian_Construct( void* constitutiveMatrix, Stg_ComponentFactory* cf, void* data ) ;
 	void _ConstitutiveMatrixCartesian_Build( void* constitutiveMatrix, void* data ) ;
 	void _ConstitutiveMatrixCartesian_Initialise( void* constitutiveMatrix, void* data ) ;
 	void _ConstitutiveMatrixCartesian_Execute( void* constitutiveMatrix, void* data ) ;

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/src/DepthDependentViscosity.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/src/DepthDependentViscosity.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/src/DepthDependentViscosity.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -120,7 +120,7 @@
 		name );
 }
 
-void _DepthDependentViscosity_Construct( void* rheology, Stg_ComponentFactory* cf ){
+void _DepthDependentViscosity_Construct( void* rheology, Stg_ComponentFactory* cf, void* data ){
 	DepthDependentViscosity*  self                   = (DepthDependentViscosity*)rheology;
 	FiniteElement_Mesh*       feMesh;
 	Axis                      variationAxis          = 0;
@@ -128,9 +128,9 @@
 	Stream*                   errorStream            = Journal_Register( Error_Type, self->type );
 
 	/* Construct Parent */
-	_Rheology_Construct( self, cf );
+	_Rheology_Construct( self, cf, data );
 	
-	feMesh = Stg_ComponentFactory_ConstructByKey( cf, self->name, "Mesh", FiniteElement_Mesh, True ) ;
+	feMesh = Stg_ComponentFactory_ConstructByKey( cf, self->name, "Mesh", FiniteElement_Mesh, True, data ) ;
 
 	variationAxisName = Stg_ComponentFactory_GetString( cf, self->name, "variationAxis", "Y" );
 

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/src/DepthDependentViscosity.h
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/src/DepthDependentViscosity.h	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/src/DepthDependentViscosity.h	2006-10-14 18:34:47 UTC (rev 5031)
@@ -39,7 +39,7 @@
 	
 	/* 'Stg_Component' implementations */
 	void* _DepthDependentViscosity_DefaultNew( Name name ) ;
-	void _DepthDependentViscosity_Construct( void* rheology, Stg_ComponentFactory* cf );
+	void _DepthDependentViscosity_Construct( void* rheology, Stg_ComponentFactory* cf, void* data );
 
 	void _DepthDependentViscosity_ModifyConstitutiveMatrix( 
 		void*                                              rheology, 

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/src/Director.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/src/Director.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/src/Director.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -191,25 +191,26 @@
 		name );
 }
 
-void _Director_Construct( void* director, Stg_ComponentFactory* cf ){
+void _Director_Construct( void* director, Stg_ComponentFactory* cf, void* data ){
 	Director*               self           = (Director*)director;
 	MaterialPointsSwarm*    materialPointsSwarm;
 	FeVariable*             velGradField;
 	char*                   initialDirectionTypeName;
 	InitialDirectionType    initialDirectionType;
+	
 	/* Construct Parent */
-	_TimeIntegratee_Construct( self, cf );
+	_TimeIntegratee_Construct( self, cf, data );
 	
 	/* Construct 'Director' stuff */
 	// TODO: 'KeyFallback' soon to be deprecated/updated
-	velGradField   = Stg_ComponentFactory_ConstructByNameWithKeyFallback(
-                       cf, self->name, "VelocityGradientsField", "VelocityGradientsField", FeVariable, True );
+        velGradField   = Stg_ComponentFactory_ConstructByNameWithKeyFallback(
+               cf, self->name, "VelocityGradientsField", "VelocityGradientsField", FeVariable, True, data );
 	/*
 	velGradField   = Stg_ComponentFactory_ConstructByKey( 
 			cf, self->name, "VelocityGradientsField", FeVariable, True );
 	*/		
 	materialPointsSwarm = Stg_ComponentFactory_ConstructByKey( 
-			cf, self->name, "MaterialPointsSwarm", MaterialPointsSwarm, True );
+			cf, self->name, "MaterialPointsSwarm", MaterialPointsSwarm, True, data );
 	
 	
 	/* Define the initial Direction type for the problem

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/src/Director.h
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/src/Director.h	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/src/Director.h	2006-10-14 18:34:47 UTC (rev 5031)
@@ -94,7 +94,7 @@
 	
 	/* 'Stg_Component' implementations */
 	void* _Director_DefaultNew( Name name );
-	void _Director_Construct( void* director, Stg_ComponentFactory* cf );
+	void _Director_Construct( void* director, Stg_ComponentFactory* cf, void* data );
 	void _Director_Build( void* director, void* data );
 	void _Director_Initialise( void* director, void* data );
 	

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/src/DruckerPrager.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/src/DruckerPrager.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/src/DruckerPrager.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -184,25 +184,25 @@
 			name );
 }
 
-void _DruckerPrager_Construct( void* druckerPrager, Stg_ComponentFactory* cf ){
+void _DruckerPrager_Construct( void* druckerPrager, Stg_ComponentFactory* cf, void* data ){
 	DruckerPrager*          self           = (DruckerPrager*)druckerPrager;
 	FeVariable*             pressureField;
 	MaterialPointsSwarm*    materialPointsSwarm;
 	FiniteElementContext*   context;
 
 	/* Construct Parent */
-	_VonMises_Construct( self, cf );
+	_VonMises_Construct( self, cf, data );
 	
 	// TODO: KeyFallback soon to be deprecated/updated
 	pressureField      = Stg_ComponentFactory_ConstructByNameWithKeyFallback(
-                        cf, self->name, "PressureField", "PressureField", FeVariable, True );
+                        cf, self->name, "PressureField", "PressureField", FeVariable, True, data );
 	/*pressureField      = Stg_ComponentFactory_ConstructByKey( 
 			cf, self->name, "PressureField", FeVariable, True );*/
 	materialPointsSwarm     = (MaterialPointsSwarm*)
-			Stg_ComponentFactory_ConstructByKey( cf, self->name, "MaterialPointsSwarm", MaterialPointsSwarm, True );
+			Stg_ComponentFactory_ConstructByKey( cf, self->name, "MaterialPointsSwarm", MaterialPointsSwarm, True, data );
 
 	context = (FiniteElementContext*)
-			Stg_ComponentFactory_ConstructByName( cf, "context", FiniteElementContext, True );
+	Stg_ComponentFactory_ConstructByName( cf, "context", FiniteElementContext, True, data ); 
 		
 	_DruckerPrager_Init( self, 
 			pressureField,

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/src/DruckerPrager.h
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/src/DruckerPrager.h	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/src/DruckerPrager.h	2006-10-14 18:34:47 UTC (rev 5031)
@@ -96,7 +96,7 @@
 	
 	/* 'Stg_Component' implementations */
 	void* _DruckerPrager_DefaultNew( Name name ) ;
-	void _DruckerPrager_Construct( void* rheology, Stg_ComponentFactory* cf );
+	void _DruckerPrager_Construct( void* rheology, Stg_ComponentFactory* cf, void* data );
 
 	void _DruckerPrager_Build( void* rheology, void* data );
 	void _DruckerPrager_Initialise( void* rheology, void* data ) ;

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/src/FaultingMoresiMuhlhaus2006.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/src/FaultingMoresiMuhlhaus2006.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/src/FaultingMoresiMuhlhaus2006.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -229,7 +229,7 @@
 		name );
 }
 
-void _FaultingMoresiMuhlhaus2006_Construct( void* rheology, Stg_ComponentFactory* cf ){
+void _FaultingMoresiMuhlhaus2006_Construct( void* rheology, Stg_ComponentFactory* cf, void* data ){
 	FaultingMoresiMuhlhaus2006*   self           = (FaultingMoresiMuhlhaus2006*)rheology;
 	FeVariable*                   pressureField;
 	MaterialPointsSwarm*          materialPointsSwarm;
@@ -238,7 +238,7 @@
 	Director*                     director;
 	
 	/* Construct Parent */
-	_YieldRheology_Construct( self, cf );
+	_YieldRheology_Construct( self, cf, data );
 
 	/* Make sure that there is strain weakening */
 	Journal_Firewall(
@@ -248,14 +248,14 @@
 		__func__, self->type, self->name );
 	
 	context                = Stg_ComponentFactory_ConstructByName( cf, 
-			"context", FiniteElementContext, True );
+			"context", FiniteElementContext, True, data );
 	materialPointsSwarm    = Stg_ComponentFactory_ConstructByKey( cf, self->name, 
-			"MaterialPointsSwarm", MaterialPointsSwarm, True );
+			"MaterialPointsSwarm", MaterialPointsSwarm, True, data );
 	pressureField          = Stg_ComponentFactory_ConstructByKey( cf, self->name,
-			"PressureField", FeVariable, True );
+			"PressureField", FeVariable, True, data );
 	velocityGradientsField = Stg_ComponentFactory_ConstructByKey( cf, self->name,
-			"VelocityGradientsField", FeVariable, True );
-	director               =  Stg_ComponentFactory_ConstructByKey( cf, self->name, "Director", Director, True );
+			"VelocityGradientsField", FeVariable, True, data );
+	director               =  Stg_ComponentFactory_ConstructByKey( cf, self->name, "Director", Director, True, data );
 	
 	_FaultingMoresiMuhlhaus2006_Init( 
 			self,

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/src/FaultingMoresiMuhlhaus2006.h
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/src/FaultingMoresiMuhlhaus2006.h	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/src/FaultingMoresiMuhlhaus2006.h	2006-10-14 18:34:47 UTC (rev 5031)
@@ -119,7 +119,7 @@
 	
 	/* 'Stg_Component' implementations */
 	void* _FaultingMoresiMuhlhaus2006_DefaultNew( Name name ) ;
-	void _FaultingMoresiMuhlhaus2006_Construct( void* rheology, Stg_ComponentFactory* cf );
+	void _FaultingMoresiMuhlhaus2006_Construct( void* rheology, Stg_ComponentFactory* cf, void* data );
 
 	void _FaultingMoresiMuhlhaus2006_Build( void* rheology, void* data );
 	void _FaultingMoresiMuhlhaus2006_Initialise( void* rheology, void* data ) ;

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/src/FrankKamenetskii.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/src/FrankKamenetskii.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/src/FrankKamenetskii.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -117,15 +117,22 @@
 		name );
 }
 
-void _FrankKamenetskii_Construct( void* rheology, Stg_ComponentFactory* cf ){
+void _FrankKamenetskii_Construct( void* rheology, Stg_ComponentFactory* cf, void* data ){
 	FrankKamenetskii*  self = (FrankKamenetskii*)rheology;
 	FeVariable* temperatureField;
 
 	/* Construct Parent */
-	_Rheology_Construct( self, cf );
+	_Rheology_Construct( self, cf, data );
 	
 	// TODO: KeyFallback soon to be deprecated/updated
-	temperatureField = Stg_ComponentFactory_ConstructByNameWithKeyFallback( cf, self->name, "TemperatureField", "TemperatureField", FeVariable, True );
+	temperatureField = Stg_ComponentFactory_ConstructByNameWithKeyFallback( 
+		cf, 
+		self->name, 
+		"TemperatureField", 
+		"TemperatureField", 
+		FeVariable, 
+		True,
+		data );
 	//temperatureField = Stg_ComponentFactory_ConstructByKey( cf, self->name, "TemperatureField", FeVariable, True );
 	
 	_FrankKamenetskii_Init( 

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/src/FrankKamenetskii.h
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/src/FrankKamenetskii.h	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/src/FrankKamenetskii.h	2006-10-14 18:34:47 UTC (rev 5031)
@@ -81,7 +81,7 @@
 	
 	/* 'Stg_Component' implementations */
 	void* _FrankKamenetskii_DefaultNew( Name name ) ;
-	void _FrankKamenetskii_Construct( void* rheology, Stg_ComponentFactory* cf );
+	void _FrankKamenetskii_Construct( void* rheology, Stg_ComponentFactory* cf, void* data );
 
 	void _FrankKamenetskii_ModifyConstitutiveMatrix( 
 		void*                                              rheology, 

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/src/MaterialViscosity.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/src/MaterialViscosity.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/src/MaterialViscosity.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -120,11 +120,11 @@
 		name );
 }
 
-void _MaterialViscosity_Construct( void* rheology, Stg_ComponentFactory* cf ){
+void _MaterialViscosity_Construct( void* rheology, Stg_ComponentFactory* cf, void* data ){
 	MaterialViscosity*  self = (MaterialViscosity*)rheology;
 
 	/* Construct Parent */
-	_Rheology_Construct( self, cf );
+	_Rheology_Construct( self, cf, data );
 	
 	_MaterialViscosity_Init( self, Stg_ComponentFactory_GetDouble( cf, self->name, "eta0", 1.0 ) );
 }

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/src/MaterialViscosity.h
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/src/MaterialViscosity.h	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/src/MaterialViscosity.h	2006-10-14 18:34:47 UTC (rev 5031)
@@ -77,7 +77,7 @@
 
 	/* 'Stg_Component' implementations */
 	void* _MaterialViscosity_DefaultNew( Name name ) ;
-	void _MaterialViscosity_Construct( void* rheology, Stg_ComponentFactory* cf );
+	void _MaterialViscosity_Construct( void* rheology, Stg_ComponentFactory* cf, void* data );
 
 	void _MaterialViscosity_ModifyConstitutiveMatrix( 
 		void*                                              rheology, 

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/src/MultiRheologyMaterial.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/src/MultiRheologyMaterial.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/src/MultiRheologyMaterial.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -151,7 +151,7 @@
 }
 
 
-void _MultiRheologyMaterial_Construct( void* material, Stg_ComponentFactory* cf ){
+void _MultiRheologyMaterial_Construct( void* material, Stg_ComponentFactory* cf, void* data ){
 	MultiRheologyMaterial*  self = (MultiRheologyMaterial*)material;
 	Rheology***             rheologyListList;
 	Rheology_Index*         rheologyCountList;
@@ -166,9 +166,12 @@
 	Stream*                 stream             = cf->infoStream;
 
 	/* Construct Parent */
-	_Material_Construct( self, cf );
-	_RheologyMaterial_Init( self, NULL, 0, 
-			 Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  "Compressible", Compressible,  False )  ) ;
+	_Material_Construct( self, cf, data );
+	_RheologyMaterial_Init( 
+		self, 
+		NULL, 
+		0, 
+		Stg_ComponentFactory_ConstructByKey( cf, self->name, "Compressible", Compressible, False, data ) );
 
 	multiRheologyList = Dictionary_Get( currDictionary, "MultiRheologies" );
 	assert( multiRheologyList );
@@ -198,7 +201,7 @@
 				rheologyList_I, self->type, self->name, rheologyName );
 
 			rheologyListList[ rheologyList_I ][ rheology_I ] = 
-				Stg_ComponentFactory_ConstructByName( cf, rheologyName, Rheology, True );
+	Stg_ComponentFactory_ConstructByName( cf, rheologyName, Rheology, True, data ); 
 		}
 		Stream_UnIndent( stream );
 	}

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/src/MultiRheologyMaterial.h
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/src/MultiRheologyMaterial.h	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/src/MultiRheologyMaterial.h	2006-10-14 18:34:47 UTC (rev 5031)
@@ -79,7 +79,7 @@
 	/* 'Stg_Component' implementations */
 	void _MultiRheologyMaterial_Delete( void* material );
 	void* _MultiRheologyMaterial_DefaultNew( Name name ) ;
-	void _MultiRheologyMaterial_Construct( void* material, Stg_ComponentFactory* cf );
+	void _MultiRheologyMaterial_Construct( void* material, Stg_ComponentFactory* cf, void* data );
 
 	void _MultiRheologyMaterial_RunRheologies( 	
 		void*                                              material,

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/src/NonNewtonian.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/src/NonNewtonian.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/src/NonNewtonian.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -119,16 +119,22 @@
 		name );
 }
 
-void _NonNewtonian_Construct( void* rheology, Stg_ComponentFactory* cf ){
+void _NonNewtonian_Construct( void* rheology, Stg_ComponentFactory* cf, void* data ){
 	NonNewtonian*  self = (NonNewtonian*)rheology;
 	FeVariable*    strainRateInvField;
 
 	/* Construct Parent */
-	_Rheology_Construct( self, cf );
+	_Rheology_Construct( self, cf, data );
 	
 	// TODO: 'Keyfallback' soon to be deprecated/updated
-	strainRateInvField = Stg_ComponentFactory_ConstructByNameWithKeyFallback( cf, self->name,
-                                "StrainRateInvariantField", "StrainRateInvariantField", FeVariable, True);
+	strainRateInvField = Stg_ComponentFactory_ConstructByNameWithKeyFallback( 
+		cf, 
+		self->name,
+                "StrainRateInvariantField", 
+		"StrainRateInvariantField", 
+		FeVariable, 
+		True,
+		data );
 	/*strainRateInvField = Stg_ComponentFactory_ConstructByKey( cf, self->name,
 				"StrainRateInvariantField", FeVariable, True);*/
 	_NonNewtonian_Init( 

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/src/NonNewtonian.h
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/src/NonNewtonian.h	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/src/NonNewtonian.h	2006-10-14 18:34:47 UTC (rev 5031)
@@ -79,7 +79,7 @@
 
 	/* 'Stg_Component' implementations */
 	void* _NonNewtonian_DefaultNew( Name name ) ;
-	void _NonNewtonian_Construct( void* rheology, Stg_ComponentFactory* cf );
+	void _NonNewtonian_Construct( void* rheology, Stg_ComponentFactory* cf, void* data );
 
 	void _NonNewtonian_ModifyConstitutiveMatrix( 
 		void*                                              rheology, 

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/src/Orthotropic.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/src/Orthotropic.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/src/Orthotropic.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -125,7 +125,7 @@
 		name );
 }
 
-void _Orthotropic_Construct( void* rheology, Stg_ComponentFactory* cf ){
+void _Orthotropic_Construct( void* rheology, Stg_ComponentFactory* cf, void* data ){
 
 	Orthotropic*     self = (Orthotropic*)rheology;
 	double C11;
@@ -140,7 +140,7 @@
 	double n[3], m[3], q[3];
 
 	/* Construct Parent */
-	_Rheology_Construct( self, cf );
+	_Rheology_Construct( self, cf, data );
 	
 	/* get parameters */
 	/*******************************************************************

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/src/Orthotropic.h
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/src/Orthotropic.h	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/src/Orthotropic.h	2006-10-14 18:34:47 UTC (rev 5031)
@@ -96,7 +96,7 @@
 
 	/* 'Stg_Component' implementations */
 	void* _Orthotropic_DefaultNew( Name name ) ;
-	void _Orthotropic_Construct( void* rheology, Stg_ComponentFactory* cf );
+	void _Orthotropic_Construct( void* rheology, Stg_ComponentFactory* cf, void* data );
 
 	void _Orthotropic_ModifyConstitutiveMatrix( 
 		void*                                              rheology, 

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/src/OrthotropicAligned.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/src/OrthotropicAligned.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/src/OrthotropicAligned.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -120,7 +120,7 @@
 		name );
 }
 
-void _OrthotropicAligned_Construct( void* rheology, Stg_ComponentFactory* cf ){
+void _OrthotropicAligned_Construct( void* rheology, Stg_ComponentFactory* cf, void* data ){
 	OrthotropicAligned*     self = (OrthotropicAligned*)rheology;
 //	Director*        director;
 	double viscosity1;
@@ -131,7 +131,7 @@
 	double viscosity6;
 
 	/* Construct Parent */
-	_Rheology_Construct( self, cf );
+	_Rheology_Construct( self, cf, data );
 	
 //	director =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  "Director", Director,  True  ) ;
 	viscosity1 = Stg_ComponentFactory_GetDouble( cf, self->name, "viscosity1",  True );

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/src/OrthotropicAligned.h
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/src/OrthotropicAligned.h	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/src/OrthotropicAligned.h	2006-10-14 18:34:47 UTC (rev 5031)
@@ -90,7 +90,7 @@
 
 	/* 'Stg_Component' implementations */
 	void* _OrthotropicAligned_DefaultNew( Name name ) ;
-	void _OrthotropicAligned_Construct( void* rheology, Stg_ComponentFactory* cf );
+	void _OrthotropicAligned_Construct( void* rheology, Stg_ComponentFactory* cf, void* data );
 
 	void _OrthotropicAligned_ModifyConstitutiveMatrix( 
 		void*                                              rheology, 

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/src/RheologyClass.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/src/RheologyClass.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/src/RheologyClass.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -119,7 +119,7 @@
 	return (void*) self;
 }
 
-void _Rheology_Construct( void* rheology, Stg_ComponentFactory* cf ){
+void _Rheology_Construct( void* rheology, Stg_ComponentFactory* cf, void* data ){
 	Rheology*           self                 = (Rheology*)rheology;
 
 	_Rheology_Init( self );

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/src/RheologyClass.h
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/src/RheologyClass.h	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/src/RheologyClass.h	2006-10-14 18:34:47 UTC (rev 5031)
@@ -106,7 +106,7 @@
 	
 	/* 'Stg_Component' implementations */
 	void* _Rheology_DefaultNew( Name name ) ;
-	void _Rheology_Construct( void* rheology, Stg_ComponentFactory* cf );
+	void _Rheology_Construct( void* rheology, Stg_ComponentFactory* cf, void* data );
 	void _Rheology_Build( void* rheology, void* data );
 	void _Rheology_Initialise( void* rheology, void* data );
 	void _Rheology_Execute( void* rheology, void* data );

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/src/RheologyMaterial.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/src/RheologyMaterial.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/src/RheologyMaterial.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -150,17 +150,31 @@
 		name );
 }
 
-void _RheologyMaterial_Construct( void* rheologyMaterial, Stg_ComponentFactory* cf ){
+void _RheologyMaterial_Construct( void* rheologyMaterial, Stg_ComponentFactory* cf, void* data ){
 	RheologyMaterial*           self                 = (RheologyMaterial*)rheologyMaterial;
 	Rheology**                  rheologyList;
 	Rheology_Index              rheologyCount;
 	Compressible*               compressible;
 
-	_Material_Construct( self, cf );
+	_Material_Construct( self, cf, data );
 
-	rheologyList = Stg_ComponentFactory_ConstructByList( cf, self->name, "Rheology", Stg_ComponentFactory_Unlimited, Rheology, True, &rheologyCount );
+	rheologyList = Stg_ComponentFactory_ConstructByList( 
+		cf, 
+		self->name, 
+		"Rheology", 
+		Stg_ComponentFactory_Unlimited, 
+		Rheology, 
+		True, 
+		&rheologyCount,
+		data );
 
-	compressible = Stg_ComponentFactory_ConstructByKey( cf, self->name, "Compressible", Compressible, False ) ;
+	compressible = Stg_ComponentFactory_ConstructByKey( 
+		cf, 
+		self->name, 
+		"Compressible", 
+		Compressible, 
+		False,
+		data ) ;
 
 	_RheologyMaterial_Init( self, rheologyList, rheologyCount, compressible );
 

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/src/RheologyMaterial.h
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/src/RheologyMaterial.h	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/src/RheologyMaterial.h	2006-10-14 18:34:47 UTC (rev 5031)
@@ -103,7 +103,7 @@
 	
 	/* 'Stg_Component' implementations */
 	void* _RheologyMaterial_DefaultNew( Name name ) ;
-	void _RheologyMaterial_Construct( void* rheologyMaterial, Stg_ComponentFactory* cf );
+	void _RheologyMaterial_Construct( void* rheologyMaterial, Stg_ComponentFactory* cf, void* data );
 	void _RheologyMaterial_Build( void* rheologyMaterial, void* data );
 	void _RheologyMaterial_Initialise( void* rheologyMaterial, void* data );
 	void _RheologyMaterial_Execute( void* rheologyMaterial, void* data );

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/src/StoreStress.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/src/StoreStress.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/src/StoreStress.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -161,18 +161,30 @@
 		name );
 }
 
-void _StoreStress_Construct( void* rheology, Stg_ComponentFactory* cf ){
+void _StoreStress_Construct( void* rheology, Stg_ComponentFactory* cf, void* data ){
 	StoreStress*              self              = (StoreStress*)rheology;
 	MaterialPointsSwarm*      materialPointsSwarm;
 	FeVariable*               strainRateField;
 
 	/* Construct Parent */
-	_Rheology_Construct( self, cf );
+	_Rheology_Construct( self, cf, data );
 
-	materialPointsSwarm = Stg_ComponentFactory_ConstructByKey( cf, self->name, "MaterialPointsSwarm", MaterialPointsSwarm, True );
+	materialPointsSwarm = Stg_ComponentFactory_ConstructByKey( 
+		cf, 
+		self->name, 
+		"MaterialPointsSwarm", 
+		MaterialPointsSwarm, 
+		True,
+		data );
 	// TODO : 'KeyFallback' soon to be deprecated/updated
-	strainRateField = Stg_ComponentFactory_ConstructByNameWithKeyFallback( cf, self->name,
-                       "StrainRateField", "StrainRateField", FeVariable, True );
+	strainRateField = Stg_ComponentFactory_ConstructByNameWithKeyFallback( 
+		cf, 
+		self->name,
+                "StrainRateField", 
+		"StrainRateField", 
+		FeVariable, 
+		True,
+		data );
 	/*
 	strainRateField = Stg_ComponentFactory_ConstructByKey( cf, self->name, 
 			"StrainRateField", FeVariable, True );

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/src/StoreStress.h
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/src/StoreStress.h	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/src/StoreStress.h	2006-10-14 18:34:47 UTC (rev 5031)
@@ -84,7 +84,7 @@
 
 	/* 'Stg_Component' implementations */
 	void* _StoreStress_DefaultNew( Name name ) ;
-	void _StoreStress_Construct( void* rheology, Stg_ComponentFactory* cf );
+	void _StoreStress_Construct( void* rheology, Stg_ComponentFactory* cf, void* data );
 	void _StoreStress_Initialise( void* rheology, void* data );
 
 	void _StoreStress_ModifyConstitutiveMatrix( 

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/src/StoreViscosity.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/src/StoreViscosity.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/src/StoreViscosity.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -135,14 +135,20 @@
 		name );
 }
 
-void _StoreVisc_Construct( void* rheology, Stg_ComponentFactory* cf ){
+void _StoreVisc_Construct( void* rheology, Stg_ComponentFactory* cf, void* data ){
 	StoreVisc*              self              = (StoreVisc*)rheology;
 	MaterialPointsSwarm* materialPointsSwarm;
 
 	/* Construct Parent */
-	_Rheology_Construct( self, cf );
+	_Rheology_Construct( self, cf, data );
 
-	materialPointsSwarm = Stg_ComponentFactory_ConstructByKey( cf, self->name, "MaterialPointsSwarm", MaterialPointsSwarm, True );
+	materialPointsSwarm = Stg_ComponentFactory_ConstructByKey( 
+		cf, 
+		self->name, 
+		"MaterialPointsSwarm", 
+		MaterialPointsSwarm, 
+		True,
+		data );
 
 	_StoreVisc_Init( self, materialPointsSwarm );
 }

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/src/StoreViscosity.h
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/src/StoreViscosity.h	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/src/StoreViscosity.h	2006-10-14 18:34:47 UTC (rev 5031)
@@ -82,7 +82,7 @@
 
 	/* 'Stg_Component' implementations */
 	void* _StoreVisc_DefaultNew( Name name ) ;
-	void _StoreVisc_Construct( void* rheology, Stg_ComponentFactory* cf );
+	void _StoreVisc_Construct( void* rheology, Stg_ComponentFactory* cf, void* data );
 	void _StoreVisc_Initialise( void* rheology, void* data );
 
 	void _StoreVisc_ModifyConstitutiveMatrix( 

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/src/StrainWeakening.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/src/StrainWeakening.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/src/StrainWeakening.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -201,7 +201,7 @@
 		name );
 }
 
-void _StrainWeakening_Construct( void* strainWeakening, Stg_ComponentFactory* cf ){
+void _StrainWeakening_Construct( void* strainWeakening, Stg_ComponentFactory* cf, void* data ){
 	StrainWeakening*        self           = (StrainWeakening*) strainWeakening;
 	MaterialPointsSwarm*    materialPointsSwarm;
 	double                  healingRate;
@@ -213,10 +213,15 @@
 	Stg_Shape*              initialStrainShape;
 
 	/* Construct Parent */
-	_TimeIntegratee_Construct( self, cf );
+	_TimeIntegratee_Construct( self, cf, data );
 	
 	materialPointsSwarm     = Stg_ComponentFactory_ConstructByKey(
-			cf, self->name, "MaterialPointsSwarm", MaterialPointsSwarm, True );
+		cf, 
+		self->name, 
+		"MaterialPointsSwarm", 
+		MaterialPointsSwarm, 
+		True,
+		data );
 
 	healingRate             = Stg_ComponentFactory_GetDouble( cf, self->name, "healingRate",              0.0 );
 	softeningStrain         = Stg_ComponentFactory_GetDouble( cf, self->name, "softeningStrain",          HUGE_VAL );
@@ -224,7 +229,7 @@
 	initialDamageWavenumber = Stg_ComponentFactory_GetDouble( cf, self->name, "initialDamageWavenumber", -1.0 );
 	initialDamageFactor     = Stg_ComponentFactory_GetDouble( cf, self->name, "initialDamageFactor",      1.0 );
 	randomSeed              = (long int) Stg_ComponentFactory_GetInt( cf, self->name, "randomSeed",       0 );
-	initialStrainShape      = Stg_ComponentFactory_ConstructByKey( cf, self->name, "initialStrainShape", Stg_Shape, False );
+	initialStrainShape      = Stg_ComponentFactory_ConstructByKey( cf, self->name, "initialStrainShape", Stg_Shape, False, data );
 
 	_StrainWeakening_Init(
 			self, 

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/src/StrainWeakening.h
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/src/StrainWeakening.h	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/src/StrainWeakening.h	2006-10-14 18:34:47 UTC (rev 5031)
@@ -117,7 +117,7 @@
 	
 	/* 'Stg_Component' implementations */
 	void* _StrainWeakening_DefaultNew( Name name ) ;
-	void _StrainWeakening_Construct( void* rheology, Stg_ComponentFactory* cf );
+	void _StrainWeakening_Construct( void* rheology, Stg_ComponentFactory* cf, void* data );
 	void _StrainWeakening_Build( void* strainWeakening, void* data ) ;
 	void _StrainWeakening_Initialise( void* strainWeakening, void* data ) ;
 	

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/src/VonMises.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/src/VonMises.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/src/VonMises.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -144,16 +144,22 @@
 		name );
 }
 
-void _VonMises_Construct( void* rheology, Stg_ComponentFactory* cf ){
+void _VonMises_Construct( void* rheology, Stg_ComponentFactory* cf, void* data ){
 	VonMises*          self           = (VonMises*)rheology;
 	FeVariable*        strainRateField;
 
 	/* Construct Parent */
-	_YieldRheology_Construct( self, cf );
+	_YieldRheology_Construct( self, cf, data );
 	
 	// TODO: soon to be deprecated/updated
 	strainRateField = Stg_ComponentFactory_ConstructByNameWithKeyFallback(
-                       cf, self->name, "StrainRateField", "StrainRateField", FeVariable, True );
+        	cf, 
+		self->name, 
+		"StrainRateField", 
+		"StrainRateField", 
+		FeVariable, 
+		True,
+		data );
 	//strainRateField = Stg_ComponentFactory_ConstructByKey( 
 	//		cf, self->name, "StrainRateField", FeVariable, True );
 	

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/src/VonMises.h
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/src/VonMises.h	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/src/VonMises.h	2006-10-14 18:34:47 UTC (rev 5031)
@@ -84,7 +84,7 @@
 	
 	/* 'Stg_Component' implementations */
 	void* _VonMises_DefaultNew( Name name ) ;
-	void _VonMises_Construct( void* rheology, Stg_ComponentFactory* cf );
+	void _VonMises_Construct( void* rheology, Stg_ComponentFactory* cf, void* data );
 
 	/* 'YieldRheology' implementations */
 	double _VonMises_GetYieldCriterion( 

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/src/YieldRheology.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/src/YieldRheology.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/src/YieldRheology.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -162,16 +162,28 @@
 	return (void*) self;
 }
 
-void _YieldRheology_Construct( void* rheology, Stg_ComponentFactory* cf ){
+void _YieldRheology_Construct( void* rheology, Stg_ComponentFactory* cf, void* data ){
 	YieldRheology*           self                 = (YieldRheology*)rheology;
 	StrainWeakening*         strainWeakening;
 	MaterialPointsSwarm*  materialPoints;
 	
-	_Rheology_Construct( self, cf );
+	_Rheology_Construct( self, cf, data );
 
-	strainWeakening =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  "StrainWeakening", StrainWeakening,  False  ) ;
+	strainWeakening =  Stg_ComponentFactory_ConstructByKey( 
+		cf, 
+		self->name,  
+		"StrainWeakening", 
+		StrainWeakening,  
+		False,
+		data  ) ;
 
-	materialPoints =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  "MaterialPointsSwarm", MaterialPointsSwarm,  False  ) ;
+	materialPoints =  Stg_ComponentFactory_ConstructByKey(  
+		cf,  
+		self->name,  
+		"MaterialPointsSwarm", 
+		MaterialPointsSwarm,  
+		False,
+		data  ) ;
 
 	_YieldRheology_Init( self, strainWeakening, materialPoints );
 }

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/src/YieldRheology.h
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/src/YieldRheology.h	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/src/YieldRheology.h	2006-10-14 18:34:47 UTC (rev 5031)
@@ -120,7 +120,7 @@
 	
 	/* 'Stg_Component' implementations */
 	void* _YieldRheology_DefaultNew( Name name ) ;
-	void _YieldRheology_Construct( void* rheology, Stg_ComponentFactory* cf );
+	void _YieldRheology_Construct( void* rheology, Stg_ComponentFactory* cf, void* data );
 	void _YieldRheology_Build( void* rheology, void* data );
 	void _YieldRheology_Initialise( void* rheology, void* data );
 	void _YieldRheology_Execute( void* rheology, void* data );

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/tests/LateralViscosityAnalytic/LateralViscosityAnalytic.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/tests/LateralViscosityAnalytic/LateralViscosityAnalytic.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/tests/LateralViscosityAnalytic/LateralViscosityAnalytic.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -398,23 +398,23 @@
 
 }
 
-void _LateralViscosityAnalytic_Construct( void* analyticSolution, Stg_ComponentFactory* cf ) {
+void _LateralViscosityAnalytic_Construct( void* analyticSolution, Stg_ComponentFactory* cf, void* data ) {
 	LateralViscosityAnalytic*         self           = (LateralViscosityAnalytic*)analyticSolution;
 	FeVariable*             velocityField;
 	AbstractContext*        context;
 	ConditionFunction*      condFunc;
 	
 	/* Construct Parent */
-	_AnalyticSolution_Construct( self, cf );
+	_AnalyticSolution_Construct( self, cf, data );
 
-	context = Stg_ComponentFactory_ConstructByName( cf, "context", AbstractContext, True );
+	context = Stg_ComponentFactory_ConstructByName( cf, "context", AbstractContext, True, data ); 
 	
 	/* Add temperature initial condition */
 	condFunc = ConditionFunction_New( LateralViscosityAnalytic_TemperatureIC, "LateralViscosityAnalytic_TemperatureIC" );
 	ConditionFunction_Register_Add( context->condFunc_Register, condFunc );
 	
 	/* Create Analytic Fields */
-	velocityField = Stg_ComponentFactory_ConstructByName( cf, "VelocityField", FeVariable, True );
+	velocityField = Stg_ComponentFactory_ConstructByName( cf, "VelocityField", FeVariable, True, data ); 
 	AnalyticSolution_CreateAnalyticField( self, velocityField, _LateralViscosityAnalytic_VelocityFunction );
 
 	self->beta = Stg_ComponentFactory_GetRootDictDouble( cf, "beta", 0.0 );

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/tests/NonNewtonianShearSolution/NonNewtonianShearSolution.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/tests/NonNewtonianShearSolution/NonNewtonianShearSolution.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/tests/NonNewtonianShearSolution/NonNewtonianShearSolution.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -89,7 +89,7 @@
 	*result = self->velocityTopOfBox;
 }
 
-void _NonNewtonianShearSolution_Construct( void* analyticSolution, Stg_ComponentFactory* cf ) {
+void _NonNewtonianShearSolution_Construct( void* analyticSolution, Stg_ComponentFactory* cf, void* data ) {
 	NonNewtonianShearSolution* self = (NonNewtonianShearSolution*)analyticSolution;
 	FiniteElementContext*          context;
 	FeVariable*                    velocityField;
@@ -98,33 +98,33 @@
 	FeVariable*                    viscosityField;
 
 	/* Construct parent */
-	_AnalyticSolution_Construct( self, cf );
+	_AnalyticSolution_Construct( self, cf, data );
 	context = Stg_CheckType( self->context, FiniteElementContext );
 	
 	ConditionFunction_Register_Add( context->condFunc_Register, 
 			ConditionFunction_New( NonNewtonianShearSolution_VelocityBC, "ShearTrigger") );	
 
 	/* Create Analytic Velocity Field */
-	velocityField = Stg_ComponentFactory_ConstructByName( cf, "VelocityField", FeVariable, True );
+	velocityField = Stg_ComponentFactory_ConstructByName( cf, "VelocityField", FeVariable, True, data );
 	AnalyticSolution_CreateAnalyticVectorField( self, velocityField, NonNewtonianShearSolution_VelocityFunction );
 
 	/* Create Analytic Strain Rate Field */
-	strainRateField = Stg_ComponentFactory_ConstructByName( cf, "StrainRateField", FeVariable, True );
+	strainRateField = Stg_ComponentFactory_ConstructByName( cf, "StrainRateField", FeVariable, True, data );
 	AnalyticSolution_CreateAnalyticSymmetricTensorField( 
 			self, strainRateField, NonNewtonianShearSolution_StrainRateFunction );
 
 	/* Create Analytic Stress Field */
-	stressField = Stg_ComponentFactory_ConstructByName( cf, "StressField", FeVariable, True );
+	stressField = Stg_ComponentFactory_ConstructByName( cf, "StressField", FeVariable, True, data );
 	AnalyticSolution_CreateAnalyticSymmetricTensorField( self, stressField, NonNewtonianShearSolution_StressFunction );
 
 	/* Create Analytic Viscosity Field */
-	viscosityField = Stg_ComponentFactory_ConstructByName( cf, "ViscosityField", FeVariable, True );
+	viscosityField = Stg_ComponentFactory_ConstructByName( cf, "ViscosityField", FeVariable, True, data );
 	AnalyticSolution_CreateAnalyticField( self, viscosityField, NonNewtonianShearSolution_ViscosityFunction );
 
-	self->materialViscosity = Stg_ComponentFactory_ConstructByName( cf, "layerViscosity", MaterialViscosity, True );
+	self->materialViscosity = Stg_ComponentFactory_ConstructByName( cf, "layerViscosity", MaterialViscosity, True, data );
 	self->nonNewtonianRheology = 
-		Stg_ComponentFactory_ConstructByName( cf, "nonNewtonianRheology", NonNewtonian, True );
-	self->geometry = Stg_ComponentFactory_ConstructByName( cf, "geometry", BlockGeometry, True );
+		Stg_ComponentFactory_ConstructByName( cf, "nonNewtonianRheology", NonNewtonian, True, data );
+	self->geometry = Stg_ComponentFactory_ConstructByName( cf, "geometry", BlockGeometry, True, data );
 
 	/* Set Velocity Stuff */
 	EP_AppendClassHook( Context_GetEntryPoint( context, AbstractContext_EP_UpdateClass ),

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/tests/testConstitutiveMatrix/testConstitutiveMatrix.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/tests/testConstitutiveMatrix/testConstitutiveMatrix.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/tests/testConstitutiveMatrix/testConstitutiveMatrix.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -109,12 +109,12 @@
 	Journal_PrintSymmetricTensor( stream, stress, constitutiveMatrix->dim );
 }
 
-void _Underworld_testConstitutiveMatrix_Construct( void* component, Stg_ComponentFactory* cf ) {
+void _Underworld_testConstitutiveMatrix_Construct( void* component, Stg_ComponentFactory* cf, void* data ) {
 	FiniteElementContext* context;
 
-	context = (FiniteElementContext*)Stg_ComponentFactory_ConstructByName( cf, "context", FiniteElementContext, True ) ;
+	context = (FiniteElementContext*)Stg_ComponentFactory_ConstructByName( cf, "context", FiniteElementContext, True, data ) ;
 
-	ContextEP_ReplaceAll( context, AbstractContext_EP_Run, testConstitutiveMatrix );
+	ContextEP_ReplaceAll( context, AbstractContext_EP_Execute, testConstitutiveMatrix );
 }
 
 void* _Underworld_testConstitutiveMatrix_DefaultNew( Name name ) {

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/tests/testDirector/testDirector.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/tests/testDirector/testDirector.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/tests/testDirector/testDirector.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -14,8 +14,15 @@
 }
 
 void Underworld_testDirector_Function( FiniteElementContext* context ) {
-	AlignmentSwarmVariable* alignment              = (AlignmentSwarmVariable*) LiveComponentRegister_Get( context->CF->LCRegister, "alignment" );
-	FeVariable*             velocityField          = Stg_ComponentFactory_ConstructByName( context->CF, "VelocityField", FeVariable, True );
+	AlignmentSwarmVariable* alignment              = (AlignmentSwarmVariable*)LiveComponentRegister_Get( 
+								context->CF->LCRegister, 
+								"alignment" );
+	FeVariable*             velocityField          = Stg_ComponentFactory_ConstructByName( 
+								context->CF, 
+								"VelocityField", 
+								FeVariable, 
+								True,
+								0 /* dummy */ );
 	Director*               director;
 	Particle_Index          lParticle_I;
 	GlobalParticle*         particle;
@@ -59,11 +66,11 @@
 	__Codelet
 } Underworld_testDirector;
 
-void _Underworld_testDirector_Construct( void* component, Stg_ComponentFactory* cf ) {
+void _Underworld_testDirector_Construct( void* component, Stg_ComponentFactory* cf, void* data ) {
 	FiniteElementContext*   context;
 	Stream*                 stream                 = Journal_Register( Info_Type, CURR_MODULE_NAME );
 
-	context = Stg_ComponentFactory_ConstructByName( cf, "context", FiniteElementContext, True );
+	context = Stg_ComponentFactory_ConstructByName( cf, "context", FiniteElementContext, True, data ); 
 
 	Stream_RedirectFile_WithPrependedPath( stream, context->outputPath, "testDirector.dat" );
 	

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/tests/testDirectorPerMaterial/testDirectorPerMaterial.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/tests/testDirectorPerMaterial/testDirectorPerMaterial.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/tests/testDirectorPerMaterial/testDirectorPerMaterial.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -107,11 +107,11 @@
 	__Codelet
 } Underworld_testDirectorPerMaterial;
 
-void _Underworld_testDirectorPerMaterial_Construct( void* component, Stg_ComponentFactory* cf ) {
+void _Underworld_testDirectorPerMaterial_Construct( void* component, Stg_ComponentFactory* cf, void* data ) {
 	FiniteElementContext*   context;
 	Stream*                 stream                 = Journal_Register( Info_Type, CURR_MODULE_NAME );
 
-	context = Stg_ComponentFactory_ConstructByName( cf, "context", FiniteElementContext, True );
+	context = Stg_ComponentFactory_ConstructByName( cf, "context", FiniteElementContext, True, data );
 
 	Stream_RedirectFile_WithPrependedPath( stream, context->outputPath, "testDirectorPerMaterial.dat" );
 	

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/tests/testDirectorRandomness/testDirectorRandomness.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/tests/testDirectorRandomness/testDirectorRandomness.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/tests/testDirectorRandomness/testDirectorRandomness.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -96,11 +96,11 @@
 	__Codelet
 } Underworld_testDirectorRandomness;
 
-void _Underworld_testDirectorRandomness_Construct( void* component, Stg_ComponentFactory* cf ) {
+void _Underworld_testDirectorRandomness_Construct( void* component, Stg_ComponentFactory* cf, void* data ) {
 	FiniteElementContext*   context;
 	Stream*                 stream                 = Journal_Register( Info_Type, CURR_MODULE_NAME );
 
-	context = Stg_ComponentFactory_ConstructByName( cf, "context", FiniteElementContext, True );
+	context = Stg_ComponentFactory_ConstructByName( cf, "context", FiniteElementContext, True, data ); 
 
 	Stream_RedirectFile_WithPrependedPath( stream, context->outputPath, "testDirectorRandomness.dat" );
 	

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/tests/testStiffnessMatrixAssembly/testStiffnessMatrixAssembly.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/tests/testStiffnessMatrixAssembly/testStiffnessMatrixAssembly.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/tests/testStiffnessMatrixAssembly/testStiffnessMatrixAssembly.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -72,9 +72,13 @@
 	StiffnessMatrix_Assemble( stiffnessMatrix, False, sle );
 }
 
-void _Underworld_testStiffnessMatrixAssembly_Construct( void* component, Stg_ComponentFactory* cf ) {
-	FiniteElementContext* context;
-	context = (FiniteElementContext*) Stg_ComponentFactory_ConstructByName( cf, "context", FiniteElementContext, True );
+void _Underworld_testStiffnessMatrixAssembly_Construct( void* component, Stg_ComponentFactory* cf, void* data ) {
+	FiniteElementContext* context = (FiniteElementContext*)Stg_ComponentFactory_ConstructByName( 
+		cf, 
+		"context", 
+		FiniteElementContext, 
+		True,
+		data );
 	ContextEP_ReplaceAll( context, AbstractContext_EP_Solve, Underworld_testStiffnessMatrixAssemblyFunction );
 }
 

Modified: long/3D/Gale/trunk/src/Underworld/Rheology/tests/testYieldCriterion/testYieldCriterion.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/tests/testYieldCriterion/testYieldCriterion.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/tests/testYieldCriterion/testYieldCriterion.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -96,11 +96,11 @@
 	}
 }
 
-void _Underworld_testYieldCriterion_Construct( void* component, Stg_ComponentFactory* cf ) {
+void _Underworld_testYieldCriterion_Construct( void* component, Stg_ComponentFactory* cf, void* data ) {
 	YieldRheology*          yieldRheology;
 	Underworld_testYieldCriterion* self;
 
-	context = Stg_ComponentFactory_ConstructByName( cf, "context", FiniteElementContext, True );
+	context = Stg_ComponentFactory_ConstructByName( cf, "context", FiniteElementContext, True, data ); 
 
 	/* Get pointer to plugin struct */
 	self = (Underworld_testYieldCriterion*) LiveComponentRegister_Get(
@@ -108,7 +108,7 @@
 					Underworld_testYieldCriterion_Type );
 
 	/* get pointer to the mesh */
-	self->mesh = Stg_ComponentFactory_ConstructByName( cf, "mesh-linear", FiniteElement_Mesh, True );
+	self->mesh = Stg_ComponentFactory_ConstructByName( cf, "mesh-linear", FiniteElement_Mesh, True, data ); 
 	
 	/* Get a pointer the yield rheology that we are trying to test */
 	yieldRheology = (YieldRheology*) LiveComponentRegister_Get( context->CF->LCRegister, "yieldRheology" );

Modified: long/3D/Gale/trunk/src/Underworld/Utils/src/Context.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Utils/src/Context.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Utils/src/Context.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -64,7 +64,7 @@
 		_UnderworldContext_Print,
 		NULL, 
 		_UnderworldContext_DefaultNew,
-		_UnderworldContext_ComponentConstruct,
+		_AbstractContext_Construct,
 		_AbstractContext_Build,
 		_AbstractContext_Initialise,
 		_AbstractContext_Execute,
@@ -92,7 +92,7 @@
 		_UnderworldContext_Print,
 		NULL, 
 		_UnderworldContext_DefaultNew,
-		_UnderworldContext_ComponentConstruct,
+		_AbstractContext_Construct,
 		_AbstractContext_Build,
 		_AbstractContext_Initialise,
 		_AbstractContext_Execute,
@@ -164,6 +164,10 @@
 
 void _UnderworldContext_Init( UnderworldContext* self ) {
 	self->isConstructed = True;
+	EntryPoint_Append_AlwaysLast( Context_GetEntryPoint( self, AbstractContext_EP_Construct ),
+			   "Underworld App Assign Pointers",
+			   UnderworldContext_AssignPointers,
+			   "Underworld_App_Construct" );
 }
 
 
@@ -219,7 +223,7 @@
 
 /* EntryPoint Hooks ----------------------------------------------------------------------------------------------------*/
 
-void UnderworldContext_AssignPointers( void* context ) {
+void UnderworldContext_AssignPointers( void* context, void* ptrToContext ) {
 	UnderworldContext*      self         = (UnderworldContext*) context;
 	FieldVariable_Register* fV_Register  = self->fieldVariable_Register;
 	
@@ -258,11 +262,3 @@
 	Stream_UnIndentBranch( StG_FEM_Debug );
 }
 
-void _UnderworldContext_ComponentConstruct( void* context, Stg_ComponentFactory *cf ){
-	UnderworldContext*      self         = (UnderworldContext*) context;
-	
-	_PICelleratorContext_ComponentConstruct( self, cf );
-	_UnderworldContext_Init( self );
-	
-}
-

Modified: long/3D/Gale/trunk/src/Underworld/Utils/src/Context.h
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Utils/src/Context.h	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Utils/src/Context.h	2006-10-14 18:34:47 UTC (rev 5031)
@@ -127,8 +127,6 @@
 	void _UnderworldContext_SetDt( void* context, double dt );
 
 	/* Public functions -----------------------------------------------------------------------------------------------*/
-	void UnderworldContext_AssignPointers( void* context );
+	void UnderworldContext_AssignPointers( void* context, void* ptrToContext );
 	
-	void _UnderworldContext_ComponentConstruct( void* context, Stg_ComponentFactory *cf );
-
 #endif

Modified: long/3D/Gale/trunk/src/Underworld/Utils/src/PressureTemperatureOutput.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Utils/src/PressureTemperatureOutput.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Utils/src/PressureTemperatureOutput.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -176,15 +176,15 @@
 }
 
 
-void _PressureTemperatureOutput_Construct( void* swarmOutput, Stg_ComponentFactory* cf ) {
+void _PressureTemperatureOutput_Construct( void* swarmOutput, Stg_ComponentFactory* cf, void* data ) {
 	PressureTemperatureOutput*  self          = (PressureTemperatureOutput*) swarmOutput;
 	FeVariable*                 pressureField;
 	FeVariable*                 temperatureField;
 
-	_SwarmOutput_Construct( self, cf );
+	_SwarmOutput_Construct( self, cf, data );
 
-	pressureField      =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  "PressureField", FeVariable,      True  ) ;
-	temperatureField   =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  "TemperatureField", FeVariable,   True  ) ;
+	pressureField    = Stg_ComponentFactory_ConstructByKey( cf, self->name, "PressureField",    FeVariable, True, data ) ;
+	temperatureField = Stg_ComponentFactory_ConstructByKey( cf, self->name, "TemperatureField", FeVariable, True, data ) ;
 
 	_PressureTemperatureOutput_Init( self, pressureField, temperatureField );
 

Modified: long/3D/Gale/trunk/src/Underworld/Utils/src/PressureTemperatureOutput.h
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Utils/src/PressureTemperatureOutput.h	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Utils/src/PressureTemperatureOutput.h	2006-10-14 18:34:47 UTC (rev 5031)
@@ -88,7 +88,7 @@
 	void* _PressureTemperatureOutput_Copy( void* swarmOutput, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 	
 	void* _PressureTemperatureOutput_DefaultNew( Name name ) ;
-	void _PressureTemperatureOutput_Construct( void* shape, Stg_ComponentFactory* cf ) ;
+void _PressureTemperatureOutput_Construct( void* shape, Stg_ComponentFactory* cf, void* data ) ;
 	void _PressureTemperatureOutput_Build( void* swarmOutput, void* data ) ;
 	void _PressureTemperatureOutput_Initialise( void* swarmOutput, void* data ) ;
 	void _PressureTemperatureOutput_Execute( void* swarmOutput, void* data );

Modified: long/3D/Gale/trunk/src/Underworld/Utils/src/RadiogenicHeatingTerm.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Utils/src/RadiogenicHeatingTerm.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Utils/src/RadiogenicHeatingTerm.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -131,15 +131,15 @@
 		name );
 }
 
-void _RadiogenicHeatingTerm_Construct( void* forceTerm, Stg_ComponentFactory* cf ) {
+void _RadiogenicHeatingTerm_Construct( void* forceTerm, Stg_ComponentFactory* cf, void* data ) {
 	RadiogenicHeatingTerm*      self             = (RadiogenicHeatingTerm*)forceTerm;
 	AbstractContext*            context;
 	Materials_Register*         materials_Register;
 
 	/* Construct Parent */
-	_ForceTerm_Construct( self, cf );
+	_ForceTerm_Construct( self, cf, data );
 
-	context = Stg_ComponentFactory_ConstructByName( cf, "context", AbstractContext, True ) ;
+	context = Stg_ComponentFactory_ConstructByName( cf, "context", AbstractContext, True, data ) ;
 
 	materials_Register = Stg_ObjectList_Get( cf->registerRegister, "Materials_Register" );
 	assert( materials_Register );

Modified: long/3D/Gale/trunk/src/Underworld/Utils/src/RadiogenicHeatingTerm.h
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Utils/src/RadiogenicHeatingTerm.h	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Utils/src/RadiogenicHeatingTerm.h	2006-10-14 18:34:47 UTC (rev 5031)
@@ -63,7 +63,7 @@
 	void _RadiogenicHeatingTerm_Print( void* forceTerm, Stream* stream );
 
 	void* _RadiogenicHeatingTerm_DefaultNew( Name name ) ;
-	void _RadiogenicHeatingTerm_Construct( void* forceTerm, Stg_ComponentFactory* cf ) ;
+void _RadiogenicHeatingTerm_Construct( void* forceTerm, Stg_ComponentFactory* cf, void* data ) ;
 	void _RadiogenicHeatingTerm_Build( void* forceTerm, void* data ) ;
 	void _RadiogenicHeatingTerm_Initialise( void* forceTerm, void* data ) ;
 	void _RadiogenicHeatingTerm_Execute( void* forceTerm, void* data ) ;

Modified: long/3D/Gale/trunk/src/Underworld/Utils/src/StressField.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Utils/src/StressField.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Utils/src/StressField.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -211,7 +211,7 @@
 		name );
 }
 
-void _StressField_Construct( void* stressField, Stg_ComponentFactory* cf ){
+void _StressField_Construct( void* stressField, Stg_ComponentFactory* cf, void* data ){
 	StressField*          self              = (StressField*) stressField;
 	FeVariable*           strainRateField;
 	ConstitutiveMatrix*   constitutiveMatrix;
@@ -219,19 +219,19 @@
 	Name                  stressVariableName;
 	Variable*             stressVariable;
 
-	strainRateField =  Stg_ComponentFactory_ConstructByKey( cf,  self->name, "StrainRateField", FeVariable, True );
-	constitutiveMatrix = Stg_ComponentFactory_ConstructByKey( cf, self->name, "ConstitutiveMatrix", ConstitutiveMatrix, True );
+	/* Construct Parent */
+	_ParticleFeVariable_Construct( self, cf, data );
+
+	/* _FieldVariable_Construct( self, cf, data ); */
+
+	strainRateField =  Stg_ComponentFactory_ConstructByKey( cf,  self->name, "StrainRateField", FeVariable, True, data );
+	constitutiveMatrix = Stg_ComponentFactory_ConstructByKey( cf, self->name, "ConstitutiveMatrix", ConstitutiveMatrix, True, data );
 	variable_Register      = (Variable_Register*) Stg_ObjectList_Get( cf->registerRegister, "Variable_Register" );
 	assert( variable_Register );
 
 	stressVariableName = Stg_ComponentFactory_GetString( cf, self->name, "StressVariable", "Stress" );
 	stressVariable = Variable_Register_GetByName( variable_Register, stressVariableName );
 
-	/* Construct Parent */
-	_ParticleFeVariable_Construct( self, cf );
-
-	_FieldVariable_Construct( self, cf );
-
 	_StressField_Init( self, strainRateField, constitutiveMatrix, stressVariable, variable_Register );
 }
 

Modified: long/3D/Gale/trunk/src/Underworld/Utils/src/StressField.h
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Utils/src/StressField.h	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Utils/src/StressField.h	2006-10-14 18:34:47 UTC (rev 5031)
@@ -58,7 +58,7 @@
 	void _StressField_Print( void* variable, Stream* stream );
 	void* _StressField_Copy( void* feVariable, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 
-	void _StressField_Construct( void* variable, Stg_ComponentFactory* cf ) ;
+	void _StressField_Construct( void* variable, Stg_ComponentFactory* cf, void* data ) ;
 	void _StressField_Build( void* variable, void* data ) ;
 	void _StressField_Initialise( void* variable, void* data ) ;
 	void _StressField_Execute( void* variable, void* data ) ;

Modified: long/3D/Gale/trunk/src/Underworld/Utils/src/ViscosityField.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Utils/src/ViscosityField.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Utils/src/ViscosityField.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -166,20 +166,20 @@
 		name );
 }
 
-void _ViscosityField_Construct( void* viscosityField, Stg_ComponentFactory* cf ){
+void _ViscosityField_Construct( void* viscosityField, Stg_ComponentFactory* cf, void* data ){
 	ViscosityField*          self              = (ViscosityField*) viscosityField;
 	ConstitutiveMatrix*   constitutiveMatrix;
 	Variable_Register*    variable_Register;
 
-	constitutiveMatrix = Stg_ComponentFactory_ConstructByKey( cf, self->name, "ConstitutiveMatrix", ConstitutiveMatrix, True );
+	/* Construct Parent */
+	_ParticleFeVariable_Construct( self, cf, data );
+
+	/*_FieldVariable_Construct( self, cf, data );*/
+
+	constitutiveMatrix = Stg_ComponentFactory_ConstructByKey( cf, self->name, "ConstitutiveMatrix", ConstitutiveMatrix, True, data );
 	variable_Register      = (Variable_Register*) Stg_ObjectList_Get( cf->registerRegister, "Variable_Register" );
 	assert( variable_Register );
 
-	/* Construct Parent */
-	_ParticleFeVariable_Construct( self, cf );
-
-	_FieldVariable_Construct( self, cf );
-
 	_ViscosityField_Init( self, constitutiveMatrix, variable_Register );
 }
 

Modified: long/3D/Gale/trunk/src/Underworld/Utils/src/ViscosityField.h
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Utils/src/ViscosityField.h	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/Utils/src/ViscosityField.h	2006-10-14 18:34:47 UTC (rev 5031)
@@ -55,7 +55,7 @@
 	void _ViscosityField_Print( void* variable, Stream* stream );
 	void* _ViscosityField_Copy( void* feVariable, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 
-	void _ViscosityField_Construct( void* variable, Stg_ComponentFactory* cf ) ;
+	void _ViscosityField_Construct( void* variable, Stg_ComponentFactory* cf, void* data ) ;
 	void _ViscosityField_Build( void* variable, void* data ) ;
 	void _ViscosityField_Initialise( void* variable, void* data ) ;
 	void _ViscosityField_Execute( void* variable, void* data ) ;

Modified: long/3D/Gale/trunk/src/Underworld/libUnderworld/src/Init.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/libUnderworld/src/Init.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/libUnderworld/src/Init.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -70,7 +70,7 @@
 	int tmp;
 	Bool useSignalHandler = True;
 
-	for ( arg_I = 0; arg_I < *argc; arg_I++ ) {
+	for ( arg_I = 0; argc && arg_I < *argc; arg_I++ ) {
 		argString = (*argv)[arg_I];
 		/* Leverage from PETSC's no signal flag */
 		if ( strcmp( argString, "-no_signal_handler" ) == 0 ) {

Modified: long/3D/Gale/trunk/src/Underworld/plugins/Application/Application.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/plugins/Application/Application.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/plugins/Application/Application.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -61,18 +61,20 @@
 
 const Type Underworld_Application_Type = "Underworld_Application";
 
-void _Underworld_Application_Construct( void* component, Stg_ComponentFactory* cf ) 
+void _Underworld_Application_Construct( void* component, Stg_ComponentFactory* cf, void* data ) 
  {
 	AbstractContext* currAbstractContext;
 	UnderworldContext* context = NULL;
 
         AbstractContext* prevContext;
         EntryPoint* applicationsFinalise_EP;
+	#if 0
 	EntryPoint* applicationsPostConstruct_EP;
+	#endif
 
 	//Get the existing abstract context, as defined by StGermain.
 	//Get it up here, so the communicator can be used for messages.
-	prevContext = (AbstractContext*)Stg_ComponentFactory_ConstructByName( cf, "context", AbstractContext, True );
+	prevContext = (AbstractContext*)Stg_ComponentFactory_ConstructByName( cf, "context", AbstractContext, True, data ); 
 
 	//Only need to initialise a new context, and copy all relevant registers over IF this is the first application
 	//plugin to be constructed.
@@ -115,25 +117,10 @@
 		//Create the EntryPoint for all application plugins' finalise functions to hook into.
 	        applicationsFinalise_EP = EntryPoint_New( EP_APPLICATIONS_FINALISE, EntryPoint_VoidPtr_CastType );
 	        EntryPoint_Register_Add(context->entryPoint_Register, (void*)applicationsFinalise_EP);
-
-		//Create the EntryPoint for all application plugins' post components construction functions to hook into.
-		//Currently ONLY Underworld uses this entry point. So it's NOT declared in lower level application plugins
-		//   (ie NOT in StG_FEM_Application nor PICellerator_Application)
-		applicationsPostConstruct_EP = EntryPoint_New( EP_APPLICATIONS_POST_COMPONENTS_CONSTRUCT, 
-											EntryPoint_VoidPtr_CastType );
-		EntryPoint_Register_Add(context->entryPoint_Register, (void*)applicationsPostConstruct_EP);
-
-
 	} //close of if(context->type == AbstractContext_Type)
 	else //prevContext was NOT an abstract context -> that is does NOT need to be replaced
 		context = (UnderworldContext*) prevContext;
 
-	//Add in the hook for the UnderworldContext_AssignPointers function.
-	EntryPoint_Append( Context_GetEntryPoint( context, EP_APPLICATIONS_POST_COMPONENTS_CONSTRUCT ),
-			   "Underworld App Assign Pointers",
-			   Underworld_Application_AssignPointers,
-			   "Underworld_App_Construct" );
-
         EntryPoint_Append( Context_GetEntryPoint( context, EP_APPLICATIONS_FINALISE ),
                            "Underworld App Finalise",
                            Underworld_Application_Finalise,
@@ -150,14 +137,6 @@
 	Underworld_Finalise();
 }
 
-void Underworld_Application_AssignPointers(void* context) 
-{
-	UnderworldContext* self = (UnderworldContext*) context;
-
-	UnderworldContext_AssignPointers( self );
-}
-
-
 void* _Underworld_Application_DefaultNew( Name name ) {
 	return Codelet_New(
 			Underworld_Application_Type,

Modified: long/3D/Gale/trunk/src/Underworld/plugins/Application/Application.h
===================================================================
--- long/3D/Gale/trunk/src/Underworld/plugins/Application/Application.h	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/plugins/Application/Application.h	2006-10-14 18:34:47 UTC (rev 5031)
@@ -61,6 +61,4 @@
 
 void Underworld_Application_Finalise();
 
-void Underworld_Application_AssignPointers(void* context);
-
 #endif	

Modified: long/3D/Gale/trunk/src/Underworld/plugins/EulerDeform/EulerDeform.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/plugins/EulerDeform/EulerDeform.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/plugins/EulerDeform/EulerDeform.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -73,7 +73,7 @@
 }
 
 
-void _Underworld_EulerDeform_Construct( void* component, Stg_ComponentFactory* cf ) {
+void _Underworld_EulerDeform_Construct( void* component, Stg_ComponentFactory* cf, void* data ) {
 	UnderworldContext*	uwCtx;
 	EulerDeform_Context*	edCtx;
 	Dictionary_Entry_Value*	edDict;
@@ -85,10 +85,12 @@
 	Journal_DPrintf( Underworld_Debug, "In: %s( void* )\n", __func__ );
 
 	/* Retrieve context. */
-	uwCtx = (UnderworldContext*)Stg_ComponentFactory_ConstructByName( cf, 
-									  "context", 
-									  UnderworldContext, 
-									  True );
+	uwCtx = (UnderworldContext*)Stg_ComponentFactory_ConstructByName( 
+		cf,
+		"context", 
+		UnderworldContext, 
+		True,
+		data );
 
 	/* Create new context. */
 	EulerDeform_ContextHandle = ExtensionManager_Add( uwCtx->extensionMgr, 
@@ -134,13 +136,13 @@
 			meshName = Dictionary_GetString( sysDict, "mesh" );
 			remesherName = Dictionary_GetString( sysDict, "remesher" );
 			if( strcmp( remesherName, "" ) )
-				sys->remesher = Stg_ComponentFactory_ConstructByName( cf, remesherName, Remesher, True );
+				sys->remesher = Stg_ComponentFactory_ConstructByName( cf, remesherName, Remesher, True, data );
 			velFieldName = Dictionary_GetString( sysDict, "velocityField" );
 			sys->wrapTop = Dictionary_GetBool_WithDefault( sysDict, "wrapTop", False );
 			sys->wrapBottom = Dictionary_GetBool_WithDefault( sysDict, "wrapBottom", False );
 			sys->wrapLeft = Dictionary_GetBool_WithDefault( sysDict, "wrapLeft", False );
-			sys->mesh = Stg_ComponentFactory_ConstructByName( cf, meshName, Mesh, True );
-			sys->velField = Stg_ComponentFactory_ConstructByName( cf, velFieldName, FieldVariable, True );
+			sys->mesh = Stg_ComponentFactory_ConstructByName( cf, meshName, Mesh, True, data );
+			sys->velField = Stg_ComponentFactory_ConstructByName( cf, velFieldName, FieldVariable, True, data );
 
 			/* Read the list of variables to interpolate. */
 			varLst = Dictionary_Entry_Value_GetMember( Dictionary_Entry_Value_GetElement( sysLst, sys_i ), "fields" );
@@ -155,14 +157,25 @@
 					char*		varName;
 
 					/* Get the dictionary for this field tuple. */
-					varDict = Dictionary_Entry_Value_AsDictionary( Dictionary_Entry_Value_GetElement( varLst, var_i ) );
+					varDict = Dictionary_Entry_Value_AsDictionary( 
+						Dictionary_Entry_Value_GetElement( varLst, var_i ) );
 					assert( varDict );
 
 					/* Get the field and its variable. */
 					varName = Dictionary_GetString( varDict, "field" );
-					sys->fields[var_i] = Stg_ComponentFactory_ConstructByName( cf, varName, FieldVariable, True );
+					sys->fields[var_i] = Stg_ComponentFactory_ConstructByName( 
+						cf, 
+						varName, 
+						FieldVariable, 
+						True, 
+						data ); 
 					varName = Dictionary_GetString( varDict, "variable" );
-					sys->vars[var_i] = Stg_ComponentFactory_ConstructByName( cf, varName, Variable, True );
+					sys->vars[var_i] = Stg_ComponentFactory_ConstructByName( 
+						cf, 
+						varName, 
+						Variable, 
+						True, 
+						data ); 
 				}
 			}
 

Modified: long/3D/Gale/trunk/src/Underworld/plugins/EulerDeform/EulerDeform.h
===================================================================
--- long/3D/Gale/trunk/src/Underworld/plugins/EulerDeform/EulerDeform.h	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/plugins/EulerDeform/EulerDeform.h	2006-10-14 18:34:47 UTC (rev 5031)
@@ -33,7 +33,7 @@
 
 	void* _Underworld_EulerDeform_DefaultNew( Name name );
 
-	void _Underworld_EulerDeform_Construct( void* component, Stg_ComponentFactory* data );
+	void _Underworld_EulerDeform_Construct( void* component, Stg_ComponentFactory* cf, void* data );
 
 	void _Underworld_EulerDeform_Build( void* component, void* data );
 

Modified: long/3D/Gale/trunk/src/Underworld/plugins/IncompressibleExtensionBC/IncompressibleExtensionBC.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/plugins/IncompressibleExtensionBC/IncompressibleExtensionBC.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/plugins/IncompressibleExtensionBC/IncompressibleExtensionBC.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -149,8 +149,8 @@
 	CalculateVelocities( context, &tmp, (double*) result );
 }
 
-void _Underworld_IncompressibleExtensionBC_Construct( void* self, Stg_ComponentFactory* cf ) {
-	UnderworldContext*  context  = Stg_ComponentFactory_ConstructByName( cf, "context", UnderworldContext, True );
+void _Underworld_IncompressibleExtensionBC_Construct( void* self, Stg_ComponentFactory* cf, void* data ) {
+	UnderworldContext*  context  = Stg_ComponentFactory_ConstructByName( cf, "context", UnderworldContext, True, data );
 	ConditionFunction*  condFunc;
 
 	condFunc = ConditionFunction_New( IncompressibleExtensionBC_TopCondition, "IncompressibleExtensionBC_TopCondition" );

Modified: long/3D/Gale/trunk/src/Underworld/plugins/MaterialThermalDiffusivity/MaterialThermalDiffusivity.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/plugins/MaterialThermalDiffusivity/MaterialThermalDiffusivity.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/plugins/MaterialThermalDiffusivity/MaterialThermalDiffusivity.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -91,7 +91,7 @@
 	AdvDiffResidualForceTerm*         residualForceTerm;
 	Variable*                         variable;
 
-	materialPoints = (MaterialPointsSwarm*)Stg_ComponentFactory_ConstructByName( context->CF, "materialPoints", MaterialPointsSwarm, True );
+	materialPoints = (MaterialPointsSwarm*)Stg_ComponentFactory_ConstructByName( context->CF, "materialPoints", MaterialPointsSwarm, True, 0 /* dummy */ );
 	assert(materialPoints);
 	residual = energySLE->residual;
 	residualForceTerm = Stg_CheckType( Stg_ObjectList_At( residual->forceTermList, 0 ), AdvDiffResidualForceTerm );
@@ -126,14 +126,14 @@
 	__Codelet
 } Underworld_MaterialThermalDiffusivity;
 
-void _Underworld_MaterialThermalDiffusivity_Construct( void* component, Stg_ComponentFactory* cf ) {
+void _Underworld_MaterialThermalDiffusivity_Construct( void* component, Stg_ComponentFactory* cf, void* data ) {
 	UnderworldContext* context;
 
-	context = (UnderworldContext*)Stg_ComponentFactory_ConstructByName( cf, "context", UnderworldContext, True );
+	context = (UnderworldContext*)Stg_ComponentFactory_ConstructByName( cf, "context", UnderworldContext, True, data ); 
 
 	/* Add functions to entry points */
 	ContextEP_Append( context, AbstractContext_EP_ConstructExtensions, Underworld_MaterialThermalDiffusivity_Setup );
-	ContextEP_Append( context, AbstractContext_EP_IC,                  Underworld_MaterialThermalDiffusivity_Assign );
+	ContextEP_Append( context, AbstractContext_EP_Initialise,          Underworld_MaterialThermalDiffusivity_Assign );
 
 }
 

Modified: long/3D/Gale/trunk/src/Underworld/plugins/MovingMesh/MovingMesh.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/plugins/MovingMesh/MovingMesh.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/plugins/MovingMesh/MovingMesh.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -55,11 +55,11 @@
 /* Each component type needs a unique identifier (as a string for us to read and as an integer for realtime comparisions) */
 const Type Underworld_MovingMesh_Type = "Underworld_MovingMesh";
 
-void _Underworld_MovingMesh_Construct( void* meshExtender, Stg_ComponentFactory* cf ) {
-	UnderworldContext*              context       = Stg_ComponentFactory_ConstructByName( cf, "context", UnderworldContext, True );
-	MeshExtender*                   self = (MeshExtender*) meshExtender;
-	Dimension_Index                 dim_I = 0;
-	Dimension_Index                 axisToRemeshOnTotal = 0;
+void _Underworld_MovingMesh_Construct( void* meshExtender, Stg_ComponentFactory* cf, void* data ) {
+	UnderworldContext*  context = Stg_ComponentFactory_ConstructByName( cf, "context", UnderworldContext, True, data );
+	MeshExtender*       self = (MeshExtender*) meshExtender;
+	Dimension_Index     dim_I = 0;
+	Dimension_Index     axisToRemeshOnTotal = 0;
 	
 	Journal_Firewall( 
 		(Bool)context, 

Modified: long/3D/Gale/trunk/src/Underworld/plugins/MovingMesh/MovingMesh.h
===================================================================
--- long/3D/Gale/trunk/src/Underworld/plugins/MovingMesh/MovingMesh.h	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/plugins/MovingMesh/MovingMesh.h	2006-10-14 18:34:47 UTC (rev 5031)
@@ -66,7 +66,7 @@
 
 	Index Underworld_MovingMesh_Register( PluginsManager* pluginsManager );
 	void* _Underworld_MovingMesh_DefaultNew( Name name );
-	void Underworld_MovingMesh_Construct( void* component, Stg_ComponentFactory* _cf ) ;
+void Underworld_MovingMesh_Construct( void* component, Stg_ComponentFactory* _cf, void* data ) ;
 
 	void Underworld_MovingMesh_Remesh( TimeIntegrator* timeIntegrator, MeshExtender* self ) ;
 	void Underworld_MovingMesh_RemeshAccordingToSidewalls( MeshExtender* self, FeVariable* velocityField ) ;

Modified: long/3D/Gale/trunk/src/Underworld/plugins/MovingMesh/tests/plugins/testMovingMesh.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/plugins/MovingMesh/tests/plugins/testMovingMesh.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/plugins/MovingMesh/tests/plugins/testMovingMesh.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -172,14 +172,14 @@
 	__Codelet
 } testMovingMesh;
 
-void _testMovingMesh_Construct( void* component, Stg_ComponentFactory* cf ) {
+void _testMovingMesh_Construct( void* component, Stg_ComponentFactory* cf, void* data ) {
 	DiscretisationContext* context;
 	Stream*                stream               = Journal_Register( Info_Type, CURR_MODULE_NAME );
 
-	context = Stg_ComponentFactory_ConstructByName( cf, "context", DiscretisationContext, True );
+	context = Stg_ComponentFactory_ConstructByName( cf, "context", DiscretisationContext, True, data ); 
 
 	ContextEP_Append( context, AbstractContext_EP_ConstructExtensions, construct );
-	ContextEP_Append( context, AbstractContext_EP_IC, storeOriginalPos );
+	ContextEP_Append( context, AbstractContext_EP_Initialise, storeOriginalPos );
 	ContextEP_Prepend( context, AbstractContext_EP_Step, check );
 	EP_AppendClassHook( Context_GetEntryPoint( context, FiniteElementContext_EP_CalcDt ), dt, context );
 

Modified: long/3D/Gale/trunk/src/Underworld/plugins/MovingMeshEnergyCorrection/MovingMeshEnergyCorrection.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/plugins/MovingMeshEnergyCorrection/MovingMeshEnergyCorrection.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/plugins/MovingMeshEnergyCorrection/MovingMeshEnergyCorrection.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -231,9 +231,9 @@
 	Memory_Free( xRightVelocities );
 }
 
-void _Underworld_MovingMeshEnergyCorrection_Construct( void* component, Stg_ComponentFactory* cf ) {
+void _Underworld_MovingMeshEnergyCorrection_Construct( void* component, Stg_ComponentFactory* cf, void* data ) {
 	UnderworldContext*                                      context = 
-	                             Stg_ComponentFactory_ConstructByName( cf, "context", UnderworldContext, True );
+	Stg_ComponentFactory_ConstructByName( cf, "context", UnderworldContext, True, data ); 
 	Underworld_MovingMeshEnergyCorrection_ContextExt*       contextExt;
 	
 	Journal_DFirewall( 

Modified: long/3D/Gale/trunk/src/Underworld/plugins/Output/BoundaryLayers/BoundaryLayers.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/plugins/Output/BoundaryLayers/BoundaryLayers.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/plugins/Output/BoundaryLayers/BoundaryLayers.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -58,10 +58,10 @@
 
 const Type Underworld_BoundaryLayers_Type = "Underworld_BoundaryLayers";
 
-void _Underworld_BoundaryLayers_Construct( void* component, Stg_ComponentFactory* cf ) {
+void _Underworld_BoundaryLayers_Construct( void* component, Stg_ComponentFactory* cf, void* data ) {
 	UnderworldContext* context;
 
-	context = Stg_ComponentFactory_ConstructByName( cf, "context", UnderworldContext, True );
+	context = Stg_ComponentFactory_ConstructByName( cf, "context", UnderworldContext, True, data ); 
 
 	/* Add functions to entry points */
 	ContextEP_Append( context, AbstractContext_EP_FrequentOutput, Underworld_BoundaryLayers_Output );

Modified: long/3D/Gale/trunk/src/Underworld/plugins/Output/ConvectionData/ConvectionData.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/plugins/Output/ConvectionData/ConvectionData.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/plugins/Output/ConvectionData/ConvectionData.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -84,8 +84,8 @@
 					context->CF->LCRegister,
 					Underworld_ConvectionData_Type );
 	
-	rheology = (Rheology*)Stg_ComponentFactory_ConstructByName( context->CF, "temperatureDependence", Rheology, False );	
-	nonNewtonian = (NonNewtonian*)Stg_ComponentFactory_ConstructByName( context->CF, "nonNewtonian", NonNewtonian, True );	
+	rheology = (Rheology*)Stg_ComponentFactory_ConstructByName( context->CF, "temperatureDependence", Rheology, False, 0 /* dummy */ );	
+	nonNewtonian = (NonNewtonian*)Stg_ComponentFactory_ConstructByName( context->CF, "nonNewtonian", NonNewtonian, True, 0 /* dummy */ );	
 
 	if( !strcmp( rheology->type, "FrankKamenetskii" ) ) {
 		frankKamenetskii = (FrankKamenetskii*)rheology; 
@@ -202,10 +202,10 @@
 
 }
 	
-void _Underworld_ConvectionData_Construct( void* component, Stg_ComponentFactory* cf ) {
+void _Underworld_ConvectionData_Construct( void* component, Stg_ComponentFactory* cf, void* data ) {
 	UnderworldContext*  context;
 
-	context = Stg_ComponentFactory_ConstructByName( cf, "context", UnderworldContext, True );
+	context = Stg_ComponentFactory_ConstructByName( cf, "context", UnderworldContext, True, data );
 
 	ContextEP_Append( context, AbstractContext_EP_ConstructExtensions, Underworld_ConvectionData_Setup );
 	ContextEP_Append( context, AbstractContext_EP_FrequentOutput, Underworld_ConvectionData_Dump );

Modified: long/3D/Gale/trunk/src/Underworld/plugins/Output/CylinderNodeProfiling/CylinderNodeProfiling.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/plugins/Output/CylinderNodeProfiling/CylinderNodeProfiling.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/plugins/Output/CylinderNodeProfiling/CylinderNodeProfiling.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -124,13 +124,13 @@
 	MPI_Barrier( context->communicator );
 }
 
-void _ExperimentalUnderworld_CylinderNodeProfiling_Construct( void* component, Stg_ComponentFactory* data ) {
+void _ExperimentalUnderworld_CylinderNodeProfiling_Construct( void* component, Stg_ComponentFactory* cf, void* data ) {
 
 	AbstractContext* context;
-	FeVariable*  temperatureField  = Stg_ComponentFactory_ConstructByName( data, "TemperatureField", FeVariable, True );
+	FeVariable*  temperatureField  = Stg_ComponentFactory_ConstructByName( cf, "TemperatureField", FeVariable, True, data );
 	FiniteElement_Mesh* mesh     = temperatureField->feMesh;
 
-	context = Stg_ComponentFactory_ConstructByName( data, "context", AbstractContext, True );
+	context = Stg_ComponentFactory_ConstructByName( cf, "context", AbstractContext, True, data );
 	ContextEP_Append( context, AbstractContext_EP_FrequentOutput, ExperimentalUnderworld_NodeTempProfile );
 	
 	Mesh_ActivateNodeNeighbourTbl( mesh );

Modified: long/3D/Gale/trunk/src/Underworld/plugins/Output/MaxTemperature/MaxTemperature.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/plugins/Output/MaxTemperature/MaxTemperature.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/plugins/Output/MaxTemperature/MaxTemperature.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -52,10 +52,10 @@
 void Underworld_MaxTemperature_PrintHeaderToFile( void* context );
 void Underworld_MaxTemperature_Output( void* _context );
 
-void _Underworld_MaxTemperature_Construct( void* component, Stg_ComponentFactory* cf ) {
+void _Underworld_MaxTemperature_Construct( void* component, Stg_ComponentFactory* cf, void* data ) {
 	UnderworldContext*  context;
 
-	context = Stg_ComponentFactory_ConstructByName( cf, "context", UnderworldContext, True );
+	context = Stg_ComponentFactory_ConstructByName( cf, "context", UnderworldContext, True, data );
 
 	Underworld_MaxTemperature_PrintHeaderToFile( context );
 	ContextEP_Append( context, AbstractContext_EP_FrequentOutput, Underworld_MaxTemperature_Output );

Modified: long/3D/Gale/trunk/src/Underworld/plugins/Output/Nusselt/Nusselt.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/plugins/Output/Nusselt/Nusselt.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/plugins/Output/Nusselt/Nusselt.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -53,10 +53,10 @@
 
 const Type Underworld_Nusselt_Type = "Underworld_Nusselt";
 
-void _Underworld_Nusselt_Construct( void* component, Stg_ComponentFactory* cf ) {
+void _Underworld_Nusselt_Construct( void* component, Stg_ComponentFactory* cf, void* data ) {
 	UnderworldContext* context;
 
-	context = Stg_ComponentFactory_ConstructByName( cf, "context", UnderworldContext, True );
+	context = Stg_ComponentFactory_ConstructByName( cf, "context", UnderworldContext, True, data ); 
 
 	/* Add functions to entry points */
 	Underworld_Nusselt_Setup( context );

Modified: long/3D/Gale/trunk/src/Underworld/plugins/Output/Nusselt_deltaT/Nusselt_deltaT.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/plugins/Output/Nusselt_deltaT/Nusselt_deltaT.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/plugins/Output/Nusselt_deltaT/Nusselt_deltaT.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -38,10 +38,10 @@
 
 const Type Underworld_Nusselt_deltaT_Type = "Underworld_Nusselt_deltaT";
 
-void _Underworld_Nusselt_deltaT_Construct( void* component, Stg_ComponentFactory* cf ) {
+void _Underworld_Nusselt_deltaT_Construct( void* component, Stg_ComponentFactory* cf, void* data ) {
 	UnderworldContext* context;
 
-	context = Stg_ComponentFactory_ConstructByName( cf, "context", UnderworldContext, True );
+	context = Stg_ComponentFactory_ConstructByName( cf, "context", UnderworldContext, True, data ); 
 
 	/* Add functions to entry points */
 	Underworld_Nusselt_deltaT_Setup( context );

Modified: long/3D/Gale/trunk/src/Underworld/plugins/Output/Shfl/Shfl.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/plugins/Output/Shfl/Shfl.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/plugins/Output/Shfl/Shfl.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -38,10 +38,10 @@
 
 const Type Underworld_Shfl_Type = "Underworld_Shfl";
 
-void _Underworld_Shfl_Construct( void* component, Stg_ComponentFactory* cf ) {
+void _Underworld_Shfl_Construct( void* component, Stg_ComponentFactory* cf, void* data ) {
 	UnderworldContext* context;
 
-	context = Stg_ComponentFactory_ConstructByName( cf, "context", UnderworldContext, True );
+	context = Stg_ComponentFactory_ConstructByName( cf, "context", UnderworldContext, True, data ); 
 
 	/* Add functions to entry points */
 	Underworld_Shfl_Setup( context );

Modified: long/3D/Gale/trunk/src/Underworld/plugins/Output/Vrms/Vrms.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/plugins/Output/Vrms/Vrms.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/plugins/Output/Vrms/Vrms.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -52,10 +52,10 @@
 
 const Type Underworld_Vrms_Type = "Underworld_Vrms";
 
-void _Underworld_Vrms_Construct( void* component, Stg_ComponentFactory* cf ) {
+void _Underworld_Vrms_Construct( void* component, Stg_ComponentFactory* cf, void* data ) {
 	UnderworldContext*  context;
 
-	context = Stg_ComponentFactory_ConstructByName( cf, "context", UnderworldContext, True );
+	context = Stg_ComponentFactory_ConstructByName( cf, "context", UnderworldContext, True, data ); 
 
 	Underworld_Vrms_PrintHeaderToFile( context );
 	ContextEP_Append( context, AbstractContext_EP_ConstructExtensions, Underworld_Vrms_Setup );

Modified: long/3D/Gale/trunk/src/Underworld/plugins/VariableConditions/ShapeTemperatureIC/ShapeTemperatureIC.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/plugins/VariableConditions/ShapeTemperatureIC/ShapeTemperatureIC.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/plugins/VariableConditions/ShapeTemperatureIC/ShapeTemperatureIC.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -80,11 +80,11 @@
 		*result = 0.0;
 }
 
-void _Underworld_ShapeTemperatureIC_Construct( void* component, Stg_ComponentFactory* cf ) {
+void _Underworld_ShapeTemperatureIC_Construct( void* component, Stg_ComponentFactory* cf, void* data ) {
 	ConditionFunction*      condFunc;
 	UnderworldContext*      context;
 
-	context = (UnderworldContext*)Stg_ComponentFactory_ConstructByName( cf, "context", UnderworldContext, True );
+	context = (UnderworldContext*)Stg_ComponentFactory_ConstructByName( cf, "context", UnderworldContext, True, data ); 
 	
 	condFunc = ConditionFunction_New( Underworld_ShapeTemperatureICFunction, "ShapeTemperatureIC" );
 	ConditionFunction_Register_Add( context->condFunc_Register, condFunc );

Modified: long/3D/Gale/trunk/src/Underworld/src/main.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/src/main.c	2006-10-14 18:34:45 UTC (rev 5030)
+++ long/3D/Gale/trunk/src/Underworld/src/main.c	2006-10-14 18:34:47 UTC (rev 5031)
@@ -97,7 +97,6 @@
 	int                numProcessors;
 	Dictionary*        dictionary;
 	XML_IO_Handler*    ioHandler;
-	Dictionary*        componentDict;
 	UnderworldContext* context         = NULL;
 	
 	char* errMessage = "Component dictionary must have unique names\n";
@@ -124,37 +123,12 @@
 	/* Read input */
 	ioHandler = XML_IO_Handler_New();
 	IO_Handler_ReadAllFromCommandLine( ioHandler, argc, argv, dictionary );
-        Journal_Enable_TypedStream("info",False);
 	Journal_ReadFromDictionary( dictionary );
 
 	/* Construction phase -----------------------------------------------------------------------------------------------*/
 	context = UnderworldContext_New( "context", 0, 0, CommWorld, dictionary );
-
-	componentDict = Dictionary_GetDictionary( dictionary, "components" );
-	assert( componentDict );
-
-	context->CF = Stg_ComponentFactory_New( dictionary, componentDict, context->register_Register );
-
-	/*check components dictionary for double entries */
-	CheckDictionaryKeys(componentDict, errMessage);
-
-	LiveComponentRegister_Add( context->CF->LCRegister, (Stg_Component*) context );
-	PluginsManager_Load( context->plugins, context, dictionary, nPlugins, pluginNames, pluginLst );
+	Stg_Component_Construct( context, 0 /* dummy */, &context, True );
 	
-	Stg_ComponentFactory_CreateComponents( context->CF );
-	Stg_ComponentFactory_ConstructComponents( context->CF );
-	UnderworldContext_AssignPointers( context );
-	PluginsManager_ConstructPlugins( context->plugins, context->CF );
-	
-	KeyCall( context, context->constructExtensionsK, EntryPoint_VoidPtr_CallCast* )( KeyHandle(context,context->constructExtensionsK), context );
-	
-	if( rank == 0 ) 
-		Context_PrintConcise( context, context->verbose );
-
-	if ( True == Dictionary_GetBool_WithDefault( dictionary, "showJournalStatus", False ) ) {
-		Journal_PrintConcise();	
-	}	
-
 	/* Building phase ---------------------------------------------------------------------------------------------------*/
 	Stg_Component_Build( context, 0 /* dummy */, False );
 	



More information about the cig-commits mailing list