[cig-commits] r5028 - in long/3D/Gale/trunk/src/StgFEM: . Apps/EnergySolver/tests/AdvDiffSteadyState1D Apps/EnergySolver/tests/HomogeneousNaturalBCs Apps/StokesMomentumUzawa/tests/LidDrivenIsoviscousAnalytic Apps/StokesMomentumUzawa/tests/SimpleShearAnalytic Apps/TempDiffusion/tests/LinearTemperatureField Apps/TempDiffusion/tests/expected Apps/ThermalConvection/tests/ColumnViscosityAnalytic Assembly/src Assembly/tests/plugins Discretisation/src Discretisation/tests SLE/ProvidedSystems/AdvectionDiffusion/src SLE/ProvidedSystems/Energy/src SLE/ProvidedSystems/StokesFlow/src SLE/SystemSetup/src SLE/src plugins/Application plugins/CompareFeVariableAgainstReferenceSolution plugins/FeVariableImportExporters/FeVariable_ImportExport_ABAQUS plugins/LevelSetPlugin plugins/MultiGrid plugins/Output/CPUTime plugins/Output/FrequentOutput plugins/Output/PeakMemory plugins/Output/PrintFeVariableDiscreteValues plugins/Output/PrintFeVariableDiscreteValues_2dBox plugins/StandardConditionFunctions plugins/VelicAnalyticSolutions/Velic_solA plugins/VelicAnalyticSolutions/Velic_solB plugins/VelicAnalyticSolutions/Velic_solCA plugins/VelicAnalyticSolutions/Velic_solD plugins/VelicAnalyticSolutions/Velic_solKx src

walter at geodynamics.org walter at geodynamics.org
Sat Oct 14 11:33:45 PDT 2006


Author: walter
Date: 2006-10-14 11:32:16 -0700 (Sat, 14 Oct 2006)
New Revision: 5028

Modified:
   long/3D/Gale/trunk/src/StgFEM/
   long/3D/Gale/trunk/src/StgFEM/Apps/EnergySolver/tests/AdvDiffSteadyState1D/AdvDiffSteadyState1D.c
   long/3D/Gale/trunk/src/StgFEM/Apps/EnergySolver/tests/HomogeneousNaturalBCs/HomogeneousNaturalBCs.c
   long/3D/Gale/trunk/src/StgFEM/Apps/StokesMomentumUzawa/tests/LidDrivenIsoviscousAnalytic/LidDrivenIsoviscousAnalytic.c
   long/3D/Gale/trunk/src/StgFEM/Apps/StokesMomentumUzawa/tests/SimpleShearAnalytic/SimpleShearAnalytic.c
   long/3D/Gale/trunk/src/StgFEM/Apps/TempDiffusion/tests/LinearTemperatureField/LinearTemperatureField.c
   long/3D/Gale/trunk/src/StgFEM/Apps/TempDiffusion/tests/expected/testBasicTempDiffusion-Tri.0of1.expected
   long/3D/Gale/trunk/src/StgFEM/Apps/ThermalConvection/tests/ColumnViscosityAnalytic/ColumnViscosityAnalytic.c
   long/3D/Gale/trunk/src/StgFEM/Assembly/src/GradientStiffnessMatrixTerm.c
   long/3D/Gale/trunk/src/StgFEM/Assembly/src/GradientStiffnessMatrixTerm.h
   long/3D/Gale/trunk/src/StgFEM/Assembly/src/IsoviscousStressTensorTerm.c
   long/3D/Gale/trunk/src/StgFEM/Assembly/src/IsoviscousStressTensorTerm.h
   long/3D/Gale/trunk/src/StgFEM/Assembly/src/LaplacianStiffnessMatrixTerm.c
   long/3D/Gale/trunk/src/StgFEM/Assembly/src/LaplacianStiffnessMatrixTerm.h
   long/3D/Gale/trunk/src/StgFEM/Assembly/src/ThermalBuoyancyForceTerm.c
   long/3D/Gale/trunk/src/StgFEM/Assembly/src/ThermalBuoyancyForceTerm.h
   long/3D/Gale/trunk/src/StgFEM/Assembly/tests/plugins/testStiffnessMatrixCompare.c
   long/3D/Gale/trunk/src/StgFEM/Assembly/tests/plugins/testStressTensor.c
   long/3D/Gale/trunk/src/StgFEM/Discretisation/src/AnalyticSolution.c
   long/3D/Gale/trunk/src/StgFEM/Discretisation/src/AnalyticSolution.h
   long/3D/Gale/trunk/src/StgFEM/Discretisation/src/BilinearElementType.c
   long/3D/Gale/trunk/src/StgFEM/Discretisation/src/BilinearElementType.h
   long/3D/Gale/trunk/src/StgFEM/Discretisation/src/ConstantElementType.c
   long/3D/Gale/trunk/src/StgFEM/Discretisation/src/ConstantElementType.h
   long/3D/Gale/trunk/src/StgFEM/Discretisation/src/ElementType_Register.c
   long/3D/Gale/trunk/src/StgFEM/Discretisation/src/ElementType_Register.h
   long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeEquationNumber.c
   long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeEquationNumber.h
   long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeSwarmVariable.c
   long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeSwarmVariable.h
   long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeVariable.c
   long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeVariable.h
   long/3D/Gale/trunk/src/StgFEM/Discretisation/src/LinearTriangleElementType.c
   long/3D/Gale/trunk/src/StgFEM/Discretisation/src/LinearTriangleElementType.h
   long/3D/Gale/trunk/src/StgFEM/Discretisation/src/LinkedDofInfo.c
   long/3D/Gale/trunk/src/StgFEM/Discretisation/src/LinkedDofInfo.h
   long/3D/Gale/trunk/src/StgFEM/Discretisation/src/Mesh.c
   long/3D/Gale/trunk/src/StgFEM/Discretisation/src/Mesh.h
   long/3D/Gale/trunk/src/StgFEM/Discretisation/src/OperatorFeVariable.c
   long/3D/Gale/trunk/src/StgFEM/Discretisation/src/OperatorFeVariable.h
   long/3D/Gale/trunk/src/StgFEM/Discretisation/src/ShapeFeVariable.c
   long/3D/Gale/trunk/src/StgFEM/Discretisation/src/ShapeFeVariable.h
   long/3D/Gale/trunk/src/StgFEM/Discretisation/src/TrilinearElementType.c
   long/3D/Gale/trunk/src/StgFEM/Discretisation/src/TrilinearElementType.h
   long/3D/Gale/trunk/src/StgFEM/Discretisation/tests/testFeEquationNumber-LinkedDofs.c
   long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/AdvectionDiffusion/src/AdvectionDiffusionSLE.c
   long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/AdvectionDiffusion/src/AdvectionDiffusionSLE.h
   long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/AdvectionDiffusion/src/LumpedMassMatrixForceTerm.c
   long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/AdvectionDiffusion/src/LumpedMassMatrixForceTerm.h
   long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/AdvectionDiffusion/src/Multicorrector.c
   long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/AdvectionDiffusion/src/Multicorrector.h
   long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/AdvectionDiffusion/src/Residual.c
   long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/AdvectionDiffusion/src/Residual.h
   long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/Energy/src/Energy_SLE.c
   long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/Energy/src/Energy_SLE.h
   long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/Energy/src/Energy_SLE_Solver.c
   long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/Energy/src/Energy_SLE_Solver.h
   long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/StokesFlow/src/Stokes_SLE.c
   long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/StokesFlow/src/Stokes_SLE.h
   long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/StokesFlow/src/Stokes_SLE_PenaltySolver.c
   long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/StokesFlow/src/Stokes_SLE_PenaltySolver.h
   long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/StokesFlow/src/Stokes_SLE_UzawaSolver.c
   long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/StokesFlow/src/Stokes_SLE_UzawaSolver.h
   long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/StokesFlow/src/UzawaPreconditionerTerm.c
   long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/StokesFlow/src/UzawaPreconditionerTerm.h
   long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/Context.c
   long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/Context.h
   long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/EntryPoint.c
   long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/ForceTerm.c
   long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/ForceTerm.h
   long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/ForceVector.c
   long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/ForceVector.h
   long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/SLE_Solver.c
   long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/SLE_Solver.h
   long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/SolutionVector.c
   long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/SolutionVector.h
   long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/StiffnessMatrix.c
   long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/StiffnessMatrix.h
   long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/StiffnessMatrixTerm.c
   long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/StiffnessMatrixTerm.h
   long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/SystemLinearEquations.c
   long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/SystemLinearEquations.h
   long/3D/Gale/trunk/src/StgFEM/SLE/src/StiffRemesher.c
   long/3D/Gale/trunk/src/StgFEM/SLE/src/StiffRemesher.h
   long/3D/Gale/trunk/src/StgFEM/plugins/Application/Application.c
   long/3D/Gale/trunk/src/StgFEM/plugins/CompareFeVariableAgainstReferenceSolution/CompareFeVariableAgainstReferenceSolution.c
   long/3D/Gale/trunk/src/StgFEM/plugins/FeVariableImportExporters/FeVariable_ImportExport_ABAQUS/FeVariable_ImportExport_ABAQUS.c
   long/3D/Gale/trunk/src/StgFEM/plugins/LevelSetPlugin/LevelSet.c
   long/3D/Gale/trunk/src/StgFEM/plugins/LevelSetPlugin/LevelSet.h
   long/3D/Gale/trunk/src/StgFEM/plugins/LevelSetPlugin/LevelSetPlugin.c
   long/3D/Gale/trunk/src/StgFEM/plugins/LevelSetPlugin/LevelSetPlugin.h
   long/3D/Gale/trunk/src/StgFEM/plugins/MultiGrid/MultiGrid.c
   long/3D/Gale/trunk/src/StgFEM/plugins/MultiGrid/MultiGrid.h
   long/3D/Gale/trunk/src/StgFEM/plugins/Output/CPUTime/CPUTime.c
   long/3D/Gale/trunk/src/StgFEM/plugins/Output/FrequentOutput/FrequentOutput.c
   long/3D/Gale/trunk/src/StgFEM/plugins/Output/PeakMemory/PeakMemory.c
   long/3D/Gale/trunk/src/StgFEM/plugins/Output/PrintFeVariableDiscreteValues/Plugin.c
   long/3D/Gale/trunk/src/StgFEM/plugins/Output/PrintFeVariableDiscreteValues_2dBox/Plugin.c
   long/3D/Gale/trunk/src/StgFEM/plugins/StandardConditionFunctions/StandardConditionFunctions.c
   long/3D/Gale/trunk/src/StgFEM/plugins/VelicAnalyticSolutions/Velic_solA/solA.c
   long/3D/Gale/trunk/src/StgFEM/plugins/VelicAnalyticSolutions/Velic_solB/solB.c
   long/3D/Gale/trunk/src/StgFEM/plugins/VelicAnalyticSolutions/Velic_solCA/solCA.c
   long/3D/Gale/trunk/src/StgFEM/plugins/VelicAnalyticSolutions/Velic_solD/solD.c
   long/3D/Gale/trunk/src/StgFEM/plugins/VelicAnalyticSolutions/Velic_solKx/solKx.c
   long/3D/Gale/trunk/src/StgFEM/src/main.c
Log:
 r830 at earth:  boo | 2006-10-14 11:31:55 -0700
  r828 at earth (orig r654):  SteveQuenette | 2006-10-12 01:58:49 -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/StgFEM
___________________________________________________________________
Name: svk:merge
   - 38867592-cf10-0410-9e16-a142ea72ac34:/cig:829
db209038-57f2-0310-97fa-b160e0ae9d04:/trunk:653
   + 38867592-cf10-0410-9e16-a142ea72ac34:/cig:830
db209038-57f2-0310-97fa-b160e0ae9d04:/trunk:654

Modified: long/3D/Gale/trunk/src/StgFEM/Apps/EnergySolver/tests/AdvDiffSteadyState1D/AdvDiffSteadyState1D.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Apps/EnergySolver/tests/AdvDiffSteadyState1D/AdvDiffSteadyState1D.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/Apps/EnergySolver/tests/AdvDiffSteadyState1D/AdvDiffSteadyState1D.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -66,7 +66,7 @@
 
 void AdvDiffSteadyState1D_TemperatureBC( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* temperature ){
 	DiscretisationContext*	context    = (DiscretisationContext*)_context;
-	AdvDiffSteadyState1D*   self       = Stg_ComponentFactory_ConstructByName( context->CF, AdvDiffSteadyState1D_Type, AdvDiffSteadyState1D, True );
+	AdvDiffSteadyState1D*   self       = Stg_ComponentFactory_ConstructByName( context->CF, AdvDiffSteadyState1D_Type, AdvDiffSteadyState1D, True, 0 /* dummy */ );
 	FeVariable*             feVariable = NULL;
 	FiniteElement_Mesh*     mesh       = NULL;
 	double*                 coord;
@@ -117,25 +117,25 @@
 	}
 }
 
-void _AdvDiffSteadyState1D_Construct( void* analyticSolution, Stg_ComponentFactory* cf ) {
+void _AdvDiffSteadyState1D_Construct( void* analyticSolution, Stg_ComponentFactory* cf, void* data ) {
 	AdvDiffSteadyState1D*  self = (AdvDiffSteadyState1D*)analyticSolution;
 	FeVariable*            temperatureField;
 	AbstractContext*       context;
 	ConditionFunction*     condFunc;
 
-	_AnalyticSolution_Construct( self, cf );
+	_AnalyticSolution_Construct( self, cf, data );
 
-	temperatureField = Stg_ComponentFactory_ConstructByName( cf, "TemperatureField", FeVariable, True );
+	temperatureField = Stg_ComponentFactory_ConstructByName( cf, "TemperatureField", FeVariable, True, data );
 	AnalyticSolution_CreateAnalyticField( self, temperatureField, AdvDiffSteadyState1D_TemperatureFunction );
 
-	self->residual = Stg_ComponentFactory_ConstructByName( cf, "defaultResidualForceTerm", AdvDiffResidualForceTerm, True );
+	self->residual = Stg_ComponentFactory_ConstructByName( cf, "defaultResidualForceTerm", AdvDiffResidualForceTerm, True, data );
 
 	self->velocity = Stg_ComponentFactory_GetRootDictDouble( cf, "velocity", 1.0 );
 	self->A        = Stg_ComponentFactory_GetRootDictDouble( cf, "A", 1.0 );
 	self->B        = Stg_ComponentFactory_GetRootDictDouble( cf, "B", 0.0 );
 	self->c        = Stg_ComponentFactory_GetRootDictDouble( cf, "c", 0.0 );
 	
-	context = Stg_ComponentFactory_ConstructByName( cf, "context", AbstractContext, True );
+	context = Stg_ComponentFactory_ConstructByName( cf, "context", AbstractContext, True, data );
 	condFunc = ConditionFunction_New( AdvDiffSteadyState1D_TemperatureBC, "AnalyticSolutionFunction" );
 	ConditionFunction_Register_Add( context->condFunc_Register, condFunc );
 

Modified: long/3D/Gale/trunk/src/StgFEM/Apps/EnergySolver/tests/HomogeneousNaturalBCs/HomogeneousNaturalBCs.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Apps/EnergySolver/tests/HomogeneousNaturalBCs/HomogeneousNaturalBCs.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/Apps/EnergySolver/tests/HomogeneousNaturalBCs/HomogeneousNaturalBCs.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -51,9 +51,14 @@
 
 
 void HomogeneousNaturalBCs_Velocity_SkewToMesh( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
-	DiscretisationContext*	context= (DiscretisationContext*)_context;
-	HomogeneousNaturalBCs*  self   = Stg_ComponentFactory_ConstructByName( context->CF, HomogeneousNaturalBCs_Type, HomogeneousNaturalBCs, True );
-	double*                 result             = (double*) _result;
+	DiscretisationContext*	context = (DiscretisationContext*)_context;
+	HomogeneousNaturalBCs*  self    = Stg_ComponentFactory_ConstructByName( 
+		context->CF, 
+		HomogeneousNaturalBCs_Type, 
+		HomogeneousNaturalBCs, 
+		True,
+		0 );
+	double*                 result  = (double*) _result;
 	
 	result[ I_AXIS ] =  cos( self->angle );
 	result[ J_AXIS ] =  sin( self->angle );
@@ -71,7 +76,12 @@
 	
 void HomogeneousNaturalBCs_TemperatureBC( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
 	DiscretisationContext*	context    = (DiscretisationContext*)_context;
-	HomogeneousNaturalBCs*  self       = Stg_ComponentFactory_ConstructByName( context->CF, HomogeneousNaturalBCs_Type, HomogeneousNaturalBCs, True );
+	HomogeneousNaturalBCs*  self       = Stg_ComponentFactory_ConstructByName( 
+		context->CF, 
+		HomogeneousNaturalBCs_Type, 
+		HomogeneousNaturalBCs, 
+		True,
+		0 );
 	FeVariable*             feVariable = NULL;
 	FiniteElement_Mesh*     mesh       = NULL;
 	double*                 result     = (double*) _result;
@@ -84,20 +94,20 @@
 	HomogeneousNaturalBCs_TemperatureFunction( self, feVariable, coord, result );
 }
 
-void _HomogeneousNaturalBCs_Construct( void* analyticSolution, Stg_ComponentFactory* cf ) {
+void _HomogeneousNaturalBCs_Construct( void* analyticSolution, Stg_ComponentFactory* cf, void* data ) {
 	HomogeneousNaturalBCs* self = (HomogeneousNaturalBCs*)analyticSolution;
 	FeVariable*            temperatureField;
 	AbstractContext*       context;
 	ConditionFunction*     condFunc;
 
-	_AnalyticSolution_Construct( self, cf );
+	_AnalyticSolution_Construct( self, cf, data );
 
-	temperatureField = Stg_ComponentFactory_ConstructByName( cf, "TemperatureField", FeVariable, True );
+	temperatureField = Stg_ComponentFactory_ConstructByName( cf, "TemperatureField", FeVariable, True, data ); 
 
 	AnalyticSolution_CreateAnalyticField( self, temperatureField, HomogeneousNaturalBCs_TemperatureFunction );
 
 	/* Create Condition Functions */
-	context = Stg_ComponentFactory_ConstructByName( cf, "context", AbstractContext, True );
+	context = Stg_ComponentFactory_ConstructByName( cf, "context", AbstractContext, True, data ); 
 	condFunc = ConditionFunction_New( HomogeneousNaturalBCs_Velocity_SkewToMesh, "Velocity_SkewToMesh" );
 	ConditionFunction_Register_Add( context->condFunc_Register, condFunc );
 	condFunc = ConditionFunction_New( HomogeneousNaturalBCs_TemperatureBC, "Temperature_StepFunction" );

Modified: long/3D/Gale/trunk/src/StgFEM/Apps/StokesMomentumUzawa/tests/LidDrivenIsoviscousAnalytic/LidDrivenIsoviscousAnalytic.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Apps/StokesMomentumUzawa/tests/LidDrivenIsoviscousAnalytic/LidDrivenIsoviscousAnalytic.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/Apps/StokesMomentumUzawa/tests/LidDrivenIsoviscousAnalytic/LidDrivenIsoviscousAnalytic.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -121,17 +121,17 @@
 	*pressure = - 2.0 * n * M_PI * cos( n * M_PI * x ) * ( C * exp( n * M_PI * y ) + D * exp( - n * M_PI * y ) );
 }
 
-void _LidDrivenIsoviscousAnalytic_Construct( void* analyticSolution, Stg_ComponentFactory* cf ) {
+void _LidDrivenIsoviscousAnalytic_Construct( void* analyticSolution, Stg_ComponentFactory* cf, void* data ) {
 	LidDrivenIsoviscousAnalytic *self = (LidDrivenIsoviscousAnalytic*)analyticSolution;
 	FeVariable*       velocityField;
 	FeVariable*       pressureField;
 
-	_AnalyticSolution_Construct( self, cf );
+	_AnalyticSolution_Construct( self, cf, data );
 
-	velocityField = Stg_ComponentFactory_ConstructByName( cf, "VelocityField", FeVariable, True );
+	velocityField = Stg_ComponentFactory_ConstructByName( cf, "VelocityField", FeVariable, True, data ); 
 	AnalyticSolution_CreateAnalyticVectorField( self, velocityField, LidDrivenIsoviscousAnalytic_VelocityFunction );
 
-	pressureField = Stg_ComponentFactory_ConstructByName( cf, "PressureField", FeVariable, True );
+	pressureField = Stg_ComponentFactory_ConstructByName( cf, "PressureField", FeVariable, True, data ); 
 	AnalyticSolution_CreateAnalyticField( self, pressureField, LidDrivenIsoviscousAnalytic_PressureFunction );
 
 	/* Set constants */

Modified: long/3D/Gale/trunk/src/StgFEM/Apps/StokesMomentumUzawa/tests/SimpleShearAnalytic/SimpleShearAnalytic.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Apps/StokesMomentumUzawa/tests/SimpleShearAnalytic/SimpleShearAnalytic.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/Apps/StokesMomentumUzawa/tests/SimpleShearAnalytic/SimpleShearAnalytic.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -63,17 +63,17 @@
 	*pressure = 0.0;
 }
 
-void _SimpleShearAnalytic_Construct( void* analyticSolution, Stg_ComponentFactory* cf ) {
+void _SimpleShearAnalytic_Construct( void* analyticSolution, Stg_ComponentFactory* cf, void* data ) {
 	SimpleShearAnalytic *self = (SimpleShearAnalytic*)analyticSolution;
 	FeVariable*       velocityField;
 	FeVariable*       pressureField;
 
-	_AnalyticSolution_Construct( self, cf );
+	_AnalyticSolution_Construct( self, cf, data );
 
-	velocityField = Stg_ComponentFactory_ConstructByName( cf, "VelocityField", FeVariable, True );
+	velocityField = Stg_ComponentFactory_ConstructByName( cf, "VelocityField", FeVariable, True, data ); 
 	AnalyticSolution_CreateAnalyticField( self, velocityField, SimpleShearAnalytic_VelocityFunction );
 
-	pressureField = Stg_ComponentFactory_ConstructByName( cf, "PressureField", FeVariable, True );
+	pressureField = Stg_ComponentFactory_ConstructByName( cf, "PressureField", FeVariable, True, data ); 
 	AnalyticSolution_CreateAnalyticField( self, pressureField, SimpleShearAnalytic_PressureFunction );
 
 	/* Set constants */

Modified: long/3D/Gale/trunk/src/StgFEM/Apps/TempDiffusion/tests/LinearTemperatureField/LinearTemperatureField.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Apps/TempDiffusion/tests/LinearTemperatureField/LinearTemperatureField.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/Apps/TempDiffusion/tests/LinearTemperatureField/LinearTemperatureField.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -51,13 +51,13 @@
 }
 
 
-void _LinearTemperatureField_Construct( void* analyticSolution, Stg_ComponentFactory* cf ) {
+void _LinearTemperatureField_Construct( void* analyticSolution, Stg_ComponentFactory* cf, void* data ) {
 	LinearTemperatureField *self = (LinearTemperatureField*)analyticSolution;
 	FeVariable*       temperatureField;
 
-	_AnalyticSolution_Construct( self, cf );
+	_AnalyticSolution_Construct( self, cf, data );
 
-	temperatureField = Stg_ComponentFactory_ConstructByName( cf, "TemperatureField", FeVariable, True );
+	temperatureField = Stg_ComponentFactory_ConstructByName( cf, "TemperatureField", FeVariable, True, data ); 
 
 	AnalyticSolution_CreateAnalyticField( self, temperatureField, LinearTemperatureField_TemperatureFunction );
 }

Modified: long/3D/Gale/trunk/src/StgFEM/Apps/TempDiffusion/tests/expected/testBasicTempDiffusion-Tri.0of1.expected
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Apps/TempDiffusion/tests/expected/testBasicTempDiffusion-Tri.0of1.expected	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/Apps/TempDiffusion/tests/expected/testBasicTempDiffusion-Tri.0of1.expected	2006-10-14 18:32:16 UTC (rev 5028)
@@ -1,71 +1,72 @@
-StGermain Framework revision 0. Copyright (C) 2003-2005 VPAC.
-StGermain Discretisation Library revision 0. Copyright (C) 2003-2005 VPAC.
-StGermain Finite Element Framework revision 549. Copyright (C) 2003-2005 VPAC.
-StGermain FEM Discretisation Framework revision 0. Copyright (C) 2003-2005 VPAC.
-StGermain SLE Library revision 549. Copyright (C) 2003-2005 VPAC.
-StGermain PETSc-LinearAlgebra Interface revision 0. Copyright (C) 2003-2005 VPAC.
-StGermain FEM Assembly Library revision 0. Copyright (C) 2003-2005 VPAC.
-StG_FEM revision 0. Copyright (C) 2004-2005 VPAC.
-
-Creating Stg_Components from the component-list
-
-	Instantiating MeshLayout as meshLayout
-	Instantiating IrregTopology as etopology
-	Instantiating IrregTopology as ntopology
-	Instantiating IrregGeometry as geometry
-	Instantiating CornerNL as nodeLayout
-	Instantiating IrregEL as elementLayout
-	Instantiating DummyMD as decomp-linear
-	Instantiating FiniteElement_Mesh as mesh-linear
-	Instantiating Variable as temperature
-	Instantiating CompositeVC as temperatureBCs
-	Instantiating CompositeVC as temperatureICs
-	Instantiating DofLayout as temperatureDofLayout
-	Instantiating FeVariable as TemperatureField
-	Instantiating OperatorFeVariable as TemperatureGradientsField
-	Instantiating SingleCellLayout as cellLayout
-	Instantiating GaussParticleLayout as particleLayout
-	Instantiating Swarm as gaussSwarm
-	Instantiating SolutionVector as sVector
-	Instantiating ForceVector as fVector
-	Instantiating StiffnessMatrix as kMatrix
-	Instantiating LaplacianStiffnessMatrixTerm as laplacian
-	Instantiating Energy_SLE_Solver as energySolver
-	Instantiating Energy_SLE as energySLE
-
-Constructing Stg_Components from the live-component register
-
-	Constructing meshLayout..
-		elementLayout has not been constructed yet. Constructing now.
-			Constructing elementLayout..
-				etopology has not been constructed yet. Constructing now.
-					Constructing etopology..
-				geometry has not been constructed yet. Constructing now.
-					Constructing geometry..
-		nodeLayout has not been constructed yet. Constructing now.
-			Constructing nodeLayout..
-				ntopology has not been constructed yet. Constructing now.
-					Constructing ntopology..
-		decomp-linear has not been constructed yet. Constructing now.
-			Constructing decomp-linear..
-	Constructing mesh-linear..
-	Constructing temperature..
-	Constructing temperatureBCs..
-	Constructing temperatureICs..
-	Constructing temperatureDofLayout..
-	Constructing TemperatureField..
-	Constructing TemperatureGradientsField..
-	Constructing cellLayout..
-	Constructing particleLayout..
-	Constructing gaussSwarm..
-	Constructing sVector..
-	Constructing fVector..
-	Constructing kMatrix..
-	Constructing laplacian..
-	Constructing energySolver..
-	Constructing energySLE..
-Constructing StG_FEM_PrintFeVariableDiscreteValues..
-Constructing StG_FEM_StandardConditionFunctions..
+StGermain Framework revision 3654. Copyright (C) 2003-2005 VPAC.
+StGermain Discretisation Library revision 3654. Copyright (C) 2003-2005 VPAC.
+StGermain Finite Element Framework revision 595. Copyright (C) 2003-2005 VPAC.
+StGermain FEM Discretisation Framework revision 595. Copyright (C) 2003-2005 VPAC.
+StGermain SLE Library revision 595. Copyright (C) 2003-2005 VPAC.
+StGermain PETSc-LinearAlgebra Interface revision 595. Copyright (C) 2003-2005 VPAC.
+StGermain FEM Assembly Library revision 595. Copyright (C) 2003-2005 VPAC.
+StG_FEM revision 595. Copyright (C) 2004-2005 VPAC.
+Constructing context..
+	
+	Creating Stg_Components from the component-list
+	
+		Instantiating MeshLayout as meshLayout
+		Instantiating IrregTopology as etopology
+		Instantiating IrregTopology as ntopology
+		Instantiating IrregGeometry as geometry
+		Instantiating CornerNL as nodeLayout
+		Instantiating IrregEL as elementLayout
+		Instantiating DummyMD as decomp-linear
+		Instantiating FiniteElement_Mesh as mesh-linear
+		Instantiating Variable as temperature
+		Instantiating CompositeVC as temperatureBCs
+		Instantiating CompositeVC as temperatureICs
+		Instantiating DofLayout as temperatureDofLayout
+		Instantiating FeVariable as TemperatureField
+		Instantiating OperatorFeVariable as TemperatureGradientsField
+		Instantiating SingleCellLayout as cellLayout
+		Instantiating GaussParticleLayout as particleLayout
+		Instantiating Swarm as gaussSwarm
+		Instantiating SolutionVector as sVector
+		Instantiating ForceVector as fVector
+		Instantiating StiffnessMatrix as kMatrix
+		Instantiating LaplacianStiffnessMatrixTerm as laplacian
+		Instantiating Energy_SLE_Solver as energySolver
+		Instantiating Energy_SLE as energySLE
+	
+	Constructing Stg_Components from the live-component register
+	
+		Constructing meshLayout..
+			elementLayout has not been constructed yet. Constructing now.
+				Constructing elementLayout..
+					etopology has not been constructed yet. Constructing now.
+						Constructing etopology..
+					geometry has not been constructed yet. Constructing now.
+						Constructing geometry..
+			nodeLayout has not been constructed yet. Constructing now.
+				Constructing nodeLayout..
+					ntopology has not been constructed yet. Constructing now.
+						Constructing ntopology..
+			decomp-linear has not been constructed yet. Constructing now.
+				Constructing decomp-linear..
+		Constructing mesh-linear..
+		Constructing temperature..
+		Constructing temperatureBCs..
+		Constructing temperatureICs..
+		Constructing temperatureDofLayout..
+		Constructing TemperatureField..
+		Constructing TemperatureGradientsField..
+		Constructing cellLayout..
+		Constructing particleLayout..
+		Constructing gaussSwarm..
+		Constructing sVector..
+		Constructing fVector..
+		Constructing kMatrix..
+		Constructing laplacian..
+		Constructing energySolver..
+		Constructing energySLE..
+	Constructing StG_FEM_PrintFeVariableDiscreteValues..
+	Constructing StG_FEM_StandardConditionFunctions..
 TemperatureField Values (at end of timestep 0):
 In FeVariable_PrintLocalDiscreteValues: for FeVariable "TemperatureField":
 node 0 (global index 0):
@@ -104,7 +105,7 @@
 Run until 1 timeSteps have been run
 TimeStep = 1, Start time = 0 + 0 prev timeStep dt
 Linear solver (energySLE-execute) 
-Linear solution time 0.00364113 (secs)
+Linear solution time 0.000524044 (secs)
 TemperatureField Values (at end of timestep 1):
 In FeVariable_PrintLocalDiscreteValues: for FeVariable "TemperatureField":
 node 0 (global index 0):

Modified: long/3D/Gale/trunk/src/StgFEM/Apps/ThermalConvection/tests/ColumnViscosityAnalytic/ColumnViscosityAnalytic.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Apps/ThermalConvection/tests/ColumnViscosityAnalytic/ColumnViscosityAnalytic.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/Apps/ThermalConvection/tests/ColumnViscosityAnalytic/ColumnViscosityAnalytic.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -2561,7 +2561,7 @@
 	stress[2] = 2*n*M_PI*sin(n*M_PI*y) * u4; /* xy stress */
 }
 
-void _ColumnViscosityAnalytic_Construct( void* analyticSolution, Stg_ComponentFactory* cf ) {
+void _ColumnViscosityAnalytic_Construct( void* analyticSolution, Stg_ComponentFactory* cf, void* data ) {
 	ColumnViscosityAnalytic* self = (ColumnViscosityAnalytic*)analyticSolution;
 	AbstractContext*         context;
 	ConditionFunction*       condFunc;
@@ -2570,18 +2570,18 @@
 	FeVariable*              stressField;
 
 	/* 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 ); 
 	
 	/* Create Analytic Fields */
-	velocityField = Stg_ComponentFactory_ConstructByName( cf, "VelocityField", FeVariable, True );
+	velocityField = Stg_ComponentFactory_ConstructByName( cf, "VelocityField", FeVariable, True, data ); 
 	AnalyticSolution_CreateAnalyticField( self, velocityField, ColumnViscosityAnalytic_VelocityFunction );
 
-	pressureField = Stg_ComponentFactory_ConstructByName( cf, "PressureField", FeVariable, True );
+	pressureField = Stg_ComponentFactory_ConstructByName( cf, "PressureField", FeVariable, True, data ); 
 	AnalyticSolution_CreateAnalyticField( self, pressureField, ColumnViscosityAnalytic_PressureFunction );
 
-	stressField = Stg_ComponentFactory_ConstructByName( cf, "StressField", FeVariable, False );
+	stressField = Stg_ComponentFactory_ConstructByName( cf, "StressField", FeVariable, False, data ); 
 	if ( stressField ) 
 		AnalyticSolution_CreateAnalyticField( self, stressField, ColumnViscosityAnalytic_StressFunction );
 

Modified: long/3D/Gale/trunk/src/StgFEM/Assembly/src/GradientStiffnessMatrixTerm.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Assembly/src/GradientStiffnessMatrixTerm.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/Assembly/src/GradientStiffnessMatrixTerm.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -156,11 +156,11 @@
 		name );
 }
 
-void _GradientStiffnessMatrixTerm_Construct( void* matrixTerm, Stg_ComponentFactory* cf ) {
+void _GradientStiffnessMatrixTerm_Construct( void* matrixTerm, Stg_ComponentFactory* cf, void* data ) {
 	GradientStiffnessMatrixTerm*            self             = (GradientStiffnessMatrixTerm*)matrixTerm;
 
 	/* Construct Parent */
-	_StiffnessMatrixTerm_Construct( self, cf );
+	_StiffnessMatrixTerm_Construct( self, cf, data );
 
 	_GradientStiffnessMatrixTerm_Init( self );
 }

Modified: long/3D/Gale/trunk/src/StgFEM/Assembly/src/GradientStiffnessMatrixTerm.h
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Assembly/src/GradientStiffnessMatrixTerm.h	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/Assembly/src/GradientStiffnessMatrixTerm.h	2006-10-14 18:32:16 UTC (rev 5028)
@@ -84,7 +84,7 @@
 	void _GradientStiffnessMatrixTerm_Print( void* matrixTerm, Stream* stream );
 
 	void* _GradientStiffnessMatrixTerm_DefaultNew( Name name ) ;
-	void _GradientStiffnessMatrixTerm_Construct( void* matrixTerm, Stg_ComponentFactory* cf ) ;
+void _GradientStiffnessMatrixTerm_Construct( void* matrixTerm, Stg_ComponentFactory* cf, void* data ) ;
 	void _GradientStiffnessMatrixTerm_Build( void* matrixTerm, void* data ) ;
 	void _GradientStiffnessMatrixTerm_Initialise( void* matrixTerm, void* data ) ;
 	void _GradientStiffnessMatrixTerm_Execute( void* matrixTerm, void* data ) ;

Modified: long/3D/Gale/trunk/src/StgFEM/Assembly/src/IsoviscousStressTensorTerm.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Assembly/src/IsoviscousStressTensorTerm.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/Assembly/src/IsoviscousStressTensorTerm.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -162,11 +162,11 @@
 		name );
 }
 
-void _IsoviscousStressTensorTerm_Construct( void* matrixTerm, Stg_ComponentFactory* cf ) {
+void _IsoviscousStressTensorTerm_Construct( void* matrixTerm, Stg_ComponentFactory* cf, void* data ) {
 	IsoviscousStressTensorTerm*            self             = (IsoviscousStressTensorTerm*)matrixTerm;
 
 	/* Construct Parent */
-	_StiffnessMatrixTerm_Construct( self, cf );
+	_StiffnessMatrixTerm_Construct( self, cf, data );
 
 	_IsoviscousStressTensorTerm_Init( self, Stg_ComponentFactory_GetDouble( cf, self->name, "viscosity", 1.0 ) );
 }

Modified: long/3D/Gale/trunk/src/StgFEM/Assembly/src/IsoviscousStressTensorTerm.h
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Assembly/src/IsoviscousStressTensorTerm.h	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/Assembly/src/IsoviscousStressTensorTerm.h	2006-10-14 18:32:16 UTC (rev 5028)
@@ -87,7 +87,7 @@
 	void _IsoviscousStressTensorTerm_Print( void* matrixTerm, Stream* stream );
 
 	void* _IsoviscousStressTensorTerm_DefaultNew( Name name ) ;
-	void _IsoviscousStressTensorTerm_Construct( void* matrixTerm, Stg_ComponentFactory* cf ) ;
+void _IsoviscousStressTensorTerm_Construct( void* matrixTerm, Stg_ComponentFactory* cf, void* data ) ;
 	void _IsoviscousStressTensorTerm_Build( void* matrixTerm, void* data ) ;
 	void _IsoviscousStressTensorTerm_Initialise( void* matrixTerm, void* data ) ;
 	void _IsoviscousStressTensorTerm_Execute( void* matrixTerm, void* data ) ;

Modified: long/3D/Gale/trunk/src/StgFEM/Assembly/src/LaplacianStiffnessMatrixTerm.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Assembly/src/LaplacianStiffnessMatrixTerm.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/Assembly/src/LaplacianStiffnessMatrixTerm.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -156,11 +156,11 @@
 		name );
 }
 
-void _LaplacianStiffnessMatrixTerm_Construct( void* matrixTerm, Stg_ComponentFactory* cf ) {
+void _LaplacianStiffnessMatrixTerm_Construct( void* matrixTerm, Stg_ComponentFactory* cf, void* data ) {
 	LaplacianStiffnessMatrixTerm*            self             = (LaplacianStiffnessMatrixTerm*)matrixTerm;
 
 	/* Construct Parent */
-	_StiffnessMatrixTerm_Construct( self, cf );
+	_StiffnessMatrixTerm_Construct( self, cf, data );
 
 	_LaplacianStiffnessMatrixTerm_Init( self );
 }

Modified: long/3D/Gale/trunk/src/StgFEM/Assembly/src/LaplacianStiffnessMatrixTerm.h
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Assembly/src/LaplacianStiffnessMatrixTerm.h	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/Assembly/src/LaplacianStiffnessMatrixTerm.h	2006-10-14 18:32:16 UTC (rev 5028)
@@ -84,7 +84,7 @@
 	void _LaplacianStiffnessMatrixTerm_Print( void* matrixTerm, Stream* stream );
 
 	void* _LaplacianStiffnessMatrixTerm_DefaultNew( Name name ) ;
-	void _LaplacianStiffnessMatrixTerm_Construct( void* matrixTerm, Stg_ComponentFactory* cf ) ;
+void _LaplacianStiffnessMatrixTerm_Construct( void* matrixTerm, Stg_ComponentFactory* cf, void* data ) ;
 	void _LaplacianStiffnessMatrixTerm_Build( void* matrixTerm, void* data ) ;
 	void _LaplacianStiffnessMatrixTerm_Initialise( void* matrixTerm, void* data ) ;
 	void _LaplacianStiffnessMatrixTerm_Execute( void* matrixTerm, void* data ) ;

Modified: long/3D/Gale/trunk/src/StgFEM/Assembly/src/ThermalBuoyancyForceTerm.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Assembly/src/ThermalBuoyancyForceTerm.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/Assembly/src/ThermalBuoyancyForceTerm.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -168,15 +168,15 @@
 		name );
 }
 
-void _ThermalBuoyancyForceTerm_Construct( void* forceTerm, Stg_ComponentFactory* cf ) {
+void _ThermalBuoyancyForceTerm_Construct( void* forceTerm, Stg_ComponentFactory* cf, void* data ) {
 	ThermalBuoyancyForceTerm*            self             = (ThermalBuoyancyForceTerm*)forceTerm;
 	FeVariable*                 temperatureField;
 	double                      rayleighNumber;
 
 	/* Construct Parent */
-	_ForceTerm_Construct( self, cf );
+	_ForceTerm_Construct( self, cf, data );
 
-	temperatureField = Stg_ComponentFactory_ConstructByKey( cf, self->name, "TemperatureField", FeVariable, True ) ;
+	temperatureField = Stg_ComponentFactory_ConstructByKey( cf, self->name, "TemperatureField", FeVariable, True, data ) ;
 	rayleighNumber   = Stg_ComponentFactory_GetDouble( cf, self->name, "Ra", 0.0 );
 
 	_ThermalBuoyancyForceTerm_Init( self, temperatureField, rayleighNumber );

Modified: long/3D/Gale/trunk/src/StgFEM/Assembly/src/ThermalBuoyancyForceTerm.h
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Assembly/src/ThermalBuoyancyForceTerm.h	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/Assembly/src/ThermalBuoyancyForceTerm.h	2006-10-14 18:32:16 UTC (rev 5028)
@@ -90,7 +90,7 @@
 	void _ThermalBuoyancyForceTerm_Print( void* residual, Stream* stream );
 
 	void* _ThermalBuoyancyForceTerm_DefaultNew( Name name ) ;
-	void _ThermalBuoyancyForceTerm_Construct( void* residual, Stg_ComponentFactory* cf ) ;
+void _ThermalBuoyancyForceTerm_Construct( void* residual, Stg_ComponentFactory* cf, void* data ) ;
 	void _ThermalBuoyancyForceTerm_Build( void* residual, void* data ) ;
 	void _ThermalBuoyancyForceTerm_Initialise( void* residual, void* data ) ;
 	void _ThermalBuoyancyForceTerm_Execute( void* residual, void* data ) ;

Modified: long/3D/Gale/trunk/src/StgFEM/Assembly/tests/plugins/testStiffnessMatrixCompare.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Assembly/tests/plugins/testStiffnessMatrixCompare.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/Assembly/tests/plugins/testStiffnessMatrixCompare.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -101,9 +101,13 @@
 	Stream_CloseFile( stream );
 }
 
-void _testStiffnessMatrixCompare_Construct( void* component, Stg_ComponentFactory* cf ) {
-	AbstractContext* context = (AbstractContext*)Stg_ComponentFactory_ConstructByName( cf, "context",
-		AbstractContext, True );
+void _testStiffnessMatrixCompare_Construct( void* component, Stg_ComponentFactory* cf, void* data ) {
+	AbstractContext* context = (AbstractContext*)Stg_ComponentFactory_ConstructByName( 
+		cf, 
+		"context",
+		AbstractContext, 
+		True,
+		data );
 
 	ContextEP_Append( context, AbstractContext_EP_Solve, testStiffnessMatrixCompareFunction );
 }

Modified: long/3D/Gale/trunk/src/StgFEM/Assembly/tests/plugins/testStressTensor.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Assembly/tests/plugins/testStressTensor.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/Assembly/tests/plugins/testStressTensor.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -60,9 +60,13 @@
 	StiffnessMatrix_Assemble( kMatrix, False, NULL );
 }
 
-void _testStressTensor_Construct( void* component, Stg_ComponentFactory* cf ) {
-	AbstractContext* context = (AbstractContext*)Stg_ComponentFactory_ConstructByName( cf, "context",
-		AbstractContext, True );
+void _testStressTensor_Construct( void* component, Stg_ComponentFactory* cf, void* data ) {
+	AbstractContext* context = (AbstractContext*)Stg_ComponentFactory_ConstructByName( 
+		cf, 
+		"context", 
+		AbstractContext, 
+		True, 
+		data );
 	
 	ContextEP_ReplaceAll( context, AbstractContext_EP_Solve, testStressTensorFunction );
 }

Modified: long/3D/Gale/trunk/src/StgFEM/Discretisation/src/AnalyticSolution.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Discretisation/src/AnalyticSolution.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/Discretisation/src/AnalyticSolution.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -163,15 +163,15 @@
 	return NULL;
 }
 
-void _AnalyticSolution_Construct( void* analyticSolution, Stg_ComponentFactory* cf )
+void _AnalyticSolution_Construct( void* analyticSolution, Stg_ComponentFactory* cf, void* data ) 
 {
 	AnalyticSolution* self = (AnalyticSolution*)analyticSolution;
 	AbstractContext*  context;
 	Swarm*            integrationSwarm;
 	Bool              verboseMode;
 
-	context = Stg_ComponentFactory_ConstructByName( cf, "context", AbstractContext, True );
-	integrationSwarm = Stg_ComponentFactory_ConstructByName( cf, "gaussSwarm", Swarm, True );
+	context = Stg_ComponentFactory_ConstructByName( cf, "context", AbstractContext, True, data ); 
+	integrationSwarm = Stg_ComponentFactory_ConstructByName( cf, "gaussSwarm", Swarm, True, data ); 
 	verboseMode = Stg_ComponentFactory_GetRootDictBool( cf, "analyticSolutionVerbose", False );
 
 	_AnalyticSolution_Init( self, integrationSwarm, cf->LCRegister, context, verboseMode );

Modified: long/3D/Gale/trunk/src/StgFEM/Discretisation/src/AnalyticSolution.h
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Discretisation/src/AnalyticSolution.h	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/Discretisation/src/AnalyticSolution.h	2006-10-14 18:32:16 UTC (rev 5028)
@@ -117,7 +117,7 @@
 	void _AnalyticSolution_Build( void* analyticSolution, void* data );
 	
 	/* Construct implementation */
-	void _AnalyticSolution_Construct( void* analyticSolution, Stg_ComponentFactory* cf );
+	void _AnalyticSolution_Construct( void* analyticSolution, Stg_ComponentFactory* cf, void* data );
 	
 	/* Initialisation implementation */
 	void _AnalyticSolution_Initialise( void* analyticSolution, void* data );

Modified: long/3D/Gale/trunk/src/StgFEM/Discretisation/src/BilinearElementType.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Discretisation/src/BilinearElementType.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/Discretisation/src/BilinearElementType.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -181,7 +181,7 @@
 	Journal_Printf( stream, ")\n", self );
 }
 
-void _BilinearElementType_Construct( void* elementType, Stg_ComponentFactory *cf ){
+void _BilinearElementType_Construct( void* elementType, Stg_ComponentFactory *cf, void* data ){
 	
 }
 	

Modified: long/3D/Gale/trunk/src/StgFEM/Discretisation/src/BilinearElementType.h
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Discretisation/src/BilinearElementType.h	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/Discretisation/src/BilinearElementType.h	2006-10-14 18:32:16 UTC (rev 5028)
@@ -103,7 +103,7 @@
 	void _BilinearElementType_Print( void* elementType, Stream* stream );
 	
 	/* Bilinear element type build implementation */
-	void _BilinearElementType_Construct( void* elementType, Stg_ComponentFactory *cf );
+	void _BilinearElementType_Construct( void* elementType, Stg_ComponentFactory *cf, void* data );
 	
 	void _BilinearElementType_Build( void* elementType, void* data );
 	

Modified: long/3D/Gale/trunk/src/StgFEM/Discretisation/src/ConstantElementType.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Discretisation/src/ConstantElementType.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/Discretisation/src/ConstantElementType.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -168,7 +168,7 @@
 	/* ConstantElementType info */
 }
 
-void _ConstantElementType_Construct( void* elementType, Stg_ComponentFactory *cf ){
+void _ConstantElementType_Construct( void* elementType, Stg_ComponentFactory *cf, void* data ){
 	
 }
 	

Modified: long/3D/Gale/trunk/src/StgFEM/Discretisation/src/ConstantElementType.h
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Discretisation/src/ConstantElementType.h	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/Discretisation/src/ConstantElementType.h	2006-10-14 18:32:16 UTC (rev 5028)
@@ -101,7 +101,7 @@
 	
 	/** Constant element type build implementation */
 	
-	void _ConstantElementType_Construct( void* elementType, Stg_ComponentFactory *cf );
+	void _ConstantElementType_Construct( void* elementType, Stg_ComponentFactory *cf, void* data );
 	
 	void _ConstantElementType_Build( void* elementType, void *data );
 	

Modified: long/3D/Gale/trunk/src/StgFEM/Discretisation/src/ElementType_Register.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Discretisation/src/ElementType_Register.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/Discretisation/src/ElementType_Register.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -212,7 +212,7 @@
 	Journal_Printf( stream, "\t]\n" );
 }
 
-void _ElementType_Register_Construct( void* elementType_Register, Stg_ComponentFactory *cf ){
+void _ElementType_Register_Construct( void* elementType_Register, Stg_ComponentFactory *cf, void* data ){
 	
 }
 	

Modified: long/3D/Gale/trunk/src/StgFEM/Discretisation/src/ElementType_Register.h
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Discretisation/src/ElementType_Register.h	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/Discretisation/src/ElementType_Register.h	2006-10-14 18:32:16 UTC (rev 5028)
@@ -106,7 +106,7 @@
 	/* Print implementation */
 	void _ElementType_Register_Print( void* elementType_Register, Stream* stream );
 	
-	void _ElementType_Register_Construct( void* elementType_Register, Stg_ComponentFactory *cf );
+	void _ElementType_Register_Construct( void* elementType_Register, Stg_ComponentFactory *cf, void* data );
 	
 	void _ElementType_Register_Build( void* elementType_Register, void *data );
 	

Modified: long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeEquationNumber.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeEquationNumber.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeEquationNumber.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -279,7 +279,7 @@
 	self->bcEqNums = NULL;
 }
 
-void _FeEquationNumber_Construct( void* feEquationNumber, Stg_ComponentFactory *cf ){
+void _FeEquationNumber_Construct( void* feEquationNumber, Stg_ComponentFactory *cf, void* data ){
 	
 }
 	

Modified: long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeEquationNumber.h
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeEquationNumber.h	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeEquationNumber.h	2006-10-14 18:32:16 UTC (rev 5028)
@@ -196,7 +196,7 @@
 	/** Print implementation */
 	void _FeEquationNumber_Print( void* feEquationNumber, Stream* stream );
 	
-	void _FeEquationNumber_Construct( void* feEquationNumber, Stg_ComponentFactory *cf );
+	void _FeEquationNumber_Construct( void* feEquationNumber, Stg_ComponentFactory *cf, void* data );
 	
 	void _FeEquationNumber_Execute( void* feEquationNumber, void *data );
 	

Modified: long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeSwarmVariable.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeSwarmVariable.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeSwarmVariable.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -143,14 +143,14 @@
 			name );
 }
 
-void _FeSwarmVariable_Construct( void* swarmVariable, Stg_ComponentFactory* cf ) {
+void _FeSwarmVariable_Construct( void* swarmVariable, Stg_ComponentFactory* cf, void* data ) {
 	FeSwarmVariable*        self       = (FeSwarmVariable*) swarmVariable;
 
-	_SwarmVariable_Construct( self, cf );
+	_SwarmVariable_Construct( self, cf, data );
 
 	_FeSwarmVariable_Init( 
-			self, 
-			 Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  "FeVariable", FeVariable,  True )  ) ;
+		self, 
+		Stg_ComponentFactory_ConstructByKey( cf, self->name, "FeVariable", FeVariable, True, data ) ) ;
 }
 
 void _FeSwarmVariable_Build( void* swarmVariable, void* data ) {

Modified: long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeSwarmVariable.h
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeSwarmVariable.h	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeSwarmVariable.h	2006-10-14 18:32:16 UTC (rev 5028)
@@ -88,7 +88,7 @@
 	
 	/* 'Stg_Component' Virtual Implementations */
 	void* _FeSwarmVariable_DefaultNew( Name name );
-	void _FeSwarmVariable_Construct( void* swarmVariable, Stg_ComponentFactory* cf ) ;
+void _FeSwarmVariable_Construct( void* swarmVariable, Stg_ComponentFactory* cf, void* data ) ;
 	void _FeSwarmVariable_Build( void* swarmVariable, void* data ) ;
 	void _FeSwarmVariable_Execute( void* variable, void* data ) ;
 	void _FeSwarmVariable_Destroy( void* variable, void* data ) ;

Modified: long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeVariable.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeVariable.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeVariable.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -541,7 +541,7 @@
 	}
 }
 
-void _FeVariable_Construct( void* variable, Stg_ComponentFactory* cf )
+void _FeVariable_Construct( void* variable, Stg_ComponentFactory* cf, void* data ) 
 {
 	FeVariable*         self          = (FeVariable*)variable;
 	FiniteElement_Mesh* feMesh        = NULL;
@@ -553,20 +553,20 @@
 	char*               importFormatType = NULL;
 	char*               exportFormatType = NULL;
 
-	_FieldVariable_Construct( self, cf );
+	_FieldVariable_Construct( self, cf, data );
 
-	feMesh       = Stg_ComponentFactory_ConstructByKey( cf, self->name, "FEMesh", FiniteElement_Mesh, True ) ;
-	geometryMesh = Stg_ComponentFactory_ConstructByKey( cf, self->name, "GeometryMesh", FiniteElement_Mesh, False ) ;
-	dofLayout    = Stg_ComponentFactory_ConstructByKey( cf, self->name, DofLayout_Type, DofLayout, True ) ;
-	
-	ic =  Stg_ComponentFactory_ConstructByKey( cf, self->name, "IC", VariableCondition, False ) ;
-	bc =  Stg_ComponentFactory_ConstructByKey( cf, self->name, "BC", VariableCondition, False ) ;
-	linkedDofInfo =  Stg_ComponentFactory_ConstructByKey( cf, self->name,  "LinkedDofInfo", LinkedDofInfo, False );
+	feMesh        = Stg_ComponentFactory_ConstructByKey( cf, self->name, "FEMesh",        FiniteElement_Mesh, True, data );
+	geometryMesh  = Stg_ComponentFactory_ConstructByKey( cf, self->name, "GeometryMesh",  FiniteElement_Mesh, False, data );
+	dofLayout     = Stg_ComponentFactory_ConstructByKey( cf, self->name, DofLayout_Type,  DofLayout,          True, data );
 	importFormatType =  Stg_ComponentFactory_GetString( cf, self->name, "importFormatType",
 		StgFEM_Native_ImportExportType );
 	exportFormatType =  Stg_ComponentFactory_GetString( cf, self->name, "exportFormatType",
 		StgFEM_Native_ImportExportType );
 
+	ic            = Stg_ComponentFactory_ConstructByKey( cf, self->name, "IC",            VariableCondition,  False, data );
+	bc            = Stg_ComponentFactory_ConstructByKey( cf, self->name, "BC",            VariableCondition,  False, data );
+	linkedDofInfo = Stg_ComponentFactory_ConstructByKey( cf, self->name, "LinkedDofInfo", LinkedDofInfo,      False, data );
+
 	self->fieldComponentCount = dofLayout->_totalVarCount;
 
 	_FeVariable_Init( self, feMesh, geometryMesh, dofLayout, bc, ic, linkedDofInfo, NULL,

Modified: long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeVariable.h
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeVariable.h	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/Discretisation/src/FeVariable.h	2006-10-14 18:32:16 UTC (rev 5028)
@@ -251,7 +251,7 @@
 	void _FeVariable_Build( void* variable, void* data );
 	
 	/** Stg_Component_Construct() implementation */
-	void _FeVariable_Construct( void* variable, Stg_ComponentFactory* cf );
+	void _FeVariable_Construct( void* variable, Stg_ComponentFactory* cf, void* data );
 	
 	/** Stg_Component_Initialise() implementation */
 	void _FeVariable_Initialise( void* variable, void* data );

Modified: long/3D/Gale/trunk/src/StgFEM/Discretisation/src/LinearTriangleElementType.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Discretisation/src/LinearTriangleElementType.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/Discretisation/src/LinearTriangleElementType.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -145,7 +145,7 @@
 	/* LinearTriangleElementType info */
 }
 
-void _LinearTriangleElementType_Construct( void* elementType, Stg_ComponentFactory *cf ){
+void _LinearTriangleElementType_Construct( void* elementType, Stg_ComponentFactory *cf, void* data ){
 	
 }
 	

Modified: long/3D/Gale/trunk/src/StgFEM/Discretisation/src/LinearTriangleElementType.h
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Discretisation/src/LinearTriangleElementType.h	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/Discretisation/src/LinearTriangleElementType.h	2006-10-14 18:32:16 UTC (rev 5028)
@@ -100,7 +100,7 @@
 	/* Print the contents of an LinearTriangleElementType construct */
 	void _LinearTriangleElementType_Print( void* elementType, Stream* stream );
 	
-	void _LinearTriangleElementType_Construct( void* elementType, Stg_ComponentFactory *cf );
+	void _LinearTriangleElementType_Construct( void* elementType, Stg_ComponentFactory *cf, void* data );
 	
 	/* LinearTriangle element type build implementation */
 	void _LinearTriangleElementType_Build( void* elementType, void *data );

Modified: long/3D/Gale/trunk/src/StgFEM/Discretisation/src/LinkedDofInfo.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Discretisation/src/LinkedDofInfo.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/Discretisation/src/LinkedDofInfo.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -186,7 +186,7 @@
 	Stream_UnIndent( stream );
 }
 
-void _LinkedDofInfo_Construct( void* linkedDofInfo, Stg_ComponentFactory *cf ){
+void _LinkedDofInfo_Construct( void* linkedDofInfo, Stg_ComponentFactory *cf, void* data ){
 	LinkedDofInfo*	self = (LinkedDofInfo*)linkedDofInfo;
 	Dictionary* dictionary;
 	Mesh*		mesh = NULL;
@@ -194,9 +194,9 @@
 
 	dictionary = Dictionary_GetDictionary( cf->componentDict, self->name );
 	
-	mesh =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  "Mesh", Mesh,  True  ) ;
-	dofLayout =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  DofLayout_Type, DofLayout,  True  ) ;
-	
+	mesh      = Stg_ComponentFactory_ConstructByKey( cf, self->name, "Mesh",         Mesh,      True, data );
+	dofLayout = Stg_ComponentFactory_ConstructByKey( cf, self->name, DofLayout_Type, DofLayout, True, data );
+
 	_LinkedDofInfo_Init( self, mesh, dofLayout, dictionary ); 
 }
 	
@@ -385,7 +385,7 @@
 					LinkedDofInfo_AddDofSet( linkedDofInfo );
 				}
 				
-				shape =  Stg_ComponentFactory_ConstructByName(  context->CF,  shapeStr, Stg_Shape,  True  ) ;
+	shape = Stg_ComponentFactory_ConstructByName( context->CF, shapeStr, Stg_Shape, True, data ) ;
 				
 				for ( lNode_I = 0; lNode_I < self->mesh->nodeLocalCount; lNode_I++ ) {
 					if ( Stg_Shape_IsCoordInside( shape, self->mesh->nodeCoord[lNode_I] ) ) {

Modified: long/3D/Gale/trunk/src/StgFEM/Discretisation/src/LinkedDofInfo.h
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Discretisation/src/LinkedDofInfo.h	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/Discretisation/src/LinkedDofInfo.h	2006-10-14 18:32:16 UTC (rev 5028)
@@ -120,7 +120,7 @@
 	/** Print implementation */
 	void _LinkedDofInfo_Print( void* linkedDofInfo, Stream* stream );
 	
-	void _LinkedDofInfo_Construct( void* linkedDofInfo, Stg_ComponentFactory *cf );
+	void _LinkedDofInfo_Construct( void* linkedDofInfo, Stg_ComponentFactory *cf, void* data );
 	
 	void _LinkedDofInfo_Execute( void* linkedDofInfo, void *data );
 	

Modified: long/3D/Gale/trunk/src/StgFEM/Discretisation/src/Mesh.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Discretisation/src/Mesh.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/Discretisation/src/Mesh.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -289,12 +289,12 @@
 	return (void*)newFeMesh;
 }
 
-void _FiniteElement_Mesh_Construct( void* feMesh, Stg_ComponentFactory* cf )
+void _FiniteElement_Mesh_Construct( void* feMesh, Stg_ComponentFactory* cf, void* data ) 
 {
 	FiniteElement_Mesh *self = (FiniteElement_Mesh*)feMesh;
 	void *elementType_Register = NULL;
 
-	_Mesh_Construct( self, cf );
+	_Mesh_Construct( self, cf, data );
 	
 	elementType_Register = Stg_ObjectList_Get( cf->registerRegister, "ElementType_Register" );
 	assert( elementType_Register );

Modified: long/3D/Gale/trunk/src/StgFEM/Discretisation/src/Mesh.h
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Discretisation/src/Mesh.h	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/Discretisation/src/Mesh.h	2006-10-14 18:32:16 UTC (rev 5028)
@@ -158,7 +158,7 @@
 	void _FiniteElement_Mesh_Build( void* feMesh, void* data );
 	
 	/* Construct implementation */
-	void _FiniteElement_Mesh_Construct( void* feMesh, Stg_ComponentFactory* cf );
+	void _FiniteElement_Mesh_Construct( void* feMesh, Stg_ComponentFactory* cf, void* data );
 	
 	/* Initialisation implementation */
 	void _FiniteElement_Mesh_Initialise( void* feMesh, void* data );

Modified: long/3D/Gale/trunk/src/StgFEM/Discretisation/src/OperatorFeVariable.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Discretisation/src/OperatorFeVariable.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/Discretisation/src/OperatorFeVariable.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -356,7 +356,7 @@
 	return (void*)newOperatorFeVariable;
 }
 
-void _OperatorFeVariable_Construct( void* feVariable, Stg_ComponentFactory* cf ) {
+void _OperatorFeVariable_Construct( void* feVariable, Stg_ComponentFactory* cf, void* data ) {
 	OperatorFeVariable*     self       = (OperatorFeVariable*) feVariable;
 	Dictionary*             dictionary = Dictionary_GetDictionary( cf->componentDict, self->name );
 	Dictionary_Entry_Value* list;
@@ -368,7 +368,7 @@
 	FeVariable**            feVariableList;
 	
 	/* Construct Parent */
-	_FieldVariable_Construct( self, cf );
+	_FieldVariable_Construct( self, cf, data );
 
 	operatorName = Stg_ComponentFactory_GetString( cf, self->name, "Operator", "" );
 
@@ -389,7 +389,7 @@
 		
 		if ( !feVariableList[feVariable_I] )
 			feVariableList[feVariable_I] = 
-				Stg_ComponentFactory_ConstructByName( cf, feVariableName, FeVariable, True );
+	Stg_ComponentFactory_ConstructByName( cf, feVariableName, FeVariable, True, data ); 
 		
 	}
 

Modified: long/3D/Gale/trunk/src/StgFEM/Discretisation/src/OperatorFeVariable.h
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Discretisation/src/OperatorFeVariable.h	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/Discretisation/src/OperatorFeVariable.h	2006-10-14 18:32:16 UTC (rev 5028)
@@ -152,7 +152,7 @@
 	void* _OperatorFeVariable_Copy( void* feVariable, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap ) ;
 	
 	/* 'Stg_Component' Virtual Implementations */
-	void _OperatorFeVariable_Construct( void* feVariable, Stg_ComponentFactory* cf ) ;
+void _OperatorFeVariable_Construct( void* feVariable, Stg_ComponentFactory* cf, void* data ) ;
 	void _OperatorFeVariable_Build( void* feVariable, void* data ) ;
 	void _OperatorFeVariable_Execute( void* variable, void* data ) ;
 	void _OperatorFeVariable_Destroy( void* variable, void* data ) ;

Modified: long/3D/Gale/trunk/src/StgFEM/Discretisation/src/ShapeFeVariable.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Discretisation/src/ShapeFeVariable.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/Discretisation/src/ShapeFeVariable.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -192,14 +192,14 @@
 	return (void*)newShapeFeVariable;
 }
 
-void _ShapeFeVariable_Construct( void* shapeFeVariable, Stg_ComponentFactory* cf ) {
+void _ShapeFeVariable_Construct( void* shapeFeVariable, Stg_ComponentFactory* cf, void* data ) {
 	ShapeFeVariable*        self       = (ShapeFeVariable*) shapeFeVariable;
 
-	_FeVariable_Construct( self, cf );
+	_FeVariable_Construct( self, cf, data );
 
 	_ShapeFeVariable_Init( 
 		self, 
-		Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  "Shape", Stg_Shape,  True )  ) ;
+		Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  "Shape", Stg_Shape,  True, data )  ) ;
 }
 
 void _ShapeFeVariable_Build( void* shapeFeVariable, void* data ) {

Modified: long/3D/Gale/trunk/src/StgFEM/Discretisation/src/ShapeFeVariable.h
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Discretisation/src/ShapeFeVariable.h	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/Discretisation/src/ShapeFeVariable.h	2006-10-14 18:32:16 UTC (rev 5028)
@@ -103,7 +103,7 @@
 	void* _ShapeFeVariable_Copy( void* swarmVariable, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap ) ;
 	
 	/* 'Stg_Component' Virtual Implementations */
-	void _ShapeFeVariable_Construct( void* swarmVariable, Stg_ComponentFactory* cf ) ;
+	void _ShapeFeVariable_Construct( void* swarmVariable, Stg_ComponentFactory* cf, void* data ) ;
 	void _ShapeFeVariable_Build( void* swarmVariable, void* data ) ;
 	void _ShapeFeVariable_Execute( void* variable, void* data ) ;
 	void _ShapeFeVariable_Destroy( void* variable, void* data ) ;

Modified: long/3D/Gale/trunk/src/StgFEM/Discretisation/src/TrilinearElementType.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Discretisation/src/TrilinearElementType.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/Discretisation/src/TrilinearElementType.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -154,7 +154,7 @@
 	/* TrilinearElementType info */
 }
 
-void _TrilinearElementType_Construct( void* elementType, Stg_ComponentFactory *cf ){
+void _TrilinearElementType_Construct( void* elementType, Stg_ComponentFactory *cf, void* data ){
 	
 }
 	

Modified: long/3D/Gale/trunk/src/StgFEM/Discretisation/src/TrilinearElementType.h
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Discretisation/src/TrilinearElementType.h	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/Discretisation/src/TrilinearElementType.h	2006-10-14 18:32:16 UTC (rev 5028)
@@ -103,7 +103,7 @@
 	void _TrilinearElementType_Print( void* elementType, Stream* stream );
 	
 	/* Trilinear element type build implementation */
-	void _TrilinearElementType_Construct( void* elementType, Stg_ComponentFactory *cf );
+	void _TrilinearElementType_Construct( void* elementType, Stg_ComponentFactory *cf, void* data );
 	
 	void _TrilinearElementType_Build( void* elementType, void *data );
 	

Modified: long/3D/Gale/trunk/src/StgFEM/Discretisation/tests/testFeEquationNumber-LinkedDofs.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/Discretisation/tests/testFeEquationNumber-LinkedDofs.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/Discretisation/tests/testFeEquationNumber-LinkedDofs.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -145,7 +145,7 @@
 	LiveComponentRegister_Add( context->CF->LCRegister, (Stg_Component*) context );
 	
 	Stg_ComponentFactory_CreateComponents( context->CF );
-	Stg_ComponentFactory_ConstructComponents( context->CF );
+	Stg_ComponentFactory_ConstructComponents( context->CF, 0 /* dummy */ );
 
 	/* Make sure print statements come in order */
 	MPI_Barrier( CommWorld );

Modified: long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/AdvectionDiffusion/src/AdvectionDiffusionSLE.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/AdvectionDiffusion/src/AdvectionDiffusionSLE.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/AdvectionDiffusion/src/AdvectionDiffusionSLE.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -344,7 +344,7 @@
 		name );
 }
 
-void _AdvectionDiffusionSLE_Construct( void* sle, Stg_ComponentFactory* cf ) {
+void _AdvectionDiffusionSLE_Construct( void* sle, Stg_ComponentFactory* cf, void* data ) {
 	AdvectionDiffusionSLE*            self                   = (AdvectionDiffusionSLE*) sle;
 	Stream*                           error                  = Journal_Register( Error_Type, self->type );
 	FeVariable*                       phiField;
@@ -356,7 +356,7 @@
 	Variable_Register*                variable_Register;
 
 	/* Construct Parent */
-	_SystemLinearEquations_Construct( self, cf );
+	_SystemLinearEquations_Construct( self, cf, data );
 
 	/* Get Registers */
 	variable_Register = Stg_ObjectList_Get( cf->registerRegister, "Variable_Register" );
@@ -365,9 +365,9 @@
 	assert( fieldVariable_Register );
 
 	/* Get Dependency Stg_Components */
-	phiField   =  Stg_ComponentFactory_ConstructByKey( cf, self->name, "PhiField", FeVariable,  True  ) ;
-	residual   =  Stg_ComponentFactory_ConstructByKey( cf, self->name, "Residual", ForceVector,  True  ) ;
-	massMatrix =  Stg_ComponentFactory_ConstructByKey( cf, self->name, "MassMatrix", Stg_Component, True  ) ;
+	phiField   =  Stg_ComponentFactory_ConstructByKey( cf, self->name, "PhiField",   FeVariable,    True, data );
+	residual   =  Stg_ComponentFactory_ConstructByKey( cf, self->name, "Residual",   ForceVector,   True, data );
+	massMatrix =  Stg_ComponentFactory_ConstructByKey( cf, self->name, "MassMatrix", Stg_Component, True, data );
 
 	dim = Stg_ComponentFactory_GetRootDictUnsignedInt( cf, "dim", 0 );
 

Modified: long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/AdvectionDiffusion/src/AdvectionDiffusionSLE.h
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/AdvectionDiffusion/src/AdvectionDiffusionSLE.h	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/AdvectionDiffusion/src/AdvectionDiffusionSLE.h	2006-10-14 18:32:16 UTC (rev 5028)
@@ -137,7 +137,7 @@
 
 	/** Virtual Functions from "Stg_Component" Class */
 	void* _AdvectionDiffusionSLE_DefaultNew( Name name ) ;
-	void _AdvectionDiffusionSLE_Construct( void* sle, Stg_ComponentFactory* cf ) ;
+	void _AdvectionDiffusionSLE_Construct( void* sle, Stg_ComponentFactory* cf, void* data ) ;
 	void _AdvectionDiffusionSLE_Build( void* sle, void* data ) ;
 	void _AdvectionDiffusionSLE_Initialise( void* sle, void* data ) ;
 	void _AdvectionDiffusionSLE_Execute( void* sle, void* _context ) ;

Modified: long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/AdvectionDiffusion/src/LumpedMassMatrixForceTerm.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/AdvectionDiffusion/src/LumpedMassMatrixForceTerm.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/AdvectionDiffusion/src/LumpedMassMatrixForceTerm.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -155,11 +155,11 @@
 		name );
 }
 
-void _LumpedMassMatrixForceTerm_Construct( void* forceTerm, Stg_ComponentFactory* cf ) {
+void _LumpedMassMatrixForceTerm_Construct( void* forceTerm, Stg_ComponentFactory* cf, void* data ) {
 	LumpedMassMatrixForceTerm*            self             = (LumpedMassMatrixForceTerm*)forceTerm;
 
 	/* Construct Parent */
-	_ForceTerm_Construct( self, cf );
+	_ForceTerm_Construct( self, cf, data );
 
 	_LumpedMassMatrixForceTerm_Init( self );
 }

Modified: long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/AdvectionDiffusion/src/LumpedMassMatrixForceTerm.h
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/AdvectionDiffusion/src/LumpedMassMatrixForceTerm.h	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/AdvectionDiffusion/src/LumpedMassMatrixForceTerm.h	2006-10-14 18:32:16 UTC (rev 5028)
@@ -84,7 +84,7 @@
 	void _LumpedMassMatrixForceTerm_Print( void* residual, Stream* stream );
 
 	void* _LumpedMassMatrixForceTerm_DefaultNew( Name name ) ;
-	void _LumpedMassMatrixForceTerm_Construct( void* residual, Stg_ComponentFactory* cf ) ;
+void _LumpedMassMatrixForceTerm_Construct( void* residual, Stg_ComponentFactory* cf, void* data ) ;
 	void _LumpedMassMatrixForceTerm_Build( void* residual, void* data ) ;
 	void _LumpedMassMatrixForceTerm_Initialise( void* residual, void* data ) ;
 	void _LumpedMassMatrixForceTerm_Execute( void* residual, void* data ) ;

Modified: long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/AdvectionDiffusion/src/Multicorrector.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/AdvectionDiffusion/src/Multicorrector.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/AdvectionDiffusion/src/Multicorrector.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -171,13 +171,13 @@
 		name );
 }
 
-void _AdvDiffMulticorrector_Construct( void* solver, Stg_ComponentFactory* cf ) {
+void _AdvDiffMulticorrector_Construct( void* solver, Stg_ComponentFactory* cf, void* data ) {
 	AdvDiffMulticorrector*                     self             = (AdvDiffMulticorrector*)solver;
 	double                                     gamma;
 	Iteration_Index                            multiCorrectorIterations;
 
 	/* Construct Parent */
-	_SLE_Solver_Construct( self, cf );
+	_SLE_Solver_Construct( self, cf, data );
 
 	gamma = Stg_ComponentFactory_GetDouble( cf, self->name, "gamma", 0.5 );
 	multiCorrectorIterations = Stg_ComponentFactory_GetUnsignedInt( cf, self->name, "multiCorrectorIterations", 2 );

Modified: long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/AdvectionDiffusion/src/Multicorrector.h
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/AdvectionDiffusion/src/Multicorrector.h	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/AdvectionDiffusion/src/Multicorrector.h	2006-10-14 18:32:16 UTC (rev 5028)
@@ -96,7 +96,7 @@
 	void _AdvDiffMulticorrector_Print( void* solver, Stream* stream );
 
 	void* _AdvDiffMulticorrector_DefaultNew( Name name ) ;
-	void _AdvDiffMulticorrector_Construct( void* solver, Stg_ComponentFactory* cf ) ;
+void _AdvDiffMulticorrector_Construct( void* solver, Stg_ComponentFactory* cf, void* data ) ;
 	void _AdvDiffMulticorrector_Build( void* solver, void* data ) ;
 	void _AdvDiffMulticorrector_Initialise( void* solver, void* data ) ;
 	void _AdvDiffMulticorrector_Execute( void* solver, void* data ) ;

Modified: long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/AdvectionDiffusion/src/Residual.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/AdvectionDiffusion/src/Residual.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/AdvectionDiffusion/src/Residual.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -201,7 +201,7 @@
 		name );
 }
 
-void _AdvDiffResidualForceTerm_Construct( void* residual, Stg_ComponentFactory* cf ) {
+void _AdvDiffResidualForceTerm_Construct( void* residual, Stg_ComponentFactory* cf, void* data ) {
 	AdvDiffResidualForceTerm*            self             = (AdvDiffResidualForceTerm*)residual;
 	FeVariable*                          velocityField;
 	Variable*                            diffusivityVariable;
@@ -210,11 +210,12 @@
 	AdvDiffResidualForceTerm_UpwindParamFuncType  upwindFuncType       = 0;
 
 	/* Construct Parent */
-	_ForceTerm_Construct( self, cf );
+	_ForceTerm_Construct( self, cf, data );
 
-	velocityField       =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  "VelocityField", FeVariable,        True  ) ;
-	diffusivityVariable =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  "DiffusivityVariable", Variable,  False  ) ;
+	velocityField       = Stg_ComponentFactory_ConstructByKey( cf, self->name, "VelocityField",       FeVariable, True,  data );
+	diffusivityVariable = Stg_ComponentFactory_ConstructByKey( cf, self->name, "DiffusivityVariable", Variable,   False, data );
 
+
 	upwindParamFuncName = Stg_ComponentFactory_GetString( cf, self->name, "UpwindXiFunction", "Exact" );
 	if ( strcasecmp( upwindParamFuncName, "DoublyAsymptoticAssumption" ) == 0 )
 		upwindFuncType = DoublyAsymptoticAssumption;

Modified: long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/AdvectionDiffusion/src/Residual.h
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/AdvectionDiffusion/src/Residual.h	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/AdvectionDiffusion/src/Residual.h	2006-10-14 18:32:16 UTC (rev 5028)
@@ -104,7 +104,7 @@
 	void _AdvDiffResidualForceTerm_Print( void* residual, Stream* stream );
 
 	void* _AdvDiffResidualForceTerm_DefaultNew( Name name ) ;
-	void _AdvDiffResidualForceTerm_Construct( void* residual, Stg_ComponentFactory* cf ) ;
+void _AdvDiffResidualForceTerm_Construct( void* residual, Stg_ComponentFactory* cf, void* data ) ;
 	void _AdvDiffResidualForceTerm_Build( void* residual, void* data ) ;
 	void _AdvDiffResidualForceTerm_Initialise( void* residual, void* data ) ;
 	void _AdvDiffResidualForceTerm_Execute( void* residual, void* data ) ;

Modified: long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/Energy/src/Energy_SLE.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/Energy/src/Energy_SLE.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/Energy/src/Energy_SLE.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -218,18 +218,18 @@
 		name );
 }
 
-void _Energy_SLE_Construct( void* sle, Stg_ComponentFactory* cf ){
+void _Energy_SLE_Construct( void* sle, Stg_ComponentFactory* cf, void* data ){
 	Energy_SLE*      self = (Energy_SLE*)sle;
 	StiffnessMatrix* stiffMat;
 	SolutionVector*  solutionVec;
 	ForceVector*     fVector;
 
 	/* Construct Parent */
-	_SystemLinearEquations_Construct( self, cf );
+	_SystemLinearEquations_Construct( self, cf, data );
 
-	stiffMat    =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  StiffnessMatrix_Type, StiffnessMatrix,  True  ) ;
-	solutionVec =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  SolutionVector_Type, SolutionVector,  True  ) ;
-	fVector     =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  ForceVector_Type, ForceVector,  True  ) ;
+	stiffMat    =  Stg_ComponentFactory_ConstructByKey( cf, self->name, StiffnessMatrix_Type, StiffnessMatrix, True, data  ) ;
+	solutionVec =  Stg_ComponentFactory_ConstructByKey( cf, self->name, SolutionVector_Type,  SolutionVector,  True, data  ) ;
+	fVector     =  Stg_ComponentFactory_ConstructByKey( cf, self->name, ForceVector_Type,     ForceVector,     True, data  ) ;
 
 	_Energy_SLE_Init( self, stiffMat, solutionVec, fVector );
 }

Modified: long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/Energy/src/Energy_SLE.h
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/Energy/src/Energy_SLE.h	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/Energy/src/Energy_SLE.h	2006-10-14 18:32:16 UTC (rev 5028)
@@ -127,6 +127,6 @@
 
 	/* 'Stg_Component' Virtual Functions */
 	void* _Energy_SLE_DefaultNew( Name name );
-	void _Energy_SLE_Construct( void* sle, Stg_ComponentFactory* cf );
+	void _Energy_SLE_Construct( void* sle, Stg_ComponentFactory* cf, void* data );
 
 #endif

Modified: long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/Energy/src/Energy_SLE_Solver.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/Energy/src/Energy_SLE_Solver.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/Energy/src/Energy_SLE_Solver.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -174,10 +174,10 @@
 	return (void*)newEnergySleSolver;
 }
 
-void _Energy_SLE_Solver_Construct( void* sleSolver, Stg_ComponentFactory* cf ) {
+void _Energy_SLE_Solver_Construct( void* sleSolver, Stg_ComponentFactory* cf, void* data ) {
 	Energy_SLE_Solver *self = (Energy_SLE_Solver*)sleSolver;
 
-	_SLE_Solver_Construct( self, cf );
+	_SLE_Solver_Construct( self, cf, data );
 
 	_Energy_SLE_Solver_Init( self );
 }

Modified: long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/Energy/src/Energy_SLE_Solver.h
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/Energy/src/Energy_SLE_Solver.h	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/Energy/src/Energy_SLE_Solver.h	2006-10-14 18:32:16 UTC (rev 5028)
@@ -121,7 +121,7 @@
 	
 	void _Energy_SLE_Solver_Initialise( void* sleSolver, void* standardSLE );
 	
-	void _Energy_SLE_Solver_Construct( void* sleSolver, Stg_ComponentFactory* cf );
+	void _Energy_SLE_Solver_Construct( void* sleSolver, Stg_ComponentFactory* cf, void* data );
 	
 	void _Energy_SLE_Solver_Execute( void* sleSolver, void* data );
 	

Modified: long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/StokesFlow/src/Stokes_SLE.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/StokesFlow/src/Stokes_SLE.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/StokesFlow/src/Stokes_SLE.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -272,7 +272,7 @@
 		name );
 }
 
-void _Stokes_SLE_Construct( void* sle, Stg_ComponentFactory* cf ) {
+void _Stokes_SLE_Construct( void* sle, Stg_ComponentFactory* cf, void* data ) {
 	Stokes_SLE*       self = (Stokes_SLE*)sle;
 	StiffnessMatrix*  kStiffMat;
 	StiffnessMatrix*  gStiffMat;
@@ -284,19 +284,19 @@
 	ForceVector*      hForceVec;
 
 	/* Construct Parent */
-	_SystemLinearEquations_Construct( self, cf );
+	_SystemLinearEquations_Construct( self, cf, data );
 
-	kStiffMat =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  "StressTensorMatrix", StiffnessMatrix,     True  ) ;
-	gStiffMat =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  "GradientMatrix", StiffnessMatrix,         True  ) ;
-	dStiffMat =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  "DivergenceMatrix", StiffnessMatrix,       False  ) ;
-	cStiffMat =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  "CompressibilityMatrix", StiffnessMatrix,  False  ) ;
+	kStiffMat =  Stg_ComponentFactory_ConstructByKey( cf, self->name, "StressTensorMatrix",    StiffnessMatrix, True, data );
+	gStiffMat =  Stg_ComponentFactory_ConstructByKey( cf, self->name, "GradientMatrix",        StiffnessMatrix, True, data );
+	dStiffMat =  Stg_ComponentFactory_ConstructByKey( cf, self->name, "DivergenceMatrix",      StiffnessMatrix, False, data );
+	cStiffMat =  Stg_ComponentFactory_ConstructByKey( cf, self->name, "CompressibilityMatrix", StiffnessMatrix, False, data );
 
-	uSolnVec  =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  "VelocityVector", SolutionVector,         True  ) ;
-	pSolnVec  =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  "PressureVector", SolutionVector,         True  ) ;
-	
-	fForceVec =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  "ForceVector", ForceVector,            True  ) ;
-	hForceVec =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  "ContinuityForceVector", ForceVector,  True  ) ;
+	uSolnVec  =  Stg_ComponentFactory_ConstructByKey( cf, self->name, "VelocityVector",        SolutionVector,  True, data );
+	pSolnVec  =  Stg_ComponentFactory_ConstructByKey( cf, self->name, "PressureVector",        SolutionVector,  True, data );
 
+	fForceVec =  Stg_ComponentFactory_ConstructByKey( cf, self->name, "ForceVector",           ForceVector,     True, data );
+	hForceVec =  Stg_ComponentFactory_ConstructByKey( cf, self->name, "ContinuityForceVector", ForceVector,     True, data );
+
 	_Stokes_SLE_Init( self, kStiffMat, gStiffMat, dStiffMat, cStiffMat, uSolnVec, pSolnVec, fForceVec, hForceVec );
 }
 

Modified: long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/StokesFlow/src/Stokes_SLE.h
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/StokesFlow/src/Stokes_SLE.h	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/StokesFlow/src/Stokes_SLE.h	2006-10-14 18:32:16 UTC (rev 5028)
@@ -152,7 +152,7 @@
 	void _Stokes_SLE_Print( void* stokesSleSolver, Stream* stream );
 
 	void* _Stokes_SLE_DefaultNew( Name name ) ;
-	void _Stokes_SLE_Construct( void* sle, Stg_ComponentFactory* cf ) ;
+void _Stokes_SLE_Construct( void* sle, Stg_ComponentFactory* cf, void* data ) ;
 	
 	void _Stokes_SLE_MG_SelectStiffMats( void* _sle, unsigned* nSMs, StiffnessMatrix*** sms );
 	

Modified: long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/StokesFlow/src/Stokes_SLE_PenaltySolver.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/StokesFlow/src/Stokes_SLE_PenaltySolver.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/StokesFlow/src/Stokes_SLE_PenaltySolver.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -187,10 +187,10 @@
 	Stream_UnIndentBranch( StG_FEM_Debug );
 }
 
-void _Stokes_SLE_PenaltySolver_Construct( void* solver, Stg_ComponentFactory* cf ) {
+void _Stokes_SLE_PenaltySolver_Construct( void* solver, Stg_ComponentFactory* cf, void* data ) {
 	Stokes_SLE_PenaltySolver* self         = (Stokes_SLE_PenaltySolver*) solver;
 
-	_SLE_Solver_Construct( self, cf );
+	_SLE_Solver_Construct( self, cf, data );
 	
 	_Stokes_SLE_PenaltySolver_Init( self );
 }

Modified: long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/StokesFlow/src/Stokes_SLE_PenaltySolver.h
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/StokesFlow/src/Stokes_SLE_PenaltySolver.h	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/StokesFlow/src/Stokes_SLE_PenaltySolver.h	2006-10-14 18:32:16 UTC (rev 5028)
@@ -120,7 +120,7 @@
 	/** Stg_Component_Build() implementations: allocates the 2 MatrixSolvers and additional Vectors */
 	void _Stokes_SLE_PenaltySolver_Build( void* solver, void* stokesSLE );
 	
-	void _Stokes_SLE_PenaltySolver_Construct( void* solver, Stg_ComponentFactory* cf );
+	void _Stokes_SLE_PenaltySolver_Construct( void* solver, Stg_ComponentFactory* cf, void* data );
 	
 	void _Stokes_SLE_PenaltySolver_Initialise( void* solver, void* stokesSLE ) ;
 	

Modified: long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/StokesFlow/src/Stokes_SLE_UzawaSolver.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/StokesFlow/src/Stokes_SLE_UzawaSolver.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/StokesFlow/src/Stokes_SLE_UzawaSolver.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -254,21 +254,21 @@
 	Stream_UnIndentBranch( StG_FEM_Debug );
 }
 
-void _Stokes_SLE_UzawaSolver_Construct( void* solver, Stg_ComponentFactory* cf ) {
+void _Stokes_SLE_UzawaSolver_Construct( void* solver, Stg_ComponentFactory* cf, void* data ) {
 	Stokes_SLE_UzawaSolver* self         = (Stokes_SLE_UzawaSolver*) solver;
 	double                  tolerance;
 	Iteration_Index         maxUzawaIterations;
 	StiffnessMatrix*        preconditioner;
 	Bool                    useAbsoluteTolerance;
 
-	_SLE_Solver_Construct( self, cf );
+	_SLE_Solver_Construct( self, cf, data );
 
 	tolerance            = Stg_ComponentFactory_GetDouble( cf, self->name, "tolerance", 1.0e-5 );
 	maxUzawaIterations   = Stg_ComponentFactory_GetUnsignedInt( cf, self->name, "maxIterations", 1000 );
 	useAbsoluteTolerance = Stg_ComponentFactory_GetBool( cf, self->name, "useAbsoluteTolerance", False );
 
-	preconditioner =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  "Preconditioner", StiffnessMatrix,  False  ) ;
-	
+	preconditioner = Stg_ComponentFactory_ConstructByKey( cf, self->name, "Preconditioner", StiffnessMatrix, False, data );
+
 	_Stokes_SLE_UzawaSolver_Init( self, preconditioner, maxUzawaIterations, tolerance, useAbsoluteTolerance );
 }
 

Modified: long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/StokesFlow/src/Stokes_SLE_UzawaSolver.h
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/StokesFlow/src/Stokes_SLE_UzawaSolver.h	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/StokesFlow/src/Stokes_SLE_UzawaSolver.h	2006-10-14 18:32:16 UTC (rev 5028)
@@ -157,7 +157,7 @@
 	/** Stg_Component_Build() implementations: allocates the 2 MatrixSolvers and additional Vectors */
 	void _Stokes_SLE_UzawaSolver_Build( void* solver, void* stokesSLE );
 	
-	void _Stokes_SLE_UzawaSolver_Construct( void* solver, Stg_ComponentFactory* cf );
+	void _Stokes_SLE_UzawaSolver_Construct( void* solver, Stg_ComponentFactory* cf, void* data );
 	
 	void _Stokes_SLE_UzawaSolver_Initialise( void* solver, void* stokesSLE ) ;
 	

Modified: long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/StokesFlow/src/UzawaPreconditionerTerm.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/StokesFlow/src/UzawaPreconditionerTerm.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/StokesFlow/src/UzawaPreconditionerTerm.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -158,11 +158,11 @@
 		name );
 }
 
-void _UzawaPreconditionerTerm_Construct( void* matrixTerm, Stg_ComponentFactory* cf ) {
+void _UzawaPreconditionerTerm_Construct( void* matrixTerm, Stg_ComponentFactory* cf, void* data ) {
 	UzawaPreconditionerTerm*            self             = (UzawaPreconditionerTerm*)matrixTerm;
 
 	/* Construct Parent */
-	_StiffnessMatrixTerm_Construct( self, cf );
+	_StiffnessMatrixTerm_Construct( self, cf, data );
 
 	_UzawaPreconditionerTerm_Init( self );
 }

Modified: long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/StokesFlow/src/UzawaPreconditionerTerm.h
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/StokesFlow/src/UzawaPreconditionerTerm.h	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/SLE/ProvidedSystems/StokesFlow/src/UzawaPreconditionerTerm.h	2006-10-14 18:32:16 UTC (rev 5028)
@@ -84,7 +84,7 @@
 	void _UzawaPreconditionerTerm_Print( void* matrixTerm, Stream* stream );
 
 	void* _UzawaPreconditionerTerm_DefaultNew( Name name ) ;
-	void _UzawaPreconditionerTerm_Construct( void* matrixTerm, Stg_ComponentFactory* cf ) ;
+void _UzawaPreconditionerTerm_Construct( void* matrixTerm, Stg_ComponentFactory* cf, void* data ) ;
 	void _UzawaPreconditionerTerm_Build( void* matrixTerm, void* data ) ;
 	void _UzawaPreconditionerTerm_Initialise( void* matrixTerm, void* data ) ;
 	void _UzawaPreconditionerTerm_Execute( void* matrixTerm, void* data ) ;

Modified: long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/Context.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/Context.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/Context.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -72,7 +72,7 @@
 		_FiniteElementContext_Print,
 		NULL,
 		FiniteElementContext_DefaultNew,
-		_FiniteElementContext_ComponentConstruct,
+		_AbstractContext_Construct,
 		_AbstractContext_Build,
 		_AbstractContext_Initialise,
 		_AbstractContext_Execute,
@@ -100,7 +100,7 @@
 		_FiniteElementContext_Print,
 		NULL,
 		FiniteElementContext_DefaultNew,
-		_FiniteElementContext_ComponentConstruct,
+		_AbstractContext_Construct,
 		_AbstractContext_Build,
 		_AbstractContext_Initialise,
 		_AbstractContext_Execute,
@@ -214,7 +214,7 @@
 		_FiniteElementContext_Build, 
 		FiniteElementContext_Type );
 	EntryPoint_Prepend( 
-		Context_GetEntryPoint( self, AbstractContext_EP_IC ),
+		Context_GetEntryPoint( self, AbstractContext_EP_Initialise ),
 		"default", 
 		_FiniteElementContext_Initialise, 
 		FiniteElementContext_Type );
@@ -313,6 +313,29 @@
 
 /* EntryPoint Hooks --------------------------------------------------------------------------------------------------------------*/
 
+void _FiniteElementContext_Construct( void* context, Stg_ComponentFactory* cf, void* data ){
+	FiniteElementContext *self = (FiniteElementContext*) context;
+	int componentIndex = 0;
+
+	self->dictionary = cf->rootDict;
+
+/* I don't think this is needed any more...
+	_AbstractContext_Init( (AbstractContext*)self, 0, 0, MPI_COMM_WORLD );
+	_DiscretisationContext_Init( (DiscretisationContext*)self );*/
+	_FiniteElementContext_Init( self );
+	
+	componentIndex = Stg_ObjectList_GetIndex( cf->LCRegister->componentList, self->name );
+	
+	Journal_Firewall( 
+		!componentIndex, 
+		Journal_Register( Error_Type, self->type ), 
+		"Context should be the first component in the 'components' list..!" );
+
+	self->CF = cf;
+	self->CF->registerRegister = self->register_Register;
+}
+
+
 void _FiniteElementContext_Build( void* context ) {
 	FiniteElementContext* self = (FiniteElementContext*)context;
 	SystemLinearEquations_Index sle_I;
@@ -430,25 +453,6 @@
 }
 
 
-void	_FiniteElementContext_ComponentConstruct( void* context, Stg_ComponentFactory* cf ){
-	FiniteElementContext *self = (FiniteElementContext*) context;
-	int componentIndex = 0;
-
-	self->dictionary = cf->rootDict;
-
-	_AbstractContext_Init( (AbstractContext*)self, 0, 0, MPI_COMM_WORLD );
-	_DiscretisationContext_Init( (DiscretisationContext*)self );
-	_FiniteElementContext_Init( self );
-	
-	componentIndex = Stg_ObjectList_GetIndex ( cf->LCRegister->componentList, self->name );
-	
-	Journal_Firewall( !componentIndex, Journal_Register( Error_Type, self->type ), "Context should be the first component in the 'components' list..!" );
-
-	self->CF = cf;
-	self->CF->registerRegister = self->register_Register;
-}
-
-
 void _FiniteElementContext_SaveFeVariables( void* context ) {
 	FiniteElementContext*     self = (FiniteElementContext*) context;
 	Index                     var_I = 0;

Modified: long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/Context.h
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/Context.h	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/Context.h	2006-10-14 18:32:16 UTC (rev 5028)
@@ -121,11 +121,12 @@
 	/* Print implementation */
 	void _FiniteElementContext_Print( void* context, Stream* stream );
 
-	void _FiniteElementContext_ComponentConstruct( void* context, Stg_ComponentFactory* cf );
-	
 	/* Set the dt */
 	void _FiniteElementContext_CalcNewDt( void* context, double dt );
-
+	
+	/* Construct EntryPoint hook */
+	void _FiniteElementContext_Construct( void* context, Stg_ComponentFactory* cf, void* data );
+	
 	/* Build EntryPoint hook */
 	void _FiniteElementContext_Build( void* context );
 	

Modified: long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/EntryPoint.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/EntryPoint.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/EntryPoint.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -158,12 +158,20 @@
 	FeEntryPoint* self = (FeEntryPoint*)feEntryPoint;
 	Hook_Index hookIndex;
 	
+	#ifdef USE_PROFILE
+		Stg_CallGraph_Push( stgCallGraph, _FeEntryPoint_Run_AssembleStiffnessMatrix, self->name );
+	#endif
+
 	for( hookIndex = 0; hookIndex < self->hooks->count; hookIndex++ ) {
 		((FeEntryPoint_AssembleStiffnessMatrix_Function*)((Hook*)self->hooks->data[hookIndex])->funcPtr) (
 			stiffnessMatrix,
 			bcRemoveQuery,
 			data );
 	}
+
+	#ifdef USE_PROFILE
+		Stg_CallGraph_Pop( stgCallGraph );
+	#endif
 }
 
 void _FeEntryPoint_Run_AssembleForceVector( 
@@ -173,10 +181,18 @@
 	FeEntryPoint* self = (FeEntryPoint*)feEntryPoint;
 	Hook_Index hookIndex;
 	
+	#ifdef USE_PROFILE
+		Stg_CallGraph_Push( stgCallGraph, _FeEntryPoint_Run_AssembleForceVector, self->name );
+	#endif
+
 	for( hookIndex = 0; hookIndex < self->hooks->count; hookIndex++ ) {
 		((FeEntryPoint_AssembleForceVector_Function*)((Hook*)self->hooks->data[hookIndex])->funcPtr) (
 			forceVector );
 	}
+
+	#ifdef USE_PROFILE
+		Stg_CallGraph_Pop( stgCallGraph );
+	#endif
 }
 
 

Modified: long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/ForceTerm.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/ForceTerm.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/ForceTerm.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -211,16 +211,16 @@
 			name );
 }
 
-void _ForceTerm_Construct( void* forceTerm, Stg_ComponentFactory* cf ) {
+void _ForceTerm_Construct( void* forceTerm, Stg_ComponentFactory* cf, void* data ) {
 	ForceTerm*      self               = (ForceTerm*)forceTerm;
 	Swarm*          swarm              = NULL;
 	Stg_Component*  extraInfo;
 	ForceVector*    forceVector;
 
-	forceVector =  Stg_ComponentFactory_ConstructByKey( cf, self->name, "ForceVector", ForceVector, True ) ;
-	swarm       =  Stg_ComponentFactory_ConstructByKey( cf, self->name, "Swarm", Swarm, True ) ;
-	extraInfo   =  Stg_ComponentFactory_ConstructByKey( cf, self->name, "ExtraInfo", Stg_Component, False ) ;
 
+	forceVector =  Stg_ComponentFactory_ConstructByKey( cf, self->name, "ForceVector", ForceVector,   True,  data ) ;
+	swarm       =  Stg_ComponentFactory_ConstructByKey( cf, self->name, "Swarm",       Swarm,         True,  data ) ;
+	extraInfo   =  Stg_ComponentFactory_ConstructByKey( cf, self->name, "ExtraInfo",   Stg_Component, False, data ) ;
 	_ForceTerm_Init( self, forceVector, swarm, extraInfo );
 }
 

Modified: long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/ForceTerm.h
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/ForceTerm.h	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/ForceTerm.h	2006-10-14 18:32:16 UTC (rev 5028)
@@ -119,7 +119,7 @@
 	
 	/* 'Stg_Component' Virtual Functions */
 	void* _ForceTerm_DefaultNew( Name name );
-	void _ForceTerm_Construct( void* forceTerm, Stg_ComponentFactory* cf );
+	void _ForceTerm_Construct( void* forceTerm, Stg_ComponentFactory* cf, void* data );
 	void _ForceTerm_Build( void* forceTerm, void* data );
 	void _ForceTerm_Initialise( void* forceTerm, void* data );
 	void _ForceTerm_Execute( void* forceTerm, void* data );

Modified: long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/ForceVector.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/ForceVector.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/ForceVector.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -273,12 +273,12 @@
 }
 
 
-void _ForceVector_Construct( void* forceVector, Stg_ComponentFactory* cf ) {
+void _ForceVector_Construct( void* forceVector, Stg_ComponentFactory* cf, void* data ) {
 	ForceVector*    self               = (ForceVector*)forceVector;
 	Dimension_Index dim                = 0;
 	void*           entryPointRegister = NULL;
 
-	_SolutionVector_Construct( self, cf );
+	_SolutionVector_Construct( self, cf, data );
 	
 	dim = Stg_ComponentFactory_GetRootDictUnsignedInt( cf, "dim", 0 );
 

Modified: long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/ForceVector.h
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/ForceVector.h	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/ForceVector.h	2006-10-14 18:32:16 UTC (rev 5028)
@@ -118,7 +118,7 @@
 	
 	/* 'Stg_Component' Virtual Functions */
 	void* _ForceVector_DefaultNew( Name name );
-	void _ForceVector_Construct( void* forceVector, Stg_ComponentFactory* cf );
+	void _ForceVector_Construct( void* forceVector, Stg_ComponentFactory* cf, void* data );
 	void _ForceVector_Build( void* forceVector, void* data );
 	void _ForceVector_Initialise( void* forceVector, void* data );
 	void _ForceVector_Execute( void* forceVector, void* data );

Modified: long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/SLE_Solver.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/SLE_Solver.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/SLE_Solver.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -173,7 +173,7 @@
 	/* Do nothing by default */
 }
 
-void _SLE_Solver_Construct( void* sleSolver, Stg_ComponentFactory* cf ) {
+void _SLE_Solver_Construct( void* sleSolver, Stg_ComponentFactory* cf, void* data ) {
 	SLE_Solver*		self = (SLE_Solver*)sleSolver;
 	Bool            useStatSolve;
 	int             nStatReps;

Modified: long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/SLE_Solver.h
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/SLE_Solver.h	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/SLE_Solver.h	2006-10-14 18:32:16 UTC (rev 5028)
@@ -135,7 +135,7 @@
 	/** Stg_Component_Build() implementation: does nothing by default as some solvers may not need it. */
 	void _SLE_Solver_Build( void* sleSolver, void* data );
 	
-	void _SLE_Solver_Construct( void* sleSolver, Stg_ComponentFactory* cf );
+	void _SLE_Solver_Construct( void* sleSolver, Stg_ComponentFactory* cf, void* data );
 
 	/** Stg_Component_Initialise() implementation: does nothing by default as some solvers may not neet it. */
 	void _SLE_Solver_Initialise( void* sleSolver, void* data );

Modified: long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/SolutionVector.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/SolutionVector.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/SolutionVector.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -260,12 +260,12 @@
 }
 
 
-void _SolutionVector_Construct( void* solutionVector, Stg_ComponentFactory* cf )
+void _SolutionVector_Construct( void* solutionVector, Stg_ComponentFactory* cf, void* data ) 
 {
 	SolutionVector*    self = (SolutionVector*)solutionVector;
 	FeVariable*        feVariable = NULL;
 	
-	feVariable =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  "FeVariable", FeVariable,  True  ) ;
+	feVariable = Stg_ComponentFactory_ConstructByKey( cf, self->name, "FeVariable", FeVariable, True, data ) ;
 	_SolutionVector_Init( self, MPI_COMM_WORLD, (FeVariable*)feVariable );
 }
 

Modified: long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/SolutionVector.h
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/SolutionVector.h	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/SolutionVector.h	2006-10-14 18:32:16 UTC (rev 5028)
@@ -137,7 +137,7 @@
 	
 	void _SolutionVector_Build( void* solutionVector, void* data );
 	
-	void _SolutionVector_Construct( void* solutionVector, Stg_ComponentFactory* cf );
+	void _SolutionVector_Construct( void* solutionVector, Stg_ComponentFactory* cf, void* data );
 	
 	/* Initialisation implementation */
 	void _SolutionVector_Initialise( void* solutionVector, void* data );

Modified: long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/StiffnessMatrix.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/StiffnessMatrix.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/StiffnessMatrix.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -389,7 +389,7 @@
 	return (void*)newStiffnessMatrix;
 }
 
-void _StiffnessMatrix_Construct( void* stiffnessMatrix, Stg_ComponentFactory* cf ) {
+void _StiffnessMatrix_Construct( void* stiffnessMatrix, Stg_ComponentFactory* cf, void* data ) {
 	StiffnessMatrix* self               = (StiffnessMatrix*)stiffnessMatrix;
 	FeVariable*      rowVar             = NULL;
 	FeVariable*      colVar             = NULL;
@@ -401,13 +401,11 @@
 	Bool             allowZeroElementContributions;
 	MPI_Comm         comm               = 0;
 	
-	rowVar  =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  "RowVariable", FeVariable,  True  ) ;
-	colVar  =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  "ColumnVariable", FeVariable,  True  ) ;
-
-	fVector =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  "RHS", ForceVector,  True  ) ;
+	rowVar             = Stg_ComponentFactory_ConstructByKey( cf, self->name, "RowVariable",        FeVariable,    True, data );
+	colVar             = Stg_ComponentFactory_ConstructByKey( cf, self->name, "ColumnVariable",     FeVariable,    True, data );
+	fVector            = Stg_ComponentFactory_ConstructByKey( cf, self->name, "RHS",                ForceVector,   True, data );
+	applicationDepInfo = Stg_ComponentFactory_ConstructByKey( cf, self->name, "ApplicationDepInfo", Stg_Component, False, data);
 	
-	applicationDepInfo = Stg_ComponentFactory_ConstructByKey( cf, self->name, "ApplicationDepInfo", Stg_Component, False );
-	
 	entryPointRegister = Stg_ObjectList_Get( cf->registerRegister, "EntryPoint_Register" );
 	assert( entryPointRegister );
 	

Modified: long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/StiffnessMatrix.h
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/StiffnessMatrix.h	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/StiffnessMatrix.h	2006-10-14 18:32:16 UTC (rev 5028)
@@ -172,7 +172,7 @@
 	void _StiffnessMatrix_Build( void* stiffnessMatrix, void* data );
 	
 	/* Construct */
-	void _StiffnessMatrix_Construct( void* stiffnessMatrix, Stg_ComponentFactory* cf );
+	void _StiffnessMatrix_Construct( void* stiffnessMatrix, Stg_ComponentFactory* cf, void* data );
 	
 	/* Initialisation implementation */
 	void _StiffnessMatrix_Initialise( void* stiffnessMatrix, void* data );

Modified: long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/StiffnessMatrixTerm.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/StiffnessMatrixTerm.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/StiffnessMatrixTerm.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -212,15 +212,15 @@
 			name );
 }
 
-void _StiffnessMatrixTerm_Construct( void* stiffnessMatrixTerm, Stg_ComponentFactory* cf ) {
+void _StiffnessMatrixTerm_Construct( void* stiffnessMatrixTerm, Stg_ComponentFactory* cf, void* data ) {
 	StiffnessMatrixTerm*       self               = (StiffnessMatrixTerm*)stiffnessMatrixTerm;
 	Swarm*                     swarm              = NULL;
 	Stg_Component*             extraInfo;
 	StiffnessMatrix*           stiffnessMatrix;
 
-	stiffnessMatrix =  Stg_ComponentFactory_ConstructByKey( cf, self->name, "StiffnessMatrix", StiffnessMatrix, True ) ;
-	swarm       =  Stg_ComponentFactory_ConstructByKey( cf, self->name, "Swarm", Swarm, True ) ;
-	extraInfo   =  Stg_ComponentFactory_ConstructByKey( cf, self->name, "ExtraInfo", Stg_Component, False ) ;
+	stiffnessMatrix = Stg_ComponentFactory_ConstructByKey( cf, self->name, "StiffnessMatrix", StiffnessMatrix, True,  data ) ;
+	swarm           = Stg_ComponentFactory_ConstructByKey( cf, self->name, "Swarm",           Swarm,           True,  data ) ;
+	extraInfo       = Stg_ComponentFactory_ConstructByKey( cf, self->name, "ExtraInfo",       Stg_Component,   False, data );
 
 	_StiffnessMatrixTerm_Init( self, stiffnessMatrix, swarm, extraInfo );
 }

Modified: long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/StiffnessMatrixTerm.h
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/StiffnessMatrixTerm.h	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/StiffnessMatrixTerm.h	2006-10-14 18:32:16 UTC (rev 5028)
@@ -116,7 +116,7 @@
 	
 	/* 'Stg_Component' Virtual Functions */
 	void* _StiffnessMatrixTerm_DefaultNew( Name name );
-	void _StiffnessMatrixTerm_Construct( void* stiffnessMatrixTerm, Stg_ComponentFactory* cf );
+	void _StiffnessMatrixTerm_Construct( void* stiffnessMatrixTerm, Stg_ComponentFactory* cf, void* data );
 	void _StiffnessMatrixTerm_Build( void* stiffnessMatrixTerm, void* data );
 	void _StiffnessMatrixTerm_Initialise( void* stiffnessMatrixTerm, void* data );
 	void _StiffnessMatrixTerm_Execute( void* stiffnessMatrixTerm, void* data );

Modified: long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/SystemLinearEquations.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/SystemLinearEquations.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/SystemLinearEquations.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -350,7 +350,7 @@
 		name );
 }
 
-void _SystemLinearEquations_Construct( void* sle, Stg_ComponentFactory* cf ){
+void _SystemLinearEquations_Construct( void* sle, Stg_ComponentFactory* cf, void* data ){
 	SystemLinearEquations*  self                     = (SystemLinearEquations*)sle;
 	SLE_Solver*             solver                   = NULL;
 	void*                   entryPointRegister       = NULL;
@@ -362,8 +362,8 @@
 	Bool                    makeConvergenceFile;
 	Iteration_Index         nonLinearMinIterations;                     
 	
-	solver =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  SLE_Solver_Type, SLE_Solver,  False  ) ;
-	
+	solver = Stg_ComponentFactory_ConstructByKey( cf, self->name, SLE_Solver_Type, SLE_Solver, False, data ) ;
+
 	/* TODO - Construct Parent */
 
 	makeConvergenceFile       = Stg_ComponentFactory_GetBool(   cf, self->name, "makeConvergenceFile",    False );
@@ -376,8 +376,8 @@
 	entryPointRegister = Stg_ObjectList_Get( cf->registerRegister, "EntryPoint_Register" );
 	assert( entryPointRegister );
 
-	context =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  "Context", FiniteElementContext,  False  ) ;
-	
+	context = Stg_ComponentFactory_ConstructByKey( cf, self->name, "Context", FiniteElementContext, False, data );
+
 	_SystemLinearEquations_Init( 
 			self,
 			solver,

Modified: long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/SystemLinearEquations.h
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/SystemLinearEquations.h	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/SLE/SystemSetup/src/SystemLinearEquations.h	2006-10-14 18:32:16 UTC (rev 5028)
@@ -183,7 +183,7 @@
 	
 	/* +++ Virtual Functions +++ */
 	void* _SystemLinearEquations_DefaultNew( Name name ) ;
-	void _SystemLinearEquations_Construct( void* sle, Stg_ComponentFactory* cf );
+	void _SystemLinearEquations_Construct( void* sle, Stg_ComponentFactory* cf, void* data );
 	void _SystemLinearEquations_Build( void* sle, void* data );
 	void _SystemLinearEquations_Initialise( void* sle, void* data );
 

Modified: long/3D/Gale/trunk/src/StgFEM/SLE/src/StiffRemesher.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/SLE/src/StiffRemesher.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/SLE/src/StiffRemesher.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -181,7 +181,7 @@
 }
 
 
-void _StiffRemesher_Construct( void* stiffRemesher, Stg_ComponentFactory* cf ) {
+void _StiffRemesher_Construct( void* stiffRemesher, Stg_ComponentFactory* cf, void* data ) {
 	StiffRemesher*	self = (StiffRemesher*)stiffRemesher;
 	Dictionary*	dict;
 	char*		swarmName;
@@ -190,7 +190,7 @@
 	assert( cf );
 	assert( cf->componentDict );
 
-	_Remesher_Construct( self, cf );
+	_Remesher_Construct( self, cf, data );
 
 	/* Get the number of dimensions. */
 	dict = Dictionary_Entry_Value_AsDictionary( Dictionary_Get( cf->componentDict, self->name ) );
@@ -200,7 +200,7 @@
 	/* Get the swarm. */
 	swarmName = Dictionary_GetString( dict, "swarm" );
 	assert( swarmName );
-	self->swarm = Stg_ComponentFactory_ConstructByName( cf, swarmName, Swarm, True );
+	self->swarm = Stg_ComponentFactory_ConstructByName( cf, swarmName, Swarm, True, data ); 
 }
 
 

Modified: long/3D/Gale/trunk/src/StgFEM/SLE/src/StiffRemesher.h
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/SLE/src/StiffRemesher.h	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/SLE/src/StiffRemesher.h	2006-10-14 18:32:16 UTC (rev 5028)
@@ -107,7 +107,7 @@
 	void _StiffRemesher_Delete( void* stiffRemesher );
 	void _StiffRemesher_Print( void* stiffRemesher, Stream* stream );
 	StiffRemesher* _StiffRemesher_DefaultNew( Name name );
-	void _StiffRemesher_Construct( void* stiffRemesher, Stg_ComponentFactory* cf );
+	void _StiffRemesher_Construct( void* stiffRemesher, Stg_ComponentFactory* cf, void* data );
 	void _StiffRemesher_Build( void* stiffRemesher, void* data );
 	void _StiffRemesher_Initialise( void* stiffRemesher, void* data );
 	void _StiffRemesher_Execute( void* stiffRemesher, void* data );

Modified: long/3D/Gale/trunk/src/StgFEM/plugins/Application/Application.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/plugins/Application/Application.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/plugins/Application/Application.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -52,7 +52,7 @@
 
 const Type StG_FEM_Application_Type = "StG_FEM_Application";
 
-void _StG_FEM_Application_Construct( void* component, Stg_ComponentFactory* cf ) 
+void _StG_FEM_Application_Construct( void* component, Stg_ComponentFactory* cf, void* data ) 
 {
 	AbstractContext* currAbstractContext;
 	FiniteElementContext* context;
@@ -61,7 +61,7 @@
         EntryPoint* applicationsFinalise_EP;
 
 	//Get the existing context, as defined by StGermain, or an alternative plugin application.
-	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

Modified: long/3D/Gale/trunk/src/StgFEM/plugins/CompareFeVariableAgainstReferenceSolution/CompareFeVariableAgainstReferenceSolution.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/plugins/CompareFeVariableAgainstReferenceSolution/CompareFeVariableAgainstReferenceSolution.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/plugins/CompareFeVariableAgainstReferenceSolution/CompareFeVariableAgainstReferenceSolution.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -74,7 +74,7 @@
 } CompareFeVariableAgainstReferenceSolution;
 
 
-void _CompareFeVariableAgainstReferenceSolution_Construct( void* compareFeVariable, Stg_ComponentFactory* cf ) {
+void _CompareFeVariableAgainstReferenceSolution_Construct( void* compareFeVariable, Stg_ComponentFactory* cf, void* data ) {
 	CompareFeVariableAgainstReferenceSolution* self = (CompareFeVariableAgainstReferenceSolution*) compareFeVariable;
 
 	AbstractContext*         context;
@@ -94,7 +94,7 @@
 
 	Stream*                  myStream;
 
-	context = (AbstractContext*)Stg_ComponentFactory_ConstructByName( cf, "context", AbstractContext, True );
+	context = (AbstractContext*)Stg_ComponentFactory_ConstructByName( cf, "context", AbstractContext, True, data ); 
 	self->context = context;
 	self->cf = cf;
 
@@ -121,7 +121,7 @@
 	Journal_Printf(
 		Journal_MyStream( Info_Type, self ),
 		"%s: Using integration swarm %s\n", self->name, integrationSwarmName );
-	self->integrationSwarm = Stg_ComponentFactory_ConstructByName( cf, integrationSwarmName, Swarm, True );
+	self->integrationSwarm = Stg_ComponentFactory_ConstructByName( cf, integrationSwarmName, Swarm, True, data ); 
 
 	self->variables = Stg_ObjectList_New();
 	self->tolerances = Stg_ObjectList_New();
@@ -134,7 +134,7 @@
 
 	for ( var_I = 0; var_I < Dictionary_Entry_Value_GetCount( varList ); ++var_I ) {
 		varName = Dictionary_Entry_Value_AsString( Dictionary_Entry_Value_GetElement( varList, var_I ) );
-		feVarToTest = Stg_ComponentFactory_ConstructByName( cf, varName, FeVariable, True );
+		feVarToTest = Stg_ComponentFactory_ConstructByName( cf, varName, FeVariable, True, data );
 		Journal_Printf(
 			Journal_MyStream( Info_Type, self ),
 			"%s: Comparing FeVariable %s\n", self->name, varName );

Modified: long/3D/Gale/trunk/src/StgFEM/plugins/FeVariableImportExporters/FeVariable_ImportExport_ABAQUS/FeVariable_ImportExport_ABAQUS.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/plugins/FeVariableImportExporters/FeVariable_ImportExport_ABAQUS/FeVariable_ImportExport_ABAQUS.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/plugins/FeVariableImportExporters/FeVariable_ImportExport_ABAQUS/FeVariable_ImportExport_ABAQUS.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -216,11 +216,11 @@
 }
 
 
-void _StG_FEM_FeVariable_ImportExport_ABAQUS_Construct( void* componment, Stg_ComponentFactory* cf ) {
+void _StG_FEM_FeVariable_ImportExport_ABAQUS_Construct( void* componment, Stg_ComponentFactory* cf, void* data ) {
 	AbstractContext* context;
 	FeVariable_ImportExportInfo*    abaqusImportExportInfo = NULL;
 
-	context = Stg_ComponentFactory_ConstructByName( cf, "context", AbstractContext, True );
+	context = Stg_ComponentFactory_ConstructByName( cf, "context", AbstractContext, True, data );
 	
 	abaqusImportExportInfo = Memory_Alloc( FeVariable_ImportExportInfo, "ABAQUS_ImportExportInfo" );
 	abaqusImportExportInfo->readNodalValuesFromFile = FeVariable_ReadNodalValuesFromFile_ABAQUS;

Modified: long/3D/Gale/trunk/src/StgFEM/plugins/LevelSetPlugin/LevelSet.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/plugins/LevelSetPlugin/LevelSet.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/plugins/LevelSetPlugin/LevelSet.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -265,7 +265,7 @@
 }
 
 
-void _LevelSet_Construct( void* levelSet, Stg_ComponentFactory* cf ) {
+void _LevelSet_Construct( void* levelSet, Stg_ComponentFactory* cf, void* data ) {
 	LevelSet*		self = (LevelSet*)levelSet;
 	Dictionary*		dict;
 
@@ -273,7 +273,7 @@
 	assert( cf );
 	assert( cf->componentDict );
 
-	_FieldVariable_Construct( levelSet, cf );
+	_FieldVariable_Construct( levelSet, cf, data );
 	_LevelSet_Init( levelSet );
 	dict = Dictionary_Entry_Value_AsDictionary( Dictionary_Get( cf->componentDict, self->name ) );
 	assert( dict );

Modified: long/3D/Gale/trunk/src/StgFEM/plugins/LevelSetPlugin/LevelSet.h
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/plugins/LevelSetPlugin/LevelSet.h	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/plugins/LevelSetPlugin/LevelSet.h	2006-10-14 18:32:16 UTC (rev 5028)
@@ -167,7 +167,7 @@
 	/* Print implementation */
 	void _LevelSet_Print( void* levelSet, Stream* stream );
 
-	void _LevelSet_Construct( void* levelSet, Stg_ComponentFactory* cf ) ;
+void _LevelSet_Construct( void* levelSet, Stg_ComponentFactory* cf, void* data ) ;
 	void _LevelSet_Build( void* levelSet, void* data ) ;
 	void _LevelSet_Execute( void* levelSet, void* data ) ;
 	void _LevelSet_Destroy( void* levelSet, void* data ) ;

Modified: long/3D/Gale/trunk/src/StgFEM/plugins/LevelSetPlugin/LevelSetPlugin.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/plugins/LevelSetPlugin/LevelSetPlugin.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/plugins/LevelSetPlugin/LevelSetPlugin.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -98,18 +98,20 @@
 }
 
 
-void _StG_FEM_LevelSetPlugin_Construct( void* component, Stg_ComponentFactory* data ) {
+void _StG_FEM_LevelSetPlugin_Construct( void* component, Stg_ComponentFactory* cf, void* data ) {
 	FiniteElementContext*	feCtx;
 	LevelSetPlugin_Context*	lsCtx;
 
 	assert( component );
-	assert( data );
+	assert( cf );
 
 	/* Retrieve context. */
-	feCtx = (FiniteElementContext*)Stg_ComponentFactory_ConstructByName( data, 
-									     "context", 
-									     FiniteElementContext, 
-									     True );
+	feCtx = (FiniteElementContext*)Stg_ComponentFactory_ConstructByName( 
+		cf,
+		"context", 
+		FiniteElementContext, 
+		True,
+		data );
 
 	Journal_DPrintf( StG_FEM_Debug, "In: %s( void* )\n", __func__ );
 

Modified: long/3D/Gale/trunk/src/StgFEM/plugins/LevelSetPlugin/LevelSetPlugin.h
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/plugins/LevelSetPlugin/LevelSetPlugin.h	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/plugins/LevelSetPlugin/LevelSetPlugin.h	2006-10-14 18:32:16 UTC (rev 5028)
@@ -59,7 +59,7 @@
 
 	void* _StG_FEM_LevelSetPlugin_DefaultNew( Name name );
 
-	void _StG_FEM_LevelSetPlugin_Construct( void* component, Stg_ComponentFactory* data );
+	void _StG_FEM_LevelSetPlugin_Construct( void* component, Stg_ComponentFactory* cf, void* data );
 
 	void _StG_FEM_LevelSetPlugin_Build( void* component, void* data );
 

Modified: long/3D/Gale/trunk/src/StgFEM/plugins/MultiGrid/MultiGrid.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/plugins/MultiGrid/MultiGrid.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/plugins/MultiGrid/MultiGrid.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -83,15 +83,15 @@
 }
 
 
-void _StG_FEM_MultiGrid_Construct( void* component, Stg_ComponentFactory* data ) {
+void _StG_FEM_MultiGrid_Construct( void* component, Stg_ComponentFactory* cf, void* data ) {
 	FiniteElementContext*	feCtx;
 	MultiGrid_Context*	mgCtx;
 
 	assert( component );
-	assert( data );
+	assert( cf );
 
 	/* Retrieve context. */
-	feCtx = (FiniteElementContext*)Stg_ComponentFactory_ConstructByName( data, "context", FiniteElementContext, True );
+	feCtx = (FiniteElementContext*)Stg_ComponentFactory_ConstructByName( cf, "context", FiniteElementContext, True, data ); 
 
 
 	/*

Modified: long/3D/Gale/trunk/src/StgFEM/plugins/MultiGrid/MultiGrid.h
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/plugins/MultiGrid/MultiGrid.h	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/plugins/MultiGrid/MultiGrid.h	2006-10-14 18:32:16 UTC (rev 5028)
@@ -60,7 +60,7 @@
 
 	void* _StG_FEM_MultiGrid_DefaultNew( Name name );
 
-	void _StG_FEM_MultiGrid_Construct( void* component, Stg_ComponentFactory* data );
+	void _StG_FEM_MultiGrid_Construct( void* component, Stg_ComponentFactory* cf, void* data );
 
 	void _StG_FEM_MultiGrid_Build( void* component, void* data );
 

Modified: long/3D/Gale/trunk/src/StgFEM/plugins/Output/CPUTime/CPUTime.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/plugins/Output/CPUTime/CPUTime.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/plugins/Output/CPUTime/CPUTime.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -54,11 +54,11 @@
 	StG_FEM_FrequentOutput_PrintValue( context, MPI_Wtime() - self->initialTime );
 }
 
-void _StG_FEM_CPUTime_Construct( void* componment, Stg_ComponentFactory* cf ) {
+void _StG_FEM_CPUTime_Construct( void* componment, Stg_ComponentFactory* cf, void* data ) {
 	StG_FEM_CPUTime* self = (StG_FEM_CPUTime*)componment;
 	AbstractContext* context;
 
-	context = Stg_ComponentFactory_ConstructByName( cf, "context", AbstractContext, True );
+	context = Stg_ComponentFactory_ConstructByName( cf, "context", AbstractContext, True, data ); 
 	
 	/* Initialise Timer */
 	self->initialTime = MPI_Wtime();

Modified: long/3D/Gale/trunk/src/StgFEM/plugins/Output/FrequentOutput/FrequentOutput.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/plugins/Output/FrequentOutput/FrequentOutput.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/plugins/Output/FrequentOutput/FrequentOutput.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -50,7 +50,7 @@
 
 const Type StG_FEM_FrequentOutput_Type = "StG_FEM_FrequentOutput";
 
-void _StG_FEM_FrequentOutput_Construct( void* component, Stg_ComponentFactory* cf ) {
+void _StG_FEM_FrequentOutput_Construct( void* component, Stg_ComponentFactory* cf, void* data ) {
 	StG_FEM_FrequentOutput*            self         = (StG_FEM_FrequentOutput*) component;
 	AbstractContext*                   context;
 	Dictionary*                        dictionary;
@@ -59,10 +59,10 @@
 	Bool                               fileOpened;
 	Stream*                            errorStream  = Journal_Register( Error_Type, CURR_MODULE_NAME );
 
-	context = (AbstractContext*)Stg_ComponentFactory_ConstructByName( cf, "context", AbstractContext, True );
+	context = (AbstractContext*)Stg_ComponentFactory_ConstructByName( cf, "context", AbstractContext, True, data ); 
 	dictionary = context->dictionary;
 	
-	ContextEP_Append( context, AbstractContext_EP_IC,                  StG_FEM_FrequentOutput_PrintNewLine );
+	ContextEP_Append( context, AbstractContext_EP_Initialise, StG_FEM_FrequentOutput_PrintNewLine );
 	ContextEP_Prepend_AlwaysFirst( context, AbstractContext_EP_FrequentOutput, StG_FEM_FrequentOutput_PrintTime );
 	ContextEP_Append_AlwaysLast(   context, AbstractContext_EP_FrequentOutput, StG_FEM_FrequentOutput_PrintNewLine );
 	

Modified: long/3D/Gale/trunk/src/StgFEM/plugins/Output/PeakMemory/PeakMemory.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/plugins/Output/PeakMemory/PeakMemory.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/plugins/Output/PeakMemory/PeakMemory.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -69,13 +69,13 @@
 	StG_FEM_FrequentOutput_PrintValue( context, ave );
 }
 
-void _StG_FEM_PeakMemory_Construct( void* componment, Stg_ComponentFactory* cf ) {
+void _StG_FEM_PeakMemory_Construct( void* componment, Stg_ComponentFactory* cf, void* data ) {
 /* to potentially remove ...
 	StG_FEM_PeakMemory* self = (StG_FEM_PeakMemory*)componment;
 */
 	AbstractContext* context;
 
-	context = Stg_ComponentFactory_ConstructByName( cf, "context", AbstractContext, True );
+	context = Stg_ComponentFactory_ConstructByName( cf, "context", AbstractContext, True, data ); 
 	
 	/* Initialise Timer */
 /* to potentially remove ...

Modified: long/3D/Gale/trunk/src/StgFEM/plugins/Output/PrintFeVariableDiscreteValues/Plugin.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/plugins/Output/PrintFeVariableDiscreteValues/Plugin.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/plugins/Output/PrintFeVariableDiscreteValues/Plugin.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -51,10 +51,10 @@
 
 const char* PRINT_FE_VARIABLE_DISCRETE_VALUES_TAG = "PrintFeVariableDiscreteValues";
 
-void _StG_FEM_PrintFeVariableDiscreteValues_Construct( void* component, Stg_ComponentFactory* cf ) {
+void _StG_FEM_PrintFeVariableDiscreteValues_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_Append( context, AbstractContext_EP_Dump, PrintFeVariableDiscreteValues );
 }

Modified: long/3D/Gale/trunk/src/StgFEM/plugins/Output/PrintFeVariableDiscreteValues_2dBox/Plugin.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/plugins/Output/PrintFeVariableDiscreteValues_2dBox/Plugin.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/plugins/Output/PrintFeVariableDiscreteValues_2dBox/Plugin.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -51,10 +51,10 @@
 
 const char* PRINT_FE_VARIABLE_DISCRETE_VALUES_2D_BOX_TAG = "PrintFeVariableDiscreteValues_2dBox";
 
-void _StG_FEM_PrintFeVariableDiscreteValues_2dBox_Construct( void* component, Stg_ComponentFactory* cf ) {
+void _StG_FEM_PrintFeVariableDiscreteValues_2dBox_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 ); 
 	/* Add extensions to nodes, elements and the context */
 
 	/* Add extensions to functionality (entry points) */ 

Modified: long/3D/Gale/trunk/src/StgFEM/plugins/StandardConditionFunctions/StandardConditionFunctions.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/plugins/StandardConditionFunctions/StandardConditionFunctions.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/plugins/StandardConditionFunctions/StandardConditionFunctions.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -47,11 +47,11 @@
 
 const Type StG_FEM_StandardConditionFunctions_Type = "StG_FEM_StandardConditionFunctions";
 
-void _StG_FEM_StandardConditionFunctions_Construct( void* component, Stg_ComponentFactory* cf ) {
+void _StG_FEM_StandardConditionFunctions_Construct( void* component, Stg_ComponentFactory* cf, void* data ) {
 	AbstractContext*        context;
 	ConditionFunction*      condFunc;
 
-	context = (AbstractContext*)Stg_ComponentFactory_ConstructByName( cf, "context", AbstractContext, True );
+	context = (AbstractContext*)Stg_ComponentFactory_ConstructByName( cf, "context", AbstractContext, True, data ); 
 	
 	condFunc = ConditionFunction_New( StG_FEM_StandardConditionFunctions_SolidBodyRotation, "Velocity_SolidBodyRotation" );
 	ConditionFunction_Register_Add( context->condFunc_Register, condFunc );

Modified: long/3D/Gale/trunk/src/StgFEM/plugins/VelicAnalyticSolutions/Velic_solA/solA.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/plugins/VelicAnalyticSolutions/Velic_solA/solA.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/plugins/VelicAnalyticSolutions/Velic_solA/solA.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -309,7 +309,7 @@
 	}
 }
 
-void _Velic_solA_Construct( void* analyticSolution, Stg_ComponentFactory* cf ) {
+void _Velic_solA_Construct( void* analyticSolution, Stg_ComponentFactory* cf, void* data ) {
 	Velic_solA* self = (Velic_solA*) analyticSolution;
 	FeVariable*              velocityField;
 	FeVariable*              pressureField;
@@ -319,29 +319,29 @@
 	FeVariable*              recoveredStressField;
 
 	/* Construct Parent */
-	_AnalyticSolution_Construct( self, cf );
+	_AnalyticSolution_Construct( self, cf, data );
 
 	/* Create Analytic Fields */
-	velocityField = Stg_ComponentFactory_ConstructByName( cf, "VelocityField", FeVariable, True );
+	velocityField = Stg_ComponentFactory_ConstructByName( cf, "VelocityField", FeVariable, True, data ); 
 	AnalyticSolution_CreateAnalyticVectorField( self, velocityField, Velic_solA_VelocityFunction );
 
-	pressureField = Stg_ComponentFactory_ConstructByName( cf, "PressureField", FeVariable, True );
+	pressureField = Stg_ComponentFactory_ConstructByName( cf, "PressureField", FeVariable, True, data ); 
 	AnalyticSolution_CreateAnalyticField( self, pressureField, Velic_solA_PressureFunction );
 
-	stressField = Stg_ComponentFactory_ConstructByName( cf, "StressField", FeVariable, False );
+	stressField = Stg_ComponentFactory_ConstructByName( cf, "StressField", FeVariable, False, data ); 
 	if ( stressField )
 		AnalyticSolution_CreateAnalyticSymmetricTensorField( self, stressField, Velic_solA_StressFunction );
 
-	strainRateField = Stg_ComponentFactory_ConstructByName( cf, "StrainRateField", FeVariable, False );
+	strainRateField = Stg_ComponentFactory_ConstructByName( cf, "StrainRateField", FeVariable, False, data ); 
 	if ( strainRateField  ) {
 		AnalyticSolution_CreateAnalyticSymmetricTensorField( self, strainRateField, Velic_solA_StrainRateFunction );
 	}
 
-	recoverdStrainRateField = Stg_ComponentFactory_ConstructByName( cf, "recoveredStrainRate", FeVariable, False );
+	recoverdStrainRateField = Stg_ComponentFactory_ConstructByName( cf, "recoveredStrainRate", FeVariable, False, data ); 
 	if ( recoverdStrainRateField )
 		AnalyticSolution_CreateAnalyticSymmetricTensorField( self, recoverdStrainRateField, Velic_solA_StrainRateFunction );
 
-	recoveredStressField = Stg_ComponentFactory_ConstructByName( cf, "recoveredStress", FeVariable, False );
+	recoveredStressField = Stg_ComponentFactory_ConstructByName( cf, "recoveredStress", FeVariable, False, data );
 	if ( recoveredStressField )
 		AnalyticSolution_CreateAnalyticSymmetricTensorField( self, recoveredStressField, Velic_solA_StressFunction );
 	

Modified: long/3D/Gale/trunk/src/StgFEM/plugins/VelicAnalyticSolutions/Velic_solB/solB.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/plugins/VelicAnalyticSolutions/Velic_solB/solB.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/plugins/VelicAnalyticSolutions/Velic_solB/solB.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -271,7 +271,7 @@
 
 }
 	
-void _Velic_solB_Construct( void* analyticSolution, Stg_ComponentFactory* cf ) {
+void _Velic_solB_Construct( void* analyticSolution, Stg_ComponentFactory* cf, void* data ) {
 	Velic_solB* self = (Velic_solB*) analyticSolution;
 	FeVariable*              velocityField;
 	FeVariable*              pressureField;
@@ -280,25 +280,25 @@
 	FeVariable*              recoverdStrainRateField;
 
 	/* Construct Parent */
-	_AnalyticSolution_Construct( self, cf );
+	_AnalyticSolution_Construct( self, cf, data );
 
 	/* Create Analytic Fields */
-	velocityField = Stg_ComponentFactory_ConstructByName( cf, "VelocityField", FeVariable, True );
+	velocityField = Stg_ComponentFactory_ConstructByName( cf, "VelocityField", FeVariable, True, data ); 
 	AnalyticSolution_CreateAnalyticVectorField( self, velocityField, Velic_solB_VelocityFunction );
 
-	pressureField = Stg_ComponentFactory_ConstructByName( cf, "PressureField", FeVariable, True );
+	pressureField = Stg_ComponentFactory_ConstructByName( cf, "PressureField", FeVariable, True, data ); 
 	AnalyticSolution_CreateAnalyticField( self, pressureField, Velic_solB_PressureFunction );
 
-	stressField = Stg_ComponentFactory_ConstructByName( cf, "StressField", FeVariable, False );
+	stressField = Stg_ComponentFactory_ConstructByName( cf, "StressField", FeVariable, False, data ); 
 	if ( stressField )
 		AnalyticSolution_CreateAnalyticSymmetricTensorField( self, stressField, Velic_solB_StressFunction );
 
-	strainRateField = Stg_ComponentFactory_ConstructByName( cf, "StrainRateField", FeVariable, False );
+	strainRateField = Stg_ComponentFactory_ConstructByName( cf, "StrainRateField", FeVariable, False, data ); 
 	if ( strainRateField  ) {
 		AnalyticSolution_CreateAnalyticSymmetricTensorField( self, strainRateField, Velic_solB_StrainRateFunction );
 	}
 
-	recoverdStrainRateField = Stg_ComponentFactory_ConstructByName( cf, "recoveredStrainRate", FeVariable, False );
+	recoverdStrainRateField = Stg_ComponentFactory_ConstructByName( cf, "recoveredStrainRate", FeVariable, False, data ); 
 	if( recoverdStrainRateField ) {
 		AnalyticSolution_CreateAnalyticSymmetricTensorField( self, recoverdStrainRateField, Velic_solB_StrainRateFunction );
 	}

Modified: long/3D/Gale/trunk/src/StgFEM/plugins/VelicAnalyticSolutions/Velic_solCA/solCA.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/plugins/VelicAnalyticSolutions/Velic_solCA/solCA.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/plugins/VelicAnalyticSolutions/Velic_solCA/solCA.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -196,26 +196,26 @@
 	Velic_solCA_MirkoFunction( analyticSolution, coord, 4, strainRate );
 }
 	
-void _Velic_solCA_Construct( void* analyticSolution, Stg_ComponentFactory* cf ) {
+void _Velic_solCA_Construct( void* analyticSolution, Stg_ComponentFactory* cf, void* data ) {
 	Velic_solCA* self = (Velic_solCA*) analyticSolution;
 	FeVariable*              velocityField;
 	FeVariable*              pressureField;
 	FeVariable*              stressField;
 	FeVariable*              strainRateField;
 	/* Construct Parent */
-	_AnalyticSolution_Construct( self, cf );
+	_AnalyticSolution_Construct( self, cf, data );
 
 	/* Create Analytic Fields */
-	velocityField = Stg_ComponentFactory_ConstructByName( cf, "VelocityField", FeVariable, True );
+	velocityField = Stg_ComponentFactory_ConstructByName( cf, "VelocityField", FeVariable, True, data );
 	AnalyticSolution_CreateAnalyticVectorField( self, velocityField, Velic_solCA_VelocityFunction );
 
-	pressureField = Stg_ComponentFactory_ConstructByName( cf, "PressureField", FeVariable, True );
+	pressureField = Stg_ComponentFactory_ConstructByName( cf, "PressureField", FeVariable, True, data );
 	AnalyticSolution_CreateAnalyticField( self, pressureField, Velic_solCA_PressureFunction );
 
-	strainRateField = Stg_ComponentFactory_ConstructByName( cf, "StrainRateField", FeVariable, False );
+	strainRateField = Stg_ComponentFactory_ConstructByName( cf, "StrainRateField", FeVariable, False, data );
 	AnalyticSolution_CreateAnalyticField( self, strainRateField, Velic_solCA_StrainRateFunction );
 
-	stressField = Stg_ComponentFactory_ConstructByName( cf, "StressField", FeVariable, False );
+	stressField = Stg_ComponentFactory_ConstructByName( cf, "StressField", FeVariable, False, data );
 	if ( stressField )
 		AnalyticSolution_CreateAnalyticSymmetricTensorField( self, stressField, Velic_solCA_StressFunction );
 

Modified: long/3D/Gale/trunk/src/StgFEM/plugins/VelicAnalyticSolutions/Velic_solD/solD.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/plugins/VelicAnalyticSolutions/Velic_solD/solD.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/plugins/VelicAnalyticSolutions/Velic_solD/solD.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -1194,7 +1194,7 @@
 	}
 }
 
-void _Velic_solD_Construct( void* analyticSolution, Stg_ComponentFactory* cf ) {
+void _Velic_solD_Construct( void* analyticSolution, Stg_ComponentFactory* cf, void* data ) {
 	Velic_solD* self = (Velic_solD*) analyticSolution;
 	FeVariable*              velocityField;
 	FeVariable*              pressureField;
@@ -1202,21 +1202,21 @@
 	//FeVariable*              strainRateField;
 
 	/* Construct Parent */
-	_AnalyticSolution_Construct( self, cf );
+	_AnalyticSolution_Construct( self, cf, data );
 
 	/* Create Analytic Fields */
-	velocityField = Stg_ComponentFactory_ConstructByName( cf, "VelocityField", FeVariable, True );
+	velocityField = Stg_ComponentFactory_ConstructByName( cf, "VelocityField", FeVariable, True, data ); 
 	AnalyticSolution_CreateAnalyticVectorField( self, velocityField, Velic_solD_VelocityFunction );
 
-	pressureField = Stg_ComponentFactory_ConstructByName( cf, "PressureField", FeVariable, True );
+	pressureField = Stg_ComponentFactory_ConstructByName( cf, "PressureField", FeVariable, True, data ); 
 	AnalyticSolution_CreateAnalyticField( self, pressureField, Velic_solD_PressureFunction );
 
-	stressField = Stg_ComponentFactory_ConstructByName( cf, "StressField", FeVariable, False );
+	stressField = Stg_ComponentFactory_ConstructByName( cf, "StressField", FeVariable, False, data ); 
 	if ( stressField )
 		AnalyticSolution_CreateAnalyticSymmetricTensorField( self, stressField, Velic_solD_StressFunction );
 		
 #if 0
-	strainRateField = Stg_ComponentFactory_ConstructByName( cf, "StrainRateField", FeVariable, False );
+	strainRateField = Stg_ComponentFactory_ConstructByName( cf, "StrainRateField", FeVariable, False, data ); 
 	if ( strainRateField )
 		AnalyticSolution_CreateAnalyticSymmetricTensorField( self, strainRateField, Velic_solD_StrainRateFunction );
 #endif

Modified: long/3D/Gale/trunk/src/StgFEM/plugins/VelicAnalyticSolutions/Velic_solKx/solKx.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/plugins/VelicAnalyticSolutions/Velic_solKx/solKx.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/plugins/VelicAnalyticSolutions/Velic_solKx/solKx.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -648,23 +648,23 @@
 	
 }
 	
-void _Velic_solKx_Construct( void* analyticSolution, Stg_ComponentFactory* cf ) {
+void _Velic_solKx_Construct( void* analyticSolution, Stg_ComponentFactory* cf, void* data ) {
 	Velic_solKx* self = (Velic_solKx*) analyticSolution;
 	FeVariable*              velocityField;
 	FeVariable*              pressureField;
 	FeVariable*              stressField;
 
 	/* Construct Parent */
-	_AnalyticSolution_Construct( self, cf );
+	_AnalyticSolution_Construct( self, cf, data );
 
 	/* Create Analytic Fields */
-	velocityField = Stg_ComponentFactory_ConstructByName( cf, "VelocityField", FeVariable, True );
+	velocityField = Stg_ComponentFactory_ConstructByName( cf, "VelocityField", FeVariable, True, data ); 
 	AnalyticSolution_CreateAnalyticVectorField( self, velocityField, Velic_solKx_VelocityFunction );
 
-	pressureField = Stg_ComponentFactory_ConstructByName( cf, "PressureField", FeVariable, True );
+	pressureField = Stg_ComponentFactory_ConstructByName( cf, "PressureField", FeVariable, True, data ); 
 	AnalyticSolution_CreateAnalyticField( self, pressureField, Velic_solKx_PressureFunction );
 
-	stressField = Stg_ComponentFactory_ConstructByName( cf, "StressField", FeVariable, False );
+	stressField = Stg_ComponentFactory_ConstructByName( cf, "StressField", FeVariable, False, data ); 
 	if ( stressField )
 		AnalyticSolution_CreateAnalyticSymmetricTensorField( self, stressField, Velic_solKx_StressFunction );
 

Modified: long/3D/Gale/trunk/src/StgFEM/src/main.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/src/main.c	2006-10-14 18:32:12 UTC (rev 5027)
+++ long/3D/Gale/trunk/src/StgFEM/src/main.c	2006-10-14 18:32:16 UTC (rev 5028)
@@ -67,7 +67,6 @@
 	int				rank;
 	int				numProcessors;
 	Dictionary*			dictionary;
-	Dictionary*			componentDict;
 	XML_IO_Handler*			ioHandler;
 	int				tmp=0;
 	
@@ -110,8 +109,7 @@
 
 	/* Construction phase ----------------------------------------------------------------------------------------------*/
 	context = FiniteElementContext_New( "context", 0, 0, CommWorld, dictionary );
-	
-	componentDict = Dictionary_GetDictionary( dictionary, "components" );
+	Stg_Component_Construct( context, 0 /* dummy */, &context, True );
 
 	if ( componentDict == NULL ) {
 		componentDict = Dictionary_New();
@@ -138,7 +136,6 @@
 	}	
 
 	/* Building phase ---------------------------------------------------------------------------------------------------*/
-	//KeyCall( context, context->buildK, EntryPoint_VoidPtr_CallCast* )( KeyHandle(context,context->buildK), context );
 	Stg_Component_Build( context, 0 /* dummy */, False );
 	
 	/* Initialisaton phase ----------------------------------------------------------------------------------------------*/



More information about the cig-commits mailing list