[cig-commits] r5016 - in long/3D/Gale/trunk/src/StGermain: . Base/Automation/src Base/Automation/tests Base/Context/src Base/Context/tests Base/Extensibility/distributedtests Base/Extensibility/distributedtests/testplugins/LocalPlugin Base/Extensibility/distributedtests/testplugins/LocalPluginDep Base/Extensibility/src Discretisation/Geometry/src Discretisation/Mesh/src Discretisation/Shape/src Discretisation/Shape/tests Discretisation/Swarm/src Discretisation/Swarm/tests Discretisation/Swarm/tests/Bouncer Discretisation/Swarm/tests/SingleAttractor Discretisation/Swarm/tests/Spinner Discretisation/Swarm/tests/VaryingCornerAttractors Discretisation/Utils/src FD/src FD/tests libStGermain/src src

walter at geodynamics.org walter at geodynamics.org
Sat Oct 14 11:30:47 PDT 2006


Author: walter
Date: 2006-10-14 11:26:27 -0700 (Sat, 14 Oct 2006)
New Revision: 5016

Modified:
   long/3D/Gale/trunk/src/StGermain/
   long/3D/Gale/trunk/src/StGermain/Base/Automation/src/CallGraph.c
   long/3D/Gale/trunk/src/StGermain/Base/Automation/src/CompositeVC.c
   long/3D/Gale/trunk/src/StGermain/Base/Automation/src/CompositeVC.h
   long/3D/Gale/trunk/src/StGermain/Base/Automation/src/DocumentationComponentFactory.c
   long/3D/Gale/trunk/src/StGermain/Base/Automation/src/DocumentationComponentFactory.h
   long/3D/Gale/trunk/src/StGermain/Base/Automation/src/Stg_Component.c
   long/3D/Gale/trunk/src/StGermain/Base/Automation/src/Stg_Component.h
   long/3D/Gale/trunk/src/StGermain/Base/Automation/src/Stg_ComponentFactory.c
   long/3D/Gale/trunk/src/StGermain/Base/Automation/src/Stg_ComponentFactory.h
   long/3D/Gale/trunk/src/StGermain/Base/Automation/src/Variable.c
   long/3D/Gale/trunk/src/StGermain/Base/Automation/src/Variable.h
   long/3D/Gale/trunk/src/StGermain/Base/Automation/src/VariableCondition.c
   long/3D/Gale/trunk/src/StGermain/Base/Automation/src/VariableCondition.h
   long/3D/Gale/trunk/src/StGermain/Base/Automation/tests/testComponentCopy.c
   long/3D/Gale/trunk/src/StGermain/Base/Context/src/AbstractContext.c
   long/3D/Gale/trunk/src/StGermain/Base/Context/src/AbstractContext.h
   long/3D/Gale/trunk/src/StGermain/Base/Context/src/ContextEntryPoint.c
   long/3D/Gale/trunk/src/StGermain/Base/Context/src/shortcuts.h
   long/3D/Gale/trunk/src/StGermain/Base/Context/tests/testAbstractContext-noDtDefined.0of1.expected
   long/3D/Gale/trunk/src/StGermain/Base/Context/tests/testAbstractContext-noOptionsDefined.0of1.expected
   long/3D/Gale/trunk/src/StGermain/Base/Context/tests/testAbstractContext0.0of1.expected
   long/3D/Gale/trunk/src/StGermain/Base/Context/tests/testAbstractContext0.c
   long/3D/Gale/trunk/src/StGermain/Base/Context/tests/testAbstractContext1.0of1.expected
   long/3D/Gale/trunk/src/StGermain/Base/Context/tests/testAbstractContext1.c
   long/3D/Gale/trunk/src/StGermain/Base/Context/tests/testAbstractContextCheckPoint.0of1.expected
   long/3D/Gale/trunk/src/StGermain/Base/Context/tests/testAbstractContextCheckPoint.c
   long/3D/Gale/trunk/src/StGermain/Base/Extensibility/distributedtests/MockContext.c
   long/3D/Gale/trunk/src/StGermain/Base/Extensibility/distributedtests/testDistributedPlugin.c
   long/3D/Gale/trunk/src/StGermain/Base/Extensibility/distributedtests/testplugins/LocalPlugin/LocalPlugin.c
   long/3D/Gale/trunk/src/StGermain/Base/Extensibility/distributedtests/testplugins/LocalPluginDep/LocalPlugin1.c
   long/3D/Gale/trunk/src/StGermain/Base/Extensibility/distributedtests/testplugins/LocalPluginDep/LocalPlugin2.c
   long/3D/Gale/trunk/src/StGermain/Base/Extensibility/src/PluginsManager.c
   long/3D/Gale/trunk/src/StGermain/Base/Extensibility/src/PluginsManager.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/BlockGeometry.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/BlockGeometry.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/Delaunay.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/Delaunay.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/IJK26Topology.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/IJK26Topology.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/IJK6Topology.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/IJK6Topology.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/IJKTopology.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/IJKTopology.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/IrregGeometry.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/IrregGeometry.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/IrregTopology.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/IrregTopology.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/ParallelDelaunay.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/ParallelDelaunay.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/RefinedRegionsGeometry.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/RefinedRegionsGeometry.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/ShellGeometry.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/ShellGeometry.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/BodyNL.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/BodyNL.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/CartesianGenerator.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/CartesianGenerator.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/CommTopology.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/CommTopology.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/CornerNL.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/CornerNL.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/Decomp.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/Decomp.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/Decomp_Sync.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/Decomp_Sync.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/Decomp_Sync_Claim.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/Decomp_Sync_Claim.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/Decomp_Sync_Negotiate.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/Decomp_Sync_Negotiate.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/DummyMD.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/DummyMD.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/HMesh.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/HMesh.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/HexaEL.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/HexaEL.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/HexaMD.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/HexaMD.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/IrregEL.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/IrregEL.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshAdaptor.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshAdaptor.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshClass.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshClass.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshGenerator.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshGenerator.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshGeometry.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshGeometry.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshLayout.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshLayout.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshTopology.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshTopology.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/ParallelPipedHexaEL.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/ParallelPipedHexaEL.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/SurfaceAdaptor.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/SurfaceAdaptor.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/BelowCosinePlane.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/BelowCosinePlane.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/BelowPlane.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/BelowPlane.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Box.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Box.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/ConvexHull.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/ConvexHull.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Cylinder.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Cylinder.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Everywhere.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Everywhere.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Intersection.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Intersection.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/PolygonShape.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/PolygonShape.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Sphere.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Sphere.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Superellipsoid.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Superellipsoid.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Union.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Union.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/tests/testShape.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/ElementCellLayout.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/ElementCellLayout.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/FileParticleLayout.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/FileParticleLayout.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/GaussParticleLayout.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/GaussParticleLayout.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/LineParticleLayout.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/LineParticleLayout.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/ManualParticleLayout.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/ManualParticleLayout.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/OperatorSwarmVariable.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/OperatorSwarmVariable.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/ParticleCommHandler.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/ParticleCommHandler.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/PlaneParticleLayout.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/PlaneParticleLayout.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/RandomParticleLayout.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/RandomParticleLayout.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/SingleCellLayout.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/SingleCellLayout.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/SpaceFillerParticleLayout.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/SpaceFillerParticleLayout.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/SwarmClass.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/SwarmClass.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/SwarmDump.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/SwarmDump.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/SwarmOutput.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/SwarmOutput.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/SwarmVariable.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/SwarmVariable.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/TriGaussParticleLayout.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/TriGaussParticleLayout.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/TriSingleCellLayout.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/TriSingleCellLayout.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/UnionParticleLayout.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/UnionParticleLayout.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/WithinShapeParticleLayout.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/WithinShapeParticleLayout.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/tests/Bouncer/Bouncer.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/tests/SingleAttractor/SingleAttractor.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/tests/Spinner/Spinner.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/tests/VaryingCornerAttractors/VaryingCornerAttractors.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/tests/testParticleCoords.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/tests/testSwarmOutput.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/tests/testSwarmParticleAdvection.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/AllElementsVC.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/AllElementsVC.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/AllNodesVC.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/AllNodesVC.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/CellRemesher.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/CellRemesher.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/CornerVC.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/CornerVC.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/DiscretisationContext.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/DofLayout.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/DofLayout.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/FieldVariable.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/FieldVariable.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/FrictionVC.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/FrictionVC.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/InnerWallVC.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/InnerWallVC.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/MeshCoarsener_Hexa.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/MeshCoarsener_Hexa.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/OperatorFieldVariable.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/OperatorFieldVariable.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/Remesher.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/Remesher.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/SemiRegDeform.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/SemiRegDeform.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/ShapeAdvector.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/ShapeAdvector.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/ShapeVC.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/ShapeVC.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/SplitFrictionWallVC.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/SplitFrictionWallVC.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/StripRemesher.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/StripRemesher.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/Sync.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/Sync.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/TimeIntegratee.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/TimeIntegratee.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/TimeIntegrator.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/TimeIntegrator.h
   long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/WallVC.c
   long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/WallVC.h
   long/3D/Gale/trunk/src/StGermain/FD/src/MeshContext.c
   long/3D/Gale/trunk/src/StGermain/FD/tests/testMeshContext0.0of1.expected
   long/3D/Gale/trunk/src/StGermain/FD/tests/testMeshContext0.c
   long/3D/Gale/trunk/src/StGermain/libStGermain/src/StGermain.h
   long/3D/Gale/trunk/src/StGermain/src/main.c
Log:
 r3043 at earth:  boo | 2006-10-14 11:07:57 -0700
  r3031 at earth (orig r3851):  SteveQuenette | 2006-10-12 01:57:22 -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/StGermain
___________________________________________________________________
Name: svk:merge
   - 1ef209d2-b310-0410-a72d-e20c9eb0015c:/cig:3042
afb6c753-b9d0-0310-b4e7-dbd8d91cdd35:/trunk/StGermain:3850
   + 1ef209d2-b310-0410-a72d-e20c9eb0015c:/cig:3043
afb6c753-b9d0-0310-b4e7-dbd8d91cdd35:/trunk/StGermain:3851

Modified: long/3D/Gale/trunk/src/StGermain/Base/Automation/src/CallGraph.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Base/Automation/src/CallGraph.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Base/Automation/src/CallGraph.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -314,7 +314,8 @@
 			
 			newSize = self->_tableSize + _Stg_CallGraph_Table_Delta;
 			newTable = Memory_Alloc_Array( _Stg_CallGraph_Entry, newSize, _Stg_CallGrap_Entry_Type );
-			memcpy( newTable, self->table, self->_tableSize ); /* safe to do, we want to copy ptr values */
+			/* safe to do, we want to copy ptr values */
+			memcpy( newTable, self->table, self->_tableSize * sizeof(_Stg_CallGraph_Entry) ); 
 			Memory_Free( self->table );
 			self->table = newTable;
 			self->_tableSize = newSize;

Modified: long/3D/Gale/trunk/src/StGermain/Base/Automation/src/CompositeVC.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Base/Automation/src/CompositeVC.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Base/Automation/src/CompositeVC.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -300,11 +300,11 @@
 	}
 }
 
-void _CompositeVC_Construct( void* compositeVC, Stg_ComponentFactory *cf ) {
+void _CompositeVC_Construct( void* compositeVC, Stg_ComponentFactory* cf, void* data ) {
 	CompositeVC* self                      = (CompositeVC*)compositeVC;
 	void*        variableRegister          = NULL;
 	void*        conditionFunctionRegister = NULL;
-	void*        data                      = NULL;
+	void*        initData                      = NULL;
 	Dictionary*  vcDict                    = NULL;
 	Name         vcName;
 	
@@ -323,10 +323,10 @@
 //			Journal_Register( Error_Type, self->type ),
 //			"For %s '%s' - Cannont find variable condition dictionary '%s'\n", self->type, self->name, vcName );
 	
-	data = Stg_ComponentFactory_ConstructByKey( cf, self->name, "Data", Stg_Component, False );
+	initData = Stg_ComponentFactory_ConstructByKey( cf, self->name, "Data", Stg_Component, False, data );
 	
 	_VariableCondition_Init( self, variableRegister, conditionFunctionRegister, vcDict );
-	_CompositeVC_Init( self, data );
+	_CompositeVC_Init( self, initData );
 }
 
 void _CompositeVC_Delete(void* compositeVC)

Modified: long/3D/Gale/trunk/src/StGermain/Base/Automation/src/CompositeVC.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Base/Automation/src/CompositeVC.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Base/Automation/src/CompositeVC.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -71,14 +71,14 @@
 						Dictionary*					dictionary,
 						void*						data );
 	
-	CompositeVC*		CompositeVC_New(
+	CompositeVC*			CompositeVC_New(
 						Name						name,
 						Variable_Register*				variable_Register, 
 						ConditionFunction_Register*			conFunc_Register,
 						Dictionary*					dictionary,
 						void*						data );
 	
-	CompositeVC*		CompositeVC_DefaultNew( Name name );
+	CompositeVC*			CompositeVC_DefaultNew( Name name );
 	
 	void				CompositeVC_Init(
 						CompositeVC*					self, 
@@ -91,17 +91,17 @@
 	CompositeVC*			_CompositeVC_New( 
 						SizeT						_sizeOfSelf, 
 						Type						type,
-						Stg_Class_DeleteFunction*				_delete,
-						Stg_Class_PrintFunction*				_print,
+						Stg_Class_DeleteFunction*			_delete,
+						Stg_Class_PrintFunction*			_print,
 						Stg_Class_CopyFunction*				_copy, 
 						Stg_Component_DefaultConstructorFunction*	_defaultConstructor,
 						Stg_Component_ConstructFunction*		_construct,
 						Stg_Component_BuildFunction*			_build,
-						Stg_Component_InitialiseFunction*			_initialise,
+						Stg_Component_InitialiseFunction*		_initialise,
 						Stg_Component_ExecuteFunction*			_execute,
-						Stg_Component_DestroyFunction*		_destroy,
-						Name							name,
-						Bool							initFlag,
+						Stg_Component_DestroyFunction*			_destroy,
+						Name						name,
+						Bool						initFlag,
 						VariableCondition_BuildSelfFunc*		_buildSelf, 
 						VariableCondition_PrintConciseFunc*		_printConcise,
 						VariableCondition_ReadDictionaryFunc*		_readDictionary,
@@ -149,7 +149,7 @@
 	
 	void				_CompositeVC_Build( void* compositeVC, void* data );
 	
-	void				_CompositeVC_Construct( void* compositeVC, Stg_ComponentFactory *cf );
+	void				_CompositeVC_Construct( void* compositeVC, Stg_ComponentFactory* cf, void* data );
 	
 	void				_CompositeVC_ReadDictionary( void* compositeVC, void* dictionary );
 	

Modified: long/3D/Gale/trunk/src/StGermain/Base/Automation/src/DocumentationComponentFactory.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Base/Automation/src/DocumentationComponentFactory.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Base/Automation/src/DocumentationComponentFactory.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -239,7 +239,13 @@
 }
 
 
-Stg_Component* _DocumentationComponentFactory_ConstructByName( void* cf, Name componentName, Type type, Bool isEssential ) {
+Stg_Component* _DocumentationComponentFactory_ConstructByName( 
+		void*			cf, 
+		Name			componentName, 
+		Type			type, 
+		Bool			isEssential, 
+		void*			data )
+{
 	DocumentationComponentFactory*    self              = (DocumentationComponentFactory*) cf;
 
 	Journal_Printf( self->infoStream, "%sEssential Component - Type '%s' - Name = '%s'\n", 
@@ -248,8 +254,15 @@
 	return NULL;
 }
 
-Stg_Component* _DocumentationComponentFactory_ConstructByKey( void* cf, Name parentComponentName, Dictionary_Entry_Key componentKey, Type type, Bool isEssential ) {
-	DocumentationComponentFactory*    self              = (DocumentationComponentFactory*) cf;
+Stg_Component* _DocumentationComponentFactory_ConstructByKey( 
+		void*			cf, 
+		Name			parentComponentName, 
+		Dictionary_Entry_Key	componentKey, 
+		Type			type, 
+		Bool			isEssential,
+		void*			data ) 
+{
+	DocumentationComponentFactory* self = (DocumentationComponentFactory*) cf;
 	
 	Journal_Printf( self->infoStream, "%sEssential Component - Type '%s' - Key = '%s'\n", 
 			( isEssential ? "" : "Non-" ), type, componentKey );
@@ -257,8 +270,16 @@
 	return NULL;
 }
 
-Stg_Component* _DocumentationComponentFactory_ConstructByNameWithKeyFallback( void* cf, Name parentComponentName, Name componentTrialName, Dictionary_Entry_Key fallbackKey, Type type, Bool isEssential ) {
-	DocumentationComponentFactory*    self              = (DocumentationComponentFactory*) cf;
+Stg_Component* _DocumentationComponentFactory_ConstructByNameWithKeyFallback( 
+		void*			cf, 
+		Name			parentComponentName, 
+		Name			componentTrialName, 
+		Dictionary_Entry_Key	fallbackKey, 
+		Type			type, 
+		Bool			isEssential,
+		void*			data ) 
+{
+	DocumentationComponentFactory* self = (DocumentationComponentFactory*) cf;
 	
 	Journal_Printf( self->infoStream, "%sEssential Component - Type '%s' - Trial Name = '%s' - Fall back key = '%s'\n", 
 			( isEssential ? "" : "Non-" ), type, componentTrialName, fallbackKey );
@@ -267,15 +288,16 @@
 }
 
 Stg_Component** _DocumentationComponentFactory_ConstructByList( 
-			void*                componentFactory, 
-			Name                 parentComponentName, 
-			Name                 listName, 
-			unsigned int         maxComponents,
-			Type                 type,
-			Bool                 isEssential,
-			unsigned int*        componentCount )
+		void*			componentFactory, 
+		Name			parentComponentName, 
+		Name			listName, 
+		unsigned int		maxComponents,
+		Type			type,
+		Bool			isEssential,
+		unsigned int*		componentCount,
+		void*			data )
 {
-	DocumentationComponentFactory*       self              = (DocumentationComponentFactory*)componentFactory;
+	DocumentationComponentFactory* self = (DocumentationComponentFactory*)componentFactory;
 
 	Journal_Printf( self->infoStream, "%sEssential Components of type '%s' in list named '%s'\n", 
 			( isEssential ? "" : "Non-" ), type, listName );
@@ -305,7 +327,7 @@
 
 	Journal_Printf( stream, "Parent - %s\n", GetParent( type ) );
 
-	Stg_Component_Construct( component, self, True );
+	Stg_Component_Construct( component, (Stg_ComponentFactory*)self, 0 /* dummy */, True );
 
 	Stg_Class_Delete( component );
 	Stream_UnIndent( self->infoStream );

Modified: long/3D/Gale/trunk/src/StGermain/Base/Automation/src/DocumentationComponentFactory.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Base/Automation/src/DocumentationComponentFactory.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Base/Automation/src/DocumentationComponentFactory.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -107,18 +107,36 @@
 	Bool _DocumentationComponentFactory_GetRootDictBool( void* cf, Dictionary_Entry_Key key, const Bool defaultVal ) ;
 	char* _DocumentationComponentFactory_GetRootDictString( void* cf, Dictionary_Entry_Key key, const char* defaultVal ) ;
 
-	Stg_Component* _DocumentationComponentFactory_ConstructByName( void* componentFactory, Name componentName, Type type, Bool isEssential ) ;
-	Stg_Component* _DocumentationComponentFactory_ConstructByKey( void* componentFactory, Name parentComponentName, Dictionary_Entry_Key componentKey, Type type, Bool isEssential ) ;
-	Stg_Component* _DocumentationComponentFactory_ConstructByNameWithKeyFallback( void* componentFactory, Name parentComponentName, Name componentTrialName, Dictionary_Entry_Key componentTrialKey, Type type, Bool isEssential ) ;
-
+	Stg_Component* _DocumentationComponentFactory_ConstructByName( 
+		void*			componentFactory, 
+		Name			componentName, 
+		Type			type, 
+		Bool			isEssential,
+		void*			data ) ;
+	Stg_Component* _DocumentationComponentFactory_ConstructByKey( 
+		void*			componentFactory, 
+		Name			parentComponentName, 
+		Dictionary_Entry_Key	componentKey, 
+		Type			type, 
+		Bool			isEssential,
+		void*			data ) ;
+	Stg_Component* _DocumentationComponentFactory_ConstructByNameWithKeyFallback( 
+		void*			componentFactory, 
+		Name			parentComponentName, 
+		Name			componentTrialName, 
+		Dictionary_Entry_Key	componentTrialKey, 
+		Type			type, 
+		Bool			isEssential,
+		void*			data ) ;
 	Stg_Component** _DocumentationComponentFactory_ConstructByList( 
-			void*                componentFactory, 
-			Name                 parentComponentName, 
-			Name                 listName, 
-			unsigned int         maxComponents,
-			Type                 type,
-			Bool                 isEssential,
-			unsigned int*        componentCount );
+		void*			componentFactory, 
+		Name			parentComponentName, 
+		Name			listName, 
+		unsigned int		maxComponents,
+		Type			type,
+		Bool			isEssential,
+		unsigned int*		componentCount,
+		void*			data );
 
 	void DocumentationComponentFactory_DocumentType( void* cf, Type type ) ;
 

Modified: long/3D/Gale/trunk/src/StGermain/Base/Automation/src/Stg_Component.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Base/Automation/src/Stg_Component.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Base/Automation/src/Stg_Component.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -187,9 +187,8 @@
 	return newComponent;
 }
 
-void Stg_Component_Construct( void* component, void* data, Bool force ) {
+void Stg_Component_Construct( void* component, Stg_ComponentFactory* cf, void* data, Bool force ) {
 	Stg_Component* self   = (Stg_Component*)component;
-	Stg_ComponentFactory* cf = (Stg_ComponentFactory*)data;
 
 	assert( self );
 	
@@ -221,7 +220,7 @@
 		}
 		
 		self->isConstructed = True;
-		self->_construct( self, data );
+		self->_construct( self, cf, data );
 		
 		#ifdef USE_PROFILE
 			Stg_CallGraph_Pop( stgCallGraph );

Modified: long/3D/Gale/trunk/src/StGermain/Base/Automation/src/Stg_Component.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Base/Automation/src/Stg_Component.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Base/Automation/src/Stg_Component.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -42,11 +42,13 @@
 	
 	/* Templates of virtual functions */
 	typedef void*				(Stg_Component_DefaultConstructorFunction)	( Name name );
-	typedef void				(Stg_Component_ConstructFunction)		( void* component, Stg_ComponentFactory* data );
-	typedef void				(Stg_Component_BuildFunction)		( void* component, void* data );
+	typedef void				(Stg_Component_ConstructFunction)		( void* component, 
+												  Stg_ComponentFactory* cf,
+												  void* data );
+	typedef void				(Stg_Component_BuildFunction)			( void* component, void* data );
 	typedef void				(Stg_Component_InitialiseFunction)		( void* component, void* data );
-	typedef void				(Stg_Component_ExecuteFunction)		( void* component, void* data );
-	typedef void				(Stg_Component_DestroyFunction)		( void* component, void* data );
+	typedef void				(Stg_Component_ExecuteFunction)			( void* component, void* data );
+	typedef void				(Stg_Component_DestroyFunction)			( void* component, void* data );
 	
 	/* Textual name of this class */
 	extern const Type Stg_Component_Type;
@@ -138,7 +140,7 @@
 		(Stg_Component*)Stg_Class_Copy( self, NULL, True, NULL, NULL )
 	
 	/** Contruct the component. Configure/setup the component. */
-	void Stg_Component_Construct( void* component, void* data, Bool force );
+	void Stg_Component_Construct( void* component, Stg_ComponentFactory* cf, void* data, Bool force );
 	
 	/** Build the component: Take the configuration and instantiate the component (do all main mallocs, etc). */
 	void Stg_Component_Build( void* component, void* data, Bool force );

Modified: long/3D/Gale/trunk/src/StGermain/Base/Automation/src/Stg_ComponentFactory.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Base/Automation/src/Stg_ComponentFactory.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Base/Automation/src/Stg_ComponentFactory.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -255,7 +255,7 @@
 	}
 }
 
-void Stg_ComponentFactory_ConstructComponents( Stg_ComponentFactory *self ) {
+void Stg_ComponentFactory_ConstructComponents( Stg_ComponentFactory* self, void* data ) {
 	Dictionary_Entry*                      componentDictEntry           = NULL;
 	Dictionary*                            currComponentDict            = NULL;
 	Type                                   componentType                = NULL;
@@ -281,7 +281,7 @@
 			/* Grab component from register */
 			component = LiveComponentRegister_Get( self->LCRegister, componentName );
 			if( component && !component->isConstructed ){
-				Stg_Component_Construct( component, self, True );
+				Stg_Component_Construct( component, self, data, True );
 			}
 		}
 		Stream_UnIndent( stream );
@@ -508,10 +508,10 @@
 }
 
 
-Stg_Component* _Stg_ComponentFactory_ConstructByName( void* cf, Name componentName, Type type, Bool isEssential ) {
-	Stg_ComponentFactory*    self              = (Stg_ComponentFactory*)cf;
-	Stg_Component*           component;
-	Stream*              stream            = self->infoStream;
+Stg_Component* _Stg_ComponentFactory_ConstructByName( void* cf, Name componentName, Type type, Bool isEssential, void* data ) {
+	Stg_ComponentFactory*	self              = (Stg_ComponentFactory*)cf;
+	Stg_Component*		component;
+	Stream*			stream            = self->infoStream;
 
 	Journal_PrintfL( stream, 2, "Looking for %sessential component '%s': ", (isEssential ? "" : "non-"), componentName );
 
@@ -524,7 +524,7 @@
 		if ( !component->isConstructed ) {
 			Journal_Printf( stream, "%s has not been constructed yet. Constructing now.\n", componentName );
 			Stream_Indent( stream );
-			Stg_Component_Construct( component, self, True );
+			Stg_Component_Construct( component, self, data, True );
 			Stream_UnIndent( stream );
 		}
 
@@ -556,13 +556,20 @@
 	return component;
 }
 
-Stg_Component* _Stg_ComponentFactory_ConstructByKey( void* cf, Name parentComponentName, Dictionary_Entry_Key componentKey, Type type, Bool isEssential ) {
-	Stg_ComponentFactory*       self              = (Stg_ComponentFactory*)cf;
-	Dictionary*             thisComponentDict = NULL;
-	Dictionary*             componentDict     = NULL;
-	Name                    componentName;
-	Dictionary_Entry_Value* componentEntryVal;
-	Stream*                 errorStream       = Journal_Register( Error_Type, self->type );
+Stg_Component* _Stg_ComponentFactory_ConstructByKey( 
+		void*			cf, 
+		Name			parentComponentName, 
+		Dictionary_Entry_Key	componentKey,
+		Type			type, 
+		Bool 			isEssential,
+		void* 			data ) 
+{
+	Stg_ComponentFactory*	self              = (Stg_ComponentFactory*)cf;
+	Dictionary*		thisComponentDict = NULL;
+	Dictionary*		componentDict     = NULL;
+	Name			componentName;
+	Dictionary_Entry_Value*	componentEntryVal;
+	Stream*			errorStream       = Journal_Register( Error_Type, self->type );
 
 	Journal_Firewall( self != NULL, errorStream, "In func %s: Stg_Component is NULL.\n", __func__ );
 
@@ -585,13 +592,21 @@
 		
 	componentName = Dictionary_Entry_Value_AsString( componentEntryVal );
 
-	return self->constructByName( self, componentName, type, isEssential );
+	return self->constructByName( self, componentName, type, isEssential, data );
 }
 
-Stg_Component* _Stg_ComponentFactory_ConstructByNameWithKeyFallback( void* cf, Name parentComponentName, Name componentTrialName, Dictionary_Entry_Key fallbackKey, Type type, Bool isEssential ) {
-	Stg_ComponentFactory*       self              = (Stg_ComponentFactory*)cf;
-	Stg_Component*              component;
-	Stream*                 stream            = self->infoStream;
+Stg_Component* _Stg_ComponentFactory_ConstructByNameWithKeyFallback( 
+		void*			cf, 
+		Name 			parentComponentName, 
+		Name			componentTrialName, 
+		Dictionary_Entry_Key	fallbackKey, 
+		Type			type, 
+		Bool			isEssential,
+		void*			data ) 
+{
+	Stg_ComponentFactory*	self              = (Stg_ComponentFactory*)cf;
+	Stg_Component*		component;
+	Stream*			stream            = self->infoStream;
 
 	Journal_PrintfL( stream, 2, "First Trying to find component by name '%s': ", componentTrialName );
 	component = LiveComponentRegister_Get( self->LCRegister, componentTrialName );
@@ -602,7 +617,7 @@
 		if ( !component->isConstructed ) {
 			Journal_Printf( stream, "%s has not been constructed yet. Constructing now.\n", componentTrialName );
 			Stream_Indent( stream );
-			Stg_Component_Construct( component, self, True );
+			Stg_Component_Construct( component, self, data, True );
 			Stream_UnIndent( stream );
 		}
 	}
@@ -610,29 +625,30 @@
 		Journal_PrintfL( stream, 2, "Not found.\n" );
 		Journal_PrintfL( stream, 2, "Fallback - Trying to find component by key '%s'.\n", fallbackKey );
 
-		component = self->constructByKey( self, parentComponentName, fallbackKey, type, isEssential );
+		component = self->constructByKey( self, parentComponentName, fallbackKey, type, isEssential, data );
 	}
 		
 	return component;
 }
 
 Stg_Component** _Stg_ComponentFactory_ConstructByList( 
-			void*                cf, 
-			Name                 parentComponentName, 
-			Name                 listName, 
-			unsigned int         maxComponents,
-			Type                 type,
-			Bool                 isEssential,
-			unsigned int*        componentCount )
+		void*			cf, 
+		Name			parentComponentName, 
+		Name			listName, 
+		unsigned int		maxComponents,
+		Type			type,
+		Bool			isEssential,
+		unsigned int*		componentCount,
+		void*			data )
 {
-	Stg_ComponentFactory*       self              = (Stg_ComponentFactory*)cf;
-	Dictionary*             thisComponentDict = NULL;
-	Dictionary*             componentDict     = NULL;
-	Name                    componentName;
-	Dictionary_Entry_Value* list;
-	Stg_Component**             componentList;
-	Index                   component_I;
-	Stream*                 errorStream       = Journal_Register( Error_Type, self->type );
+	Stg_ComponentFactory*	self              = (Stg_ComponentFactory*)cf;
+	Dictionary*		thisComponentDict = NULL;
+	Dictionary*		componentDict     = NULL;
+	Name			componentName;
+	Dictionary_Entry_Value*	list;
+	Stg_Component**		componentList;
+	Index			component_I;
+	Stream*			errorStream       = Journal_Register( Error_Type, self->type );
 
 	Journal_Firewall( self != NULL, errorStream, "In func %s: Stg_Component is NULL.\n", __func__ );
 
@@ -656,7 +672,7 @@
 		for ( component_I = 0 ; component_I < *componentCount ; component_I++ ) {
 			componentName = Dictionary_Entry_Value_AsString( Dictionary_Entry_Value_GetElement( list, component_I ) );
 
-			componentList[ component_I ] = self->constructByName( self, componentName, type, isEssential );
+			componentList[ component_I ] = self->constructByName( self, componentName, type, isEssential, data );
 		}
 		Stream_UnIndent( self->infoStream );
 	}

Modified: long/3D/Gale/trunk/src/StGermain/Base/Automation/src/Stg_ComponentFactory.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Base/Automation/src/Stg_ComponentFactory.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Base/Automation/src/Stg_ComponentFactory.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -90,20 +90,23 @@
 			void*                cf, 
 			Name                 componentName, 
 			Type                 type, 
-			Bool                 isEssential ) ;
+			Bool                 isEssential,
+			void*                data ) ;
 	typedef Stg_Component* (Stg_ComponentFactory_ConstructByKeyFunc) (
 			void*                cf, 
 			Name                 parentComponentName, 
 			Dictionary_Entry_Key componentKey, 
 			Type                 type, 
-			Bool                 isEssential );
+			Bool                 isEssential,
+			void*                data );
 	typedef Stg_Component* (Stg_ComponentFactory_ConstructByNameWithKeyFallbackFunc) ( 
 			void*                cf, 
 			Name                 parentComponentName, 
 			Name                 componentTrialName, 
 			Dictionary_Entry_Key componentTrialKey, 
 			Type                 type, 
-			Bool                 isEssential ) ;
+			Bool                 isEssential,
+			void*                data ) ;
 
 	typedef Stg_Component** (Stg_ComponentFactory_ConstructByListFunc) ( 
 			void*                cf, 
@@ -112,7 +115,8 @@
 			unsigned int         maxComponents,
 			Type                 type, 
 			Bool                 isEssential,
-			unsigned int*        componentCount ) ;
+			unsigned int*        componentCount,
+			void*                data ) ;
 
 	#define __Stg_ComponentFactory \
 		/* General info */ \
@@ -197,7 +201,7 @@
 
 	void Stg_ComponentFactory_CreateComponents( Stg_ComponentFactory *self );
 	
-	void Stg_ComponentFactory_ConstructComponents( Stg_ComponentFactory *self );
+	void Stg_ComponentFactory_ConstructComponents( Stg_ComponentFactory* self, void* data );
 	
 	Dictionary_Entry_Value* _Stg_ComponentFactory_GetDictionaryValue( 
 			void* cf, Name componentName, Dictionary_Entry_Key key, Dictionary_Entry_Value* defaultVal ) ;
@@ -229,31 +233,48 @@
 	char* Stg_ComponentFactory_GetRootDictString( void* cf, Dictionary_Entry_Key key, const char* defaultVal ) ;
 	char* _Stg_ComponentFactory_GetRootDictString( void* cf, Dictionary_Entry_Key key, const char* defaultVal ) ;
 
-	#define Stg_ComponentFactory_ConstructByName( cf, componentName, type, isEssential ) \
-		(type*) ( (Stg_ComponentFactory*) cf )->constructByName( cf, componentName, type ## _Type, isEssential )
-	Stg_Component* _Stg_ComponentFactory_ConstructByName( void* cf, Name componentName, Type type, Bool isEssential ) ;
+	#define Stg_ComponentFactory_ConstructByName( cf, componentName, type, isEssential, data ) \
+		(type*) ( (Stg_ComponentFactory*) cf )->constructByName( cf, componentName, type ## _Type, isEssential, data )
+	Stg_Component* _Stg_ComponentFactory_ConstructByName( void* cf, Name componentName, Type type, Bool isEssential, void* d );
 	
-	#define Stg_ComponentFactory_ConstructByKey( cf, parentComponentName, componentKey, type, isEssential ) \
-		(type*) ( (Stg_ComponentFactory*) cf )->constructByKey( cf, parentComponentName, componentKey, type ## _Type, isEssential )
-	Stg_Component* _Stg_ComponentFactory_ConstructByKey( void* cf, Name parentComponentName, Dictionary_Entry_Key componentKey, Type type, Bool isEssential ) ;
+	#define Stg_ComponentFactory_ConstructByKey( cf, parentComponentName, componentKey, type, isEssential, data ) \
+		(type*) ( (Stg_ComponentFactory*) cf )->constructByKey( \
+			cf, parentComponentName, componentKey, type ## _Type, isEssential, data )
+	Stg_Component* _Stg_ComponentFactory_ConstructByKey( 
+		void*			cf, 
+		Name			parentComponentName, 
+		Dictionary_Entry_Key	componentKey, 
+		Type			type, 
+		Bool			isEssential,
+		void*			data ) ;
 
-	#define Stg_ComponentFactory_ConstructByNameWithKeyFallback( cf, parentComponentName, componentTrialName, componentFallbackKey, type, isEssential ) \
+	#define Stg_ComponentFactory_ConstructByNameWithKeyFallback( \
+		cf, parentComponentName, componentTrialName, componentFallbackKey, type, isEssential, data ) \
 		(type*) ( (Stg_ComponentFactory*) cf )->constructByNameWithKeyFallback( \
-			cf, parentComponentName, componentTrialName, componentFallbackKey, type ## _Type, isEssential )
-	Stg_Component* _Stg_ComponentFactory_ConstructByNameWithKeyFallback( void* cf, Name parentComponentName, Name componentTrialName, Dictionary_Entry_Key componentTrialKey, Type type, Bool isEssential ) ;
+			cf, parentComponentName, componentTrialName, componentFallbackKey, type ## _Type, isEssential, data )
+	Stg_Component* _Stg_ComponentFactory_ConstructByNameWithKeyFallback( 
+		void*			cf, 
+		Name			parentComponentName, 
+		Name			componentTrialName, 
+		Dictionary_Entry_Key	componentTrialKey, 
+		Type			type, 
+		Bool			isEssential,
+		void*			data ) ;
 
-	#define Stg_ComponentFactory_ConstructByList( cf, parentComponentName, listName, maxComponents, type, isEssential, componentCount ) \
+	#define Stg_ComponentFactory_ConstructByList( \
+		cf, parentComponentName, listName, maxComponents, type, isEssential, componentCount, data ) \
 		(type**) ( (Stg_ComponentFactory*) cf )->constructByList( \
-			cf, parentComponentName, listName, maxComponents, type ## _Type, isEssential, componentCount )
+			cf, parentComponentName, listName, maxComponents, type ## _Type, isEssential, componentCount, data )
 
 	Stg_Component** _Stg_ComponentFactory_ConstructByList( 
-			void*                cf, 
-			Name                 parentComponentName, 
-			Name                 listName, 
-			unsigned int         maxComponents,
-			Type                 type,
-			Bool                 isEssential,
-			unsigned int*        componentCount );
+		void*			cf, 
+		Name			parentComponentName, 
+		Name			listName, 
+		unsigned int		maxComponents,
+		Type			type,
+		Bool			isEssential,
+		unsigned int*		componentCount,
+		void*			data );
 
 	#define Stg_ComponentFactory_Unlimited ((unsigned int) -1)
 

Modified: long/3D/Gale/trunk/src/StGermain/Base/Automation/src/Variable.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Base/Automation/src/Variable.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Base/Automation/src/Variable.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -814,7 +814,7 @@
 void _Variable_Execute( void* variable, void* data ) {
 }
 
-void _Variable_Construct( void* variable, Stg_ComponentFactory* cf ) {
+void _Variable_Construct( void* variable, Stg_ComponentFactory* cf, void* data ) {
 	Variable*           self              = (Variable*) variable;
 	SizeT			    dataOffsets[]     = { 0 };
 	Variable_DataType	dataTypes[]       = { 0 };		/* Init value later */
@@ -843,7 +843,7 @@
 	pointerRegister = Stg_ObjectList_Get( cf->registerRegister, "Pointer_Register" );
 	assert( pointerRegister );
 	
-	Stg_ComponentFactory_ConstructByKey( cf, self->name, "Dependency", Stg_Component, False );
+	Stg_ComponentFactory_ConstructByKey( cf, self->name, "Dependency", Stg_Component, False, data );
 			
 	/* Get Pointer to number of elements in array */
 	countName = Dictionary_GetString( thisComponentDict, "Count" );

Modified: long/3D/Gale/trunk/src/StGermain/Base/Automation/src/Variable.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Base/Automation/src/Variable.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Base/Automation/src/Variable.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -239,7 +239,7 @@
 	/** Execution implementation */
 	void _Variable_Execute( void* variable, void* data );
 	
-	void _Variable_Construct( void* variable, Stg_ComponentFactory* cf );
+	void _Variable_Construct( void* variable, Stg_ComponentFactory* cf, void* data );
 	
 	void _Variable_Destroy( void* variable, void* data );
 	

Modified: long/3D/Gale/trunk/src/StGermain/Base/Automation/src/VariableCondition.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Base/Automation/src/VariableCondition.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Base/Automation/src/VariableCondition.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -337,7 +337,7 @@
 ** Build functions
 */
 
-void _VariableCondition_Construct( void* variableCondition, Stg_ComponentFactory* cf )
+void _VariableCondition_Construct( void* variableCondition, Stg_ComponentFactory* cf, void* data )
 {
 	
 }

Modified: long/3D/Gale/trunk/src/StGermain/Base/Automation/src/VariableCondition.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Base/Automation/src/VariableCondition.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Base/Automation/src/VariableCondition.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -197,7 +197,7 @@
 	/*--------------------------------------------------------------------------------------------------------------------------
 	** Build functions
 	*/
-	void				_VariableCondition_Construct( void* variableCondition, Stg_ComponentFactory* cf );
+	void				_VariableCondition_Construct( void* variableCondition, Stg_ComponentFactory* cf, void* d );
 	void				_VariableCondition_Build( void* variableCondition, void* data );
 	void				_VariableCondition_Initialise( void* variableCondition, void* data );
 	void				_VariableCondition_Execute( void* variableCondition, void* data );

Modified: long/3D/Gale/trunk/src/StGermain/Base/Automation/tests/testComponentCopy.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Base/Automation/tests/testComponentCopy.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Base/Automation/tests/testComponentCopy.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -79,7 +79,7 @@
 void Stg_ComponentA_Delete( void* class );
 void Stg_ComponentA_Print( void* class, Stream* s );
 void* Stg_ComponentA_Copy( void* self, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
-void Stg_ComponentA_Construct( void* component, Stg_ComponentFactory* cf);
+void Stg_ComponentA_Construct( void* component, Stg_ComponentFactory* cf, void* data );
 void Stg_ComponentA_Build( void* component, void* data );
 void Stg_ComponentA_Initialise( void* component, void* data );
 void Stg_ComponentA_Execute( void* component, void* data );
@@ -131,11 +131,11 @@
 	
 	return newCopy;
 }
-void Stg_ComponentA_Construct( void* component, Stg_ComponentFactory* cf) {
+void Stg_ComponentA_Construct( void* component, Stg_ComponentFactory* cf, void* data ) {
 	Stg_ComponentA* self = (Stg_ComponentA*)component;
 
-	self->b =  Stg_ComponentFactory_ConstructByName(  cf,  "b", Stg_ComponentB,  True  ) ;
-	self->c =  Stg_ComponentFactory_ConstructByName(  cf,  "c", Stg_ComponentC,  True  ) ;
+	self->b =  Stg_ComponentFactory_ConstructByName(  cf,  "b", Stg_ComponentB,  True, data  ) ;
+	self->c =  Stg_ComponentFactory_ConstructByName(  cf,  "c", Stg_ComponentC,  True, data  ) ;
 }
 void Stg_ComponentA_Build( void* component, void* data ) {
 	Stg_ComponentA* self = (Stg_ComponentA*)component;
@@ -161,7 +161,7 @@
 void Stg_ComponentB_Delete( void* class );
 void Stg_ComponentB_Print( void* class, Stream* s );
 void* Stg_ComponentB_Copy( void* self, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
-void Stg_ComponentB_Construct( void* component, Stg_ComponentFactory* cf);
+void Stg_ComponentB_Construct( void* component, Stg_ComponentFactory* cf, void* data );
 void Stg_ComponentB_Build( void* component, void* data );
 void Stg_ComponentB_Initialise( void* component, void* data );
 void Stg_ComponentB_Execute( void* component, void* data );
@@ -205,7 +205,7 @@
 	
 	return newCopy;
 }
-void Stg_ComponentB_Construct( void* component, Stg_ComponentFactory* cf) {
+void Stg_ComponentB_Construct( void* component, Stg_ComponentFactory* cf, void* data ) {
 }
 void Stg_ComponentB_Build( void* component, void* data ) {
 }
@@ -226,7 +226,7 @@
 void Stg_ComponentC_Delete( void* class );
 void Stg_ComponentC_Print( void* class, Stream* s );
 void* Stg_ComponentC_Copy( void* self, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
-void Stg_ComponentC_Construct( void* component, Stg_ComponentFactory* cf);
+void Stg_ComponentC_Construct( void* component, Stg_ComponentFactory* cf, void* data );
 void Stg_ComponentC_Build( void* component, void* data );
 void Stg_ComponentC_Initialise( void* component, void* data );
 void Stg_ComponentC_Execute( void* component, void* data );
@@ -275,10 +275,10 @@
 
 	return newCopy;
 }
-void Stg_ComponentC_Construct( void* component, Stg_ComponentFactory* cf) {
+void Stg_ComponentC_Construct( void* component, Stg_ComponentFactory* cf, void* data ) {
 	Stg_ComponentC* self = (Stg_ComponentC*)component;
 
-	self->b =  Stg_ComponentFactory_ConstructByName(  cf,  "b", Stg_ComponentB,  True  ) ;
+	self->b =  Stg_ComponentFactory_ConstructByName(  cf,  "b", Stg_ComponentB,  True, data  ) ;
 }
 void Stg_ComponentC_Build( void* component, void* data ) {
 	Stg_ComponentC* self = (Stg_ComponentC*)component;
@@ -367,7 +367,7 @@
 			cf = Stg_ComponentFactory_New( dictionary, componentDictionary, Stg_ObjectList_New() );
 
 			Stg_ComponentFactory_CreateComponents( cf );
-			Stg_ComponentFactory_ConstructComponents( cf );
+			Stg_ComponentFactory_ConstructComponents( cf, 0 /* dummy */ );
 
 			a = (Stg_ComponentA*)LiveComponentRegister_Get( cf->LCRegister, "a" );
 			

Modified: long/3D/Gale/trunk/src/StGermain/Base/Context/src/AbstractContext.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Base/Context/src/AbstractContext.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Base/Context/src/AbstractContext.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -41,6 +41,7 @@
 #include "shortcuts.h"
 #include "AbstractContext.h"
 #include "ContextEntryPoint.h"
+#include "DictionaryCheck.h"
 
 #include <stdio.h>
 #include <stdlib.h>
@@ -50,30 +51,37 @@
 #include <sys/stat.h>
 
 /* AbstractContext entry point names */
-Type AbstractContext_EP_Setup =  "AbstractContext_EP_Setup";
-Type AbstractContext_EP_ConstructExtensions =  "AbstractContext_EP_ConstructExtensions";
-Type AbstractContext_EP_Build =  "AbstractContext_EP_Build";
-Type AbstractContext_EP_IC =  "AbstractContext_EP_IC";
-Type AbstractContext_EP_Run =  "AbstractContext_EP_Run";
-Type AbstractContext_EP_Dt =  "AbstractContext_EP_Dt";
-Type AbstractContext_EP_Step =  "AbstractContext_EP_Step";
-Type AbstractContext_EP_UpdateClass =  "AbstractContext_EP_UpdateClass";
-Type AbstractContext_EP_BC =  "AbstractContext_EP_BC";
-Type AbstractContext_EP_Solve =  "AbstractContext_EP_Solve";
-Type AbstractContext_EP_Sync =  "AbstractContext_EP_Sync";
-Type AbstractContext_EP_DeleteExtensions =  "AbstractContext_EP_DeleteExtensions";
-Type AbstractContext_EP_FrequentOutput =  "AbstractContext_EP_FrequentOutput";
-Type AbstractContext_EP_Dump =  "AbstractContext_EP_Dump";
-Type AbstractContext_EP_DumpClass =  "AbstractContext_EP_DumpClass";
-Type AbstractContext_EP_Save =  "AbstractContext_EP_Save";
-Type AbstractContext_EP_SaveClass =  "AbstractContext_EP_SaveClass";
+Type AbstractContext_EP_Construct =		"Context_Construct";
+Type AbstractContext_EP_ConstructExtensions = 	"Context_ConstructExtensions";
+Type AbstractContext_EP_Build = 		"Context_Build";
+Type AbstractContext_EP_Initialise =		"Context_Initialise";
+Type AbstractContext_EP_Execute =		"Context_Execute";
+Type AbstractContext_EP_Destroy =		"Context_Destroy";
+Type AbstractContext_EP_DestroyExtensions = 	"Context_DestroyExtensions";
 
+Type AbstractContext_EP_Dt =			"Context_Dt";
+Type AbstractContext_EP_Step =			"Context_Step";
+Type AbstractContext_EP_UpdateClass =		"Context_UpdateClass";
+Type AbstractContext_EP_Solve =			"Context_Solve";
+Type AbstractContext_EP_Sync =			"Context_Sync";
+Type AbstractContext_EP_FrequentOutput = 	"Context_FrequentOutput";
+Type AbstractContext_EP_Dump =			"Context_Dump";
+Type AbstractContext_EP_DumpClass =		"Context_DumpClass";
+Type AbstractContext_EP_Save =			"Context_Save";
+Type AbstractContext_EP_SaveClass =		"Context_SaveClass";
 
+
+/* Dictionary entry names */
+const Type AbstractContext_Dict_Components =	"components";
+const Type AbstractContext_Dict_Applications =	"application_plugins";
+
+
 /* Class stuff ********************************************************************************************************************/
 
 
 /* Textual name of this class */
-const Type AbstractContext_Type = "AbstractContext";
+const Type AbstractContext_Type = "Context";
+const Type AbstractContext_Type_Verbose = "Context-verbose";
 
 AbstractContext* _AbstractContext_New(
 		SizeT						_sizeOfSelf,
@@ -121,9 +129,10 @@
 		double				stopTime,
 		MPI_Comm			communicator )
 {
-	Stream* debug = Journal_Register( DebugStream_Type, "Context" );
+	Stream* debug = Journal_Register( DebugStream_Type, AbstractContext_Type );
 	Dictionary_Entry_Value* dictEntryVal = NULL;
 	Dictionary *componentDict = NULL;
+	char buf[80];
 	
 	/* General and Virtual info should already be set */
 	
@@ -142,10 +151,11 @@
 			self->nproc,
 			self->rank );
 	}
-	self->info = Journal_Register( InfoStream_Type, "Context" );
-	self->verbose = Journal_Register( InfoStream_Type, "Context-verbose" );
-	if( !Dictionary_Get( self->dictionary, "journal.info.Context-verbose" ) ) {
-		Journal_Enable_NamedStream( InfoStream_Type, "Context-verbose", False );
+	self->info = Journal_Register( InfoStream_Type, AbstractContext_Type );
+	self->verbose = Journal_Register( InfoStream_Type, AbstractContext_Type_Verbose );
+	sprintf( buf, "journal.info.%s", AbstractContext_Type_Verbose );
+	if( !Dictionary_Get( self->dictionary, buf ) ) {
+		Journal_Enable_NamedStream( InfoStream_Type, AbstractContext_Type_Verbose, False );
 	}
 	/* Turn off the journal warning debug stream by default: even if debug is enabled in general */
 	if( !Dictionary_Get( self->dictionary, "journal.debug.DictionaryWarning" ) ) {
@@ -153,6 +163,7 @@
 	}
 	
 	/* Set up the registers and plugin manager */
+	self->CF = 0; /* gets built later */
 	self->objectList = Stg_ObjectList_New();
 	self->condFunc_Register = ConditionFunction_Register_New();
 	self->variable_Register = Variable_Register_New();
@@ -182,7 +193,10 @@
 			Bool ret;
 
 			if ( Stg_FileExists( self->outputPath ) ) {
-				Journal_Firewall( 0, self->info, "outputPath '%s' is a file an not a directory! Exiting...\n", self->outputPath );
+				Journal_Firewall( 
+					0, 
+					self->info, 
+					"outputPath '%s' is a file an not a directory! Exiting...\n", self->outputPath );
 			}
 			
 			Journal_Printf( self->info, "outputPath '%s' does not exist, attempting to create...\n", self->outputPath );
@@ -246,6 +260,7 @@
 	self->maxTimeSteps = Dictionary_Entry_Value_AsUnsignedInt( dictEntryVal );
 
 	self->finalTimeStep = Dictionary_GetUnsignedInt_WithDefault( self->dictionary, "finalTimeStep", 0 );
+	self->gracefulQuit = False;
 
 
 	// TODO: does this need to be read from checkpoint file???
@@ -268,30 +283,38 @@
 
 	/* Build the entryPoint table */
 	self->entryPoint_Register = EntryPoint_Register_New(); 
-	self->setupK = Context_AddEntryPoint( 
+	/* For the construct EP, override the run function such that the context/ptrToContext remain in sync in the loop. */
+	self->constructK = Context_AddEntryPoint( 
 		self, 
-		ContextEntryPoint_New( AbstractContext_EP_Setup, EntryPoint_VoidPtr_CastType ) );
+		ContextEntryPoint_New( AbstractContext_EP_Construct, EntryPoint_2VoidPtr_CastType ) );
+	AbstractContext_GetEntryPoint( self, AbstractContext_EP_Construct )->_getRun = _AbstractContext_Construct_EP_GetRun;
+	AbstractContext_GetEntryPoint( self, AbstractContext_EP_Construct )->run = 
+		EntryPoint_GetRun( AbstractContext_GetEntryPoint( self, AbstractContext_EP_Construct ) );
 	self->constructExtensionsK = Context_AddEntryPoint( 
 		self, 
 		ContextEntryPoint_New( AbstractContext_EP_ConstructExtensions, EntryPoint_VoidPtr_CastType ) );
 	self->buildK = Context_AddEntryPoint( 
 		self, 
 		ContextEntryPoint_New( AbstractContext_EP_Build, EntryPoint_VoidPtr_CastType ) );
-	self->icK = Context_AddEntryPoint( 
+	self->initialiseK = Context_AddEntryPoint( 
 		self, 
-		ContextEntryPoint_New( AbstractContext_EP_IC, EntryPoint_VoidPtr_CastType ) );
-	self->runK = Context_AddEntryPoint( 
+		ContextEntryPoint_New( AbstractContext_EP_Initialise, EntryPoint_VoidPtr_CastType ) );
+	self->executeK = Context_AddEntryPoint( 
 		self, 
-		ContextEntryPoint_New( AbstractContext_EP_Run, EntryPoint_VoidPtr_CastType ) );
+		ContextEntryPoint_New( AbstractContext_EP_Execute, EntryPoint_VoidPtr_CastType ) );
+	self->destroyK = Context_AddEntryPoint( 
+		self, 
+		ContextEntryPoint_New( AbstractContext_EP_Destroy, EntryPoint_VoidPtr_CastType ) );
+	self->destroyExtensionsK = Context_AddEntryPoint( 
+		self, 
+		ContextEntryPoint_New( AbstractContext_EP_DestroyExtensions, EntryPoint_VoidPtr_CastType ) );
+	
 	self->dtK = Context_AddEntryPoint( 
 		self, 
 		ContextEntryPoint_New( AbstractContext_EP_Dt, ContextEntryPoint_Dt_CastType ) );
 	self->stepK = Context_AddEntryPoint( 
 		self, 
 		ContextEntryPoint_New( AbstractContext_EP_Step, ContextEntryPoint_Step_CastType ) );
-	self->bcK = Context_AddEntryPoint( 
-		self, 
-		ContextEntryPoint_New( AbstractContext_EP_BC, EntryPoint_VoidPtr_CastType ) );
 	self->solveK = Context_AddEntryPoint( 
 		self, 
 		ContextEntryPoint_New( AbstractContext_EP_Solve, EntryPoint_VoidPtr_CastType ) );
@@ -316,20 +339,17 @@
 	self->saveClassK = Context_AddEntryPoint( 
 		self, 
 		ContextEntryPoint_New( AbstractContext_EP_SaveClass, EntryPoint_Class_VoidPtr_CastType ) );
-	self->deleteExtensionsK = Context_AddEntryPoint( 
-		self, 
-		ContextEntryPoint_New( AbstractContext_EP_DeleteExtensions, EntryPoint_VoidPtr_CastType ) );
 	
 	/* add initial hooks */
 	EntryPoint_Append( 
-		AbstractContext_GetEntryPoint( self, AbstractContext_EP_Setup ),
+		AbstractContext_GetEntryPoint( self, AbstractContext_EP_Construct ),
 		"default", 
-		(Func_Ptr)_AbstractContext_Setup, 
+		(Func_Ptr)_AbstractContext_Construct_Hook, 
 		AbstractContext_Type );
 	EntryPoint_Append( 
-		AbstractContext_GetEntryPoint( self, AbstractContext_EP_Run ),
+		AbstractContext_GetEntryPoint( self, AbstractContext_EP_Execute ),
 		"default", 
-		(Func_Ptr)_AbstractContext_Run, 
+		(Func_Ptr)_AbstractContext_Execute_Hook, 
 		AbstractContext_Type );
 	EntryPoint_Append( 
 		AbstractContext_GetEntryPoint( self, AbstractContext_EP_Step ),
@@ -357,7 +377,7 @@
 		AbstractContext_BuildAllLiveComponents, 
 		AbstractContext_Type );
 	EntryPoint_Append( 
-		Context_GetEntryPoint( self, AbstractContext_EP_IC ),
+		Context_GetEntryPoint( self, AbstractContext_EP_Initialise ),
 		"InitialiseAllLiveComponents", 
 		AbstractContext_InitialiseAllLiveComponents, 
 		AbstractContext_Type );
@@ -416,17 +436,18 @@
 	
 	Print( self->entryPoint_Register, stream );
 	
-	Journal_Printf( (void*) stream, "\tsetupK: %u\n", self->setupK );
+	Journal_Printf( (void*) stream, "\tconstructK: %u\n", self->constructK );
 	Journal_Printf( (void*) stream, "\tconstructExtensionsK: %u\n", self->constructExtensionsK );
 	Journal_Printf( (void*) stream, "\tbuildK: %u\n", self->buildK );
-	Journal_Printf( (void*) stream, "\ticK: %u\n", self->icK );
-	Journal_Printf( (void*) stream, "\trunK: %u\n", self->runK );
+	Journal_Printf( (void*) stream, "\tinitialiseK: %u\n", self->initialiseK );
+	Journal_Printf( (void*) stream, "\texecuteK: %u\n", self->executeK );
+	Journal_Printf( (void*) stream, "\tdestroyK: %u\n", self->destroyK );
+	Journal_Printf( (void*) stream, "\tdestroyExtensionsK: %u\n", self->destroyExtensionsK );
+	
 	Journal_Printf( (void*) stream, "\tdt: %u\n", self->dtK );
 	Journal_Printf( (void*) stream, "\tstepK: %u\n", self->stepK );
-	Journal_Printf( (void*) stream, "\tbcK: %u\n", self->bcK );
 	Journal_Printf( (void*) stream, "\tsolveK: %u\n", self->solveK );
 	Journal_Printf( (void*) stream, "\tsyncK: %u\n", self->syncK );
-	Journal_Printf( (void*) stream, "\tdeleteExtensionsK: %u\n", self->deleteExtensionsK );
 	
 	Print( self->extensionMgr_Register, stream );
 	
@@ -435,11 +456,100 @@
 }
 
 
+/* Construct EP override stuff ****************************************************************************************************/
+
+
+Func_Ptr _AbstractContext_Construct_EP_GetRun( void* entryPoint ) {
+	EntryPoint* self = (EntryPoint*)entryPoint;
+	
+	switch( self->castType ) {
+		case EntryPoint_2VoidPtr_CastType:
+			return (void*) _AbstractContext_Construct_EP_Run;
+		
+		default:
+			return _EntryPoint_GetRun( self );
+	}
+	return 0;
+}
+
+void _AbstractContext_Construct_EP_Run( void* entryPoint, void* data0, void* data1 ) {
+	/* This func should be _EntryPoint_Run_2VoidPtr, but with the synchronisation of context from ptrToContext after each
+	 * hook. */
+	EntryPoint*		self = (EntryPoint*)entryPoint;
+	Hook_Index		hookIndex;
+	AbstractContext* 	context = (AbstractContext*)data0;
+	AbstractContext**	ptrToContext = (AbstractContext**)data1;
+	
+	
+	#ifdef USE_PROFILE
+		Stg_CallGraph_Push( stgCallGraph, _EntryPoint_Run_2VoidPtr, self->name );
+	#endif
+	
+	for( hookIndex = 0; hookIndex < self->hooks->count; hookIndex++ ) {
+		((EntryPoint_2VoidPtr_Cast*)((Hook*)self->hooks->data[hookIndex])->funcPtr)( context, ptrToContext );
+		
+		/* BIG difference to default run function... we need to "re-sync" the context with the potentially new one. Once
+		    again this is only a HACK due to the implemented contexts NOT being extensions! What's also important, is
+		    that the list of things added to this "the contruct" entry point may have changed, but changed on this "new"
+		    context... need to "re-self" this EP. */
+		context = *ptrToContext;
+		self = KeyHandle( context, context->constructK );
+//context->entryPoint_Register
+	}
+	
+	#ifdef USE_PROFILE
+		Stg_CallGraph_Pop( stgCallGraph );
+	#endif
+}
+
+
 /* Component stuff ****************************************************************************************************************/
 
 
+void _AbstractContext_Construct( void* context, Stg_ComponentFactory* cf, void* ptrToContext ) {
+	AbstractContext* 	self = (AbstractContext*)context;
+	AbstractContext**	ptrToSelf = (AbstractContext**)ptrToContext;
+	Bool			isConstructed;
+	
+	Journal_Printf( self->debug, "In: %s\n", __func__ );
+	Journal_Firewall( 
+		self == *ptrToSelf, 
+		Journal_Register( Error_Type, AbstractContext_Type ), 
+		"ptrToContext is assumed to point to context\n" );
+
+	#ifdef DEBUG
+		Context_WarnIfNoHooks( self, self->buildK, __func__  );
+	#endif
+	
+	/* Pre-mark the phase as complete as a default hook will attempt to build all live components (including this again) */
+	isConstructed = self->isConstructed;
+	self->isConstructed = True;
+
+	/* Construct all the components. There should be quite few in there right now, however, the context will do a plugins
+		load, which will add more and their dependencies. */
+	KeyCall( self, self->constructK, EntryPoint_2VoidPtr_CallCast* )( KeyHandle(self,self->constructK), self, ptrToSelf );
+	self = *ptrToSelf;
+
+	/* Construct the list of plugins. This wont reconstruct the components already constructed in the last step. By seperating
+		the plugins contstruction out of the component construction EP gives an opportunity to do a wrap up before
+		plugins start */
+	PluginsManager_ConstructPlugins( self->plugins, self->CF, ptrToSelf );
+
+	/* Extensions are the last thing we want to do */
+	KeyCall( self, self->constructExtensionsK, EntryPoint_VoidPtr_CallCast* )( KeyHandle(self,self->constructExtensionsK), self );
+	
+	if( self->rank == 0 ) 
+		Context_PrintConcise( self, self->verbose );
+
+	if ( True == Dictionary_GetBool_WithDefault( self->dictionary, "showJournalStatus", False ) ) {
+		Journal_PrintConcise();	
+	}	
+	self->isConstructed = isConstructed;
+}
+
+
 void _AbstractContext_Build( void* context, void* data ) {
-	AbstractContext* self = (AbstractContext*)context;
+	AbstractContext* 	self = (AbstractContext*)context;
 	Bool			isBuilt;
 	
 	Journal_Printf( self->debug, "In: %s\n", __func__ );
@@ -469,7 +579,7 @@
 	/* Pre-mark the phase as complete as a default hook will attempt to initialise all live components (including this again) */
 	isInitialised = self->isInitialised;
 	self->isInitialised = True;
-	KeyCall( self, self->icK, EntryPoint_VoidPtr_CallCast* )( KeyHandle(self,self->icK), self );
+	KeyCall( self, self->initialiseK, EntryPoint_VoidPtr_CallCast* )( KeyHandle(self,self->initialiseK), self );
 	self->isInitialised = isInitialised;
 }
 
@@ -487,9 +597,7 @@
 	/* Pre-mark the phase as complete as a default hook will attempt to initialise all live components (including this again) */
 	hasExecuted = self->hasExecuted;
 	self->hasExecuted = True;
-	KeyCall( self, self->runK, EntryPoint_VoidPtr_CallCast* )( KeyHandle(self,self->runK), self );
-	// TODO... delay delete extensions until "destroy"
-	KeyCall( self, self->deleteExtensionsK, EntryPoint_VoidPtr_CallCast* )( KeyHandle(self,self->deleteExtensionsK), self );
+	KeyCall( self, self->executeK, EntryPoint_VoidPtr_CallCast* )( KeyHandle(self,self->executeK), self );
 	self->hasExecuted = hasExecuted;
 }
 
@@ -507,8 +615,8 @@
 	/* Pre-mark the phase as complete as a default hook will attempt to initialise all live components (including this again) */
 	isDestroyed = self->isDestroyed;
 	self->isDestroyed = True;
-	// TODO... DeleteExtensions?
-	//KeyCall( self, self->deleteExtensionsK, EntryPoint_VoidPtr_CallCast* )( KeyHandle(self,self->deleteExtensionsK), self );
+	KeyCall( self, self->destroyExtensionsK, EntryPoint_VoidPtr_CallCast* )( KeyHandle(self,self->destroyExtensionsK), self );
+	KeyCall( self, self->destroyK, EntryPoint_VoidPtr_CallCast* )( KeyHandle(self,self->destroyK), self );
 	self->isDestroyed = isDestroyed;
 }
 
@@ -576,14 +684,6 @@
 }
 
 
-void AbstractContext_Setup( void* context ) {
-	AbstractContext* self = (AbstractContext*)context;
-	#if DEBUG
-		AbstractContext_WarnIfNoHooks( self, self->setupK, __func__ );
-	#endif
-	KeyCall( self, self->setupK, EntryPoint_VoidPtr_CallCast* )( KeyHandle(self,self->setupK), self );
-}
-
 double AbstractContext_Dt( void* context ) {
 	AbstractContext* self = (AbstractContext*)context;
 
@@ -599,13 +699,7 @@
 	KeyCall( self, self->stepK, ContextEntryPoint_Step_CallCast* )( KeyHandle(self,self->stepK), self, dt );
 }
 
-void AbstractContext_Main( void* context ) {
-	AbstractContext* self = (AbstractContext*)context;
-	AbstractContext_Setup( self );
-	Stg_Component_Execute( self, 0 /* dummy */, False );
-}
 
-
 void AbstractContext_WarnIfNoHooks( void* context, EntryPoint_Index epIndex, const char* caller ) {
 	AbstractContext* self = (AbstractContext*)context;
 	EntryPoint_WarnIfNoHooks( EntryPoint_Register_At( self->entryPoint_Register, epIndex ), caller );
@@ -661,24 +755,86 @@
 }
 
 
-/* Context public stuff ***********************************************************************************************************/
+/* Context hooks ******************************************************************************************************************/
 
 
-void _AbstractContext_Setup( Context* context ) {
-	AbstractContext* self = (AbstractContext*)context;
+void _AbstractContext_Construct_Hook( void* context, void* ptrToContext ) {
+	AbstractContext*		self = (AbstractContext*)context;
+	AbstractContext**		ptrToSelf = (AbstractContext**)ptrToContext;
+	Dictionary*			componentDict;
+	Dictionary_Entry_Value*		apps;
 	
 	Journal_Printf( self->debug, "In: %s\n", __func__ );
 	
-	PluginsManager_Load( self->plugins, self, self->dictionary, 0, NULL, NULL );
-	KeyCall( self, self->constructExtensionsK, EntryPoint_VoidPtr_CallCast* )( KeyHandle(self,self->constructExtensionsK), self );
-	Journal_ReadFromDictionary( self->dictionary );
+	/* Obtain the components info from the global dictionary. Check that the dictionary has unique entry names. */
+	if( (componentDict = Dictionary_GetDictionary( self->dictionary, AbstractContext_Dict_Components )) == NULL ) { 
+		componentDict = Dictionary_New();
+	}
+	CheckDictionaryKeys( componentDict, "Component dictionary must have unique names\n" );
 	
-	_AbstractContext_Build( self, 0 /* dummy */ );
-	_AbstractContext_Initialise( self, 0 /* dummy */ );
+	/* The component factory should be specific to this context, so create it here unless is already exists (i.e. desired
+	   behaviour has been purposely overridden). Add ourself to the global live register. */
+	if( !self->CF ) {
+		self->CF = Stg_ComponentFactory_New( self->dictionary, componentDict, self->register_Register );
+	}
+	LiveComponentRegister_Add( self->CF->LCRegister, (Stg_Component*)self );
+	
+	/* Obtain the applications  info from the global dictionary. Boot them up. */
+	if( (apps = Dictionary_Get( self->dictionary, AbstractContext_Dict_Applications )) != NULL ) {
+		int index; /* needs to be signed */
+		
+		/* Go through the list of entries, and attempt to load each plugin. NOTE: this will call the "Init" of the
+		   application module. */
+		for( index = 0; index < Dictionary_Entry_Value_GetCount( apps ); index++ ) {
+			Dictionary_Entry_Value* application;
+			
+			application = Dictionary_Entry_Value_GetElement( apps, index );
+
+			Journal_Firewall(
+				PluginsManager_LoadPlugin( self->plugins, application->as.typeString, self ),
+				Journal_Register( Error_Type, AbstractContext_Type ),
+				"Error: Application Plugin %s not found. Ensure it is"
+					" a valid plugin, and has been built.\n",
+					application->as.typeString );
+		}
+		
+		/* Now that the plugins are loaded (i.e. ALL application environments enabled), now RE-construct the context in the
+		   reverse order. Ensuring that only the first (i.e. largest context) plugin builds a new context.
+ 		   NOTE: This mechanism completely sucks! The way Contexts are replaced is crap but works for now. It shows that
+		   Context's should be implemented as extensions! */
+		for( index = Dictionary_Entry_Value_GetCount( apps ) - 1; index >= 0; index-- ) {
+			Dictionary_Entry_Value* application;
+			
+			application = Dictionary_Entry_Value_GetElement( apps, index );
+
+			Journal_Firewall(
+				PluginsManager_ConstructPlugin( self->plugins, application->as.typeString, self->CF, ptrToSelf ),
+				Journal_Register( Error_Type, AbstractContext_Type ),
+				"Error: Application Plugin %s could not be constructed."
+					" Ensure it has a valid construction function.\n",
+				      	application->as.typeString );
+			
+			if( self !=  (AbstractContext*)self->CF->LCRegister->componentList->data[0] ) {
+				((AbstractContext*)self->CF->LCRegister->componentList->data[0])->plugins = self->plugins;
+				self = (AbstractContext*)self->CF->LCRegister->componentList->data[0];
+				Journal_Firewall( 
+					(Bool)ptrToSelf, 
+					Journal_Register( Error_Type, AbstractContext_Type ), 
+					"Pointer to the context is needed, but set to NULL.\n" );
+				*ptrToSelf = self;
+			}
+		}
+	}
+	
+	/* Load the plugins ?? */
+	PluginsManager_Load( self->plugins, context, self->dictionary );
+
+	Stg_ComponentFactory_CreateComponents( self->CF );
+	Stg_ComponentFactory_ConstructComponents( self->CF, ptrToSelf );
 }
 
 
-void _AbstractContext_Run( Context* context ) {
+void _AbstractContext_Execute_Hook( Context* context ) {
 	AbstractContext*   self = (AbstractContext*)context;
 	double             dt = 0;
 	double             dtLoadedFromFile = 0;
@@ -717,7 +873,7 @@
 	
 	self->timeStep++;
 
-	while (1) {
+	while( !self->gracefulQuit ) {
 		if ( ( True == self->loadFromCheckPoint ) &&
 			( self->timeStep == self->restartTimestep + 1 ) )
 		{ 
@@ -778,7 +934,6 @@
 	#endif
 
 	self->_setDt( self, dt );
-	KeyCall( self, self->bcK, EntryPoint_VoidPtr_CallCast* )( KeyHandle(self,self->bcK), self );
 	KeyCall( self, self->solveK, EntryPoint_VoidPtr_CallCast* )( KeyHandle(self,self->solveK), self );
 	KeyCall( self, self->updateClassK, EntryPoint_Class_VoidPtr_CallCast* )( KeyHandle(self,self->updateClassK), self );
 	KeyCall( self, self->syncK, EntryPoint_VoidPtr_CallCast* )( KeyHandle(self,self->syncK), self );

Modified: long/3D/Gale/trunk/src/StGermain/Base/Context/src/AbstractContext.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Base/Context/src/AbstractContext.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Base/Context/src/AbstractContext.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -55,15 +55,16 @@
 	
 	
 	/* AbstractContext entry point names */
-	extern Type AbstractContext_EP_Setup;
+	extern Type AbstractContext_EP_Construct;
 	extern Type AbstractContext_EP_ConstructExtensions;
 	extern Type AbstractContext_EP_Build;
-	extern Type AbstractContext_EP_IC;
-	extern Type AbstractContext_EP_Run;
+	extern Type AbstractContext_EP_Initialise;
+	extern Type AbstractContext_EP_Execute;
+	extern Type AbstractContext_EP_Destroy;
+	extern Type AbstractContext_EP_DestroyExtensions;
 	extern Type AbstractContext_EP_Dt;
 	extern Type AbstractContext_EP_Step;
 	extern Type AbstractContext_EP_UpdateClass;
-	extern Type AbstractContext_EP_BC;
 	extern Type AbstractContext_EP_Solve;
 	extern Type AbstractContext_EP_Sync;
 	extern Type AbstractContext_EP_FrequentOutput;
@@ -71,10 +72,10 @@
 	extern Type AbstractContext_EP_DumpClass;
 	extern Type AbstractContext_EP_Save;
 	extern Type AbstractContext_EP_SaveClass;
-	extern Type AbstractContext_EP_DeleteExtensions;
 	
 	/* Textual name of this class */
 	extern const Type AbstractContext_Type;
+	extern const Type AbstractContext_Type_Verbose; /* Use for a particular info stream */
 	
 	/* AbstractContext info */
 	#define __AbstractContext \
@@ -104,6 +105,7 @@
 		/** Final Time Step: last time step to run till, no matter if maxTimeSteps still has some
 		     left in a checkpoint restart run. If 0 (the default), not active. */ \
 		unsigned int				finalTimeStep; \
+		Bool					gracefulQuit; \
 		unsigned int				frequentOutputEvery; \
 		unsigned int				dumpEvery; \
 		unsigned int				checkpointEvery; \
@@ -116,15 +118,20 @@
 		Stream*					verbose; \
 		Stream*					debug; \
 		\
-		EntryPoint_Index			setupK; \
+		/* These are stored keys to entrypoints in the table, used for O(1) lookup (i.e. speed) */ \
+		/* Contexts "are" Components implemented by entrypoints... there's an entry point per component phase */ \
+		EntryPoint_Index			constructK; \
 		EntryPoint_Index			constructExtensionsK; \
 		EntryPoint_Index			buildK; \
-		EntryPoint_Index			icK; \
-		EntryPoint_Index			runK; \
+		EntryPoint_Index			initialiseK; \
+		EntryPoint_Index			executeK; \
+		EntryPoint_Index			destroyK; \
+		EntryPoint_Index			destroyExtensionsK; \
+		\
+		/* The following are not really part of an abstract context, and will one day be refactored somewhere else */ \
 		EntryPoint_Index			dtK; \
 		EntryPoint_Index			stepK; \
 		EntryPoint_Index			updateClassK; \
-		EntryPoint_Index			bcK; \
 		EntryPoint_Index			solveK; \
 		EntryPoint_Index			syncK; \
 		EntryPoint_Index			frequentOutputK; \
@@ -132,7 +139,6 @@
 		EntryPoint_Index			dumpClassK; \
 		EntryPoint_Index			saveK; \
 		EntryPoint_Index			saveClassK; \
-		EntryPoint_Index			deleteExtensionsK; \
 		\
 		Stg_ObjectList*				objectList; \
 		ConditionFunction_Register*		condFunc_Register; \
@@ -190,16 +196,19 @@
 	/* Component stuff ********************************************************************************************************/
 	
 	
-	/* Build the solver ... allocates memory (builds arrays) */
+	/* Construct the context ... connect and validate component connections, and initialise non-bulk internal values */
+	void _AbstractContext_Construct( void* context, Stg_ComponentFactory* cf, void* data );
+	
+	/* Build the context ... allocates memory (builds arrays) */
 	void _AbstractContext_Build( void* context, void* data );
 	
-	/* Initialise the solver ... initialises memory (fills arrays with initial values) */
+	/* Initialise the context ... initialises memory (fills arrays with initial values) */
 	void _AbstractContext_Initialise( void* context, void* data );
 	
-	/* Run the solver */
+	/* Run the context ... perform the task this component is supposed to perform */
 	void _AbstractContext_Execute( void* context, void* data );
 	
-	/* Destroy the solver */
+	/* Destroy the context ... clean up / un build */
 	void _AbstractContext_Destroy( void* context, void* data );
 	
 	
@@ -233,18 +242,12 @@
 	#define AbstractContext_KeyCall( self, key, cast ) \
 		((cast)(EntryPoint_Register_At( (self)->entryPoint_Register, key )->run))
 	
-	/* Setup the solver ... build and initialise */
-	void AbstractContext_Setup( void* context );
-	
 	/* Obtain the Dt */
 	double AbstractContext_Dt( void* context );
 	
 	/* Step the solver */
 	void AbstractContext_Step( void* context, double dt );
 	
-	/* Main replacement */
-	void AbstractContext_Main( void* context );
-
 	/* function to warn if no hooks to an entrypoint defined */
 	void AbstractContext_WarnIfNoHooks( void* context, EntryPoint_Index epIndex, const char* caller );
 	
@@ -257,14 +260,16 @@
 	Bool AbstractContext_CheckPointExists( void* context, Index timeStep );
 	char* AbstractContext_GetTimeInfoFileNameForGivenTimeStep( void* context, Index timeStep );
 	
-	/* Context prvate methods *************************************************************************************************/
+	/* Context private methods ************************************************************************************************/
 	
 	
-	/* Setup the solver implementation */
-	void _AbstractContext_Setup( Context* context );
+	/* Default construction hook, and overrides for the EP to handle the context/ptrToContext synchronisation */
+	void _AbstractContext_Construct_Hook( void* context, void* ptrToContext );
+	Func_Ptr _AbstractContext_Construct_EP_GetRun( void* entryPoint );
+	void _AbstractContext_Construct_EP_Run( void* entryPoint, void* data0, void* data1 );
 	
-	/* Run the solver implementation */
-	void _AbstractContext_Run( Context* context );
+	/* Default construction hook */
+	void _AbstractContext_Execute_Hook( Context* context );
 	
 	/* Step the solver implementation */
 	void _AbstractContext_Step( Context* context, double dt );

Modified: long/3D/Gale/trunk/src/StGermain/Base/Context/src/ContextEntryPoint.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Base/Context/src/ContextEntryPoint.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Base/Context/src/ContextEntryPoint.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -131,10 +131,18 @@
 	Hook_Index hookIndex;
 	double result = 0.0;
 	
+	#ifdef USE_PROFILE
+		Stg_CallGraph_Push( stgCallGraph, _ContextEntryPoint_Run_Dt, self->name );
+	#endif
+
 	for( hookIndex = 0; hookIndex < self->hooks->count; hookIndex++ ) {
 		result = ((ContextEntryPoint_Dt_Cast*)((Hook*)self->hooks->data[hookIndex])->funcPtr)( data0 );
 	}
 	
+	#ifdef USE_PROFILE
+		Stg_CallGraph_Pop( stgCallGraph );
+	#endif
+
 	return result;
 }
 
@@ -142,7 +150,16 @@
 	ContextEntryPoint* self = (ContextEntryPoint*)contextEntryPoint;
 	Hook_Index hookIndex;
 	
+	#ifdef USE_PROFILE
+		Stg_CallGraph_Push( stgCallGraph, _ContextEntryPoint_Run_Step, self->name );
+	#endif
+
 	for( hookIndex = 0; hookIndex < self->hooks->count; hookIndex++ ) {
 		((ContextEntryPoint_Step_Cast*)((Hook*)self->hooks->data[hookIndex])->funcPtr)( data0, data1 );
 	}
+
+	#ifdef USE_PROFILE
+		Stg_CallGraph_Pop( stgCallGraph );
+	#endif
 }
+

Modified: long/3D/Gale/trunk/src/StGermain/Base/Context/src/shortcuts.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Base/Context/src/shortcuts.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Base/Context/src/shortcuts.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -50,7 +50,6 @@
 	#define Context_KeyHandle		AbstractContext_KeyHandle
 	#define Context_Dt			AbstractContext_Dt
 	#define Context_Step			AbstractContext_Step
-	#define Context_Main			AbstractContext_Main
 	#define Context_WarnIfNoHooks		AbstractContext_WarnIfNoHooks
 	#define Context_ErrorIfNoHooks		AbstractContext_ErrorIfNoHooks
 	

Modified: long/3D/Gale/trunk/src/StGermain/Base/Context/tests/testAbstractContext-noDtDefined.0of1.expected
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Base/Context/tests/testAbstractContext-noDtDefined.0of1.expected	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Base/Context/tests/testAbstractContext-noDtDefined.0of1.expected	2006-10-14 18:26:27 UTC (rev 5016)
@@ -1,27 +1,27 @@
 Watching rank: 0
 Context: TestContext
-	EP: AbstractContext_EP_Setup
-		H: "default" (AbstractContext)
-	EP: AbstractContext_EP_ConstructExtensions
-	EP: AbstractContext_EP_Build
-		H: "BuildAllLiveComponents" (AbstractContext)
-	EP: AbstractContext_EP_IC
-		H: "InitialiseAllLiveComponents" (AbstractContext)
-	EP: AbstractContext_EP_Run
-		H: "default" (AbstractContext)
-	EP: AbstractContext_EP_Dt
-	EP: AbstractContext_EP_Step
-		H: "default" (AbstractContext)
-	EP: AbstractContext_EP_BC
-	EP: AbstractContext_EP_Solve
-	EP: AbstractContext_EP_UpdateClass
-	EP: AbstractContext_EP_Sync
-	EP: AbstractContext_EP_FrequentOutput
-	EP: AbstractContext_EP_Dump
-	EP: AbstractContext_EP_DumpClass
-	EP: AbstractContext_EP_Save
-		H: "SaveTimeInfo" (AbstractContext)
-	EP: AbstractContext_EP_SaveClass
-	EP: AbstractContext_EP_DeleteExtensions
+	EP: Context_Construct
+		H: "default" (Context)
+	EP: Context_ConstructExtensions
+	EP: Context_Build
+		H: "BuildAllLiveComponents" (Context)
+	EP: Context_Initialise
+		H: "InitialiseAllLiveComponents" (Context)
+	EP: Context_Execute
+		H: "default" (Context)
+	EP: Context_Destroy
+	EP: Context_DestroyExtensions
+	EP: Context_Dt
+	EP: Context_Step
+		H: "default" (Context)
+	EP: Context_Solve
+	EP: Context_UpdateClass
+	EP: Context_Sync
+	EP: Context_FrequentOutput
+	EP: Context_Dump
+	EP: Context_DumpClass
+	EP: Context_Save
+		H: "SaveTimeInfo" (Context)
+	EP: Context_SaveClass
 Run until simulation time passes 10.
-Error: No hooks defined for E.P. "AbstractContext_EP_Dt". Calling parent function AbstractContext_Dt() requires at least one AbstractContext_EP_Dt hook defined.
+Error: No hooks defined for E.P. "Context_Dt". Calling parent function AbstractContext_Dt() requires at least one Context_Dt hook defined.

Modified: long/3D/Gale/trunk/src/StGermain/Base/Context/tests/testAbstractContext-noOptionsDefined.0of1.expected
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Base/Context/tests/testAbstractContext-noOptionsDefined.0of1.expected	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Base/Context/tests/testAbstractContext-noOptionsDefined.0of1.expected	2006-10-14 18:26:27 UTC (rev 5016)
@@ -1,29 +1,29 @@
 Watching rank: 0
 Context: TestContext
-	EP: AbstractContext_EP_Setup
-		H: "default" (AbstractContext)
-	EP: AbstractContext_EP_ConstructExtensions
-	EP: AbstractContext_EP_Build
-		H: "BuildAllLiveComponents" (AbstractContext)
-	EP: AbstractContext_EP_IC
-		H: "InitialiseAllLiveComponents" (AbstractContext)
-	EP: AbstractContext_EP_Run
-		H: "default" (AbstractContext)
-	EP: AbstractContext_EP_Dt
+	EP: Context_Construct
+		H: "default" (Context)
+	EP: Context_ConstructExtensions
+	EP: Context_Build
+		H: "BuildAllLiveComponents" (Context)
+	EP: Context_Initialise
+		H: "InitialiseAllLiveComponents" (Context)
+	EP: Context_Execute
+		H: "default" (Context)
+	EP: Context_Destroy
+	EP: Context_DestroyExtensions
+	EP: Context_Dt
 		H: "MyDt" (libStGermainBaseContext)
-	EP: AbstractContext_EP_Step
-		H: "default" (AbstractContext)
-	EP: AbstractContext_EP_BC
-	EP: AbstractContext_EP_Solve
-	EP: AbstractContext_EP_UpdateClass
-	EP: AbstractContext_EP_Sync
-	EP: AbstractContext_EP_FrequentOutput
-	EP: AbstractContext_EP_Dump
-	EP: AbstractContext_EP_DumpClass
-	EP: AbstractContext_EP_Save
-		H: "SaveTimeInfo" (AbstractContext)
-	EP: AbstractContext_EP_SaveClass
-	EP: AbstractContext_EP_DeleteExtensions
+	EP: Context_Step
+		H: "default" (Context)
+	EP: Context_Solve
+	EP: Context_UpdateClass
+	EP: Context_Sync
+	EP: Context_FrequentOutput
+	EP: Context_Dump
+	EP: Context_DumpClass
+	EP: Context_Save
+		H: "SaveTimeInfo" (Context)
+	EP: Context_SaveClass
 Run until simulation time passes 10.
 This is Dt, returning 2
 TimeStep = 1, Start time = 0 + 2 prev timeStep dt

Modified: long/3D/Gale/trunk/src/StGermain/Base/Context/tests/testAbstractContext0.0of1.expected
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Base/Context/tests/testAbstractContext0.0of1.expected	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Base/Context/tests/testAbstractContext0.0of1.expected	2006-10-14 18:26:27 UTC (rev 5016)
@@ -1,31 +1,30 @@
 Watching rank: 0
 Context: TestContext
-	EP: AbstractContext_EP_Setup
-		H: "default" (AbstractContext)
-	EP: AbstractContext_EP_ConstructExtensions
-	EP: AbstractContext_EP_Build
+	EP: Context_Construct
+		H: "default" (Context)
+	EP: Context_ConstructExtensions
+	EP: Context_Build
 		H: "MyBuild" (libStGermainBaseContext)
-	EP: AbstractContext_EP_IC
+	EP: Context_Initialise
 		H: "MyInitialConditions" (libStGermainBaseContext)
-	EP: AbstractContext_EP_Run
-		H: "default" (AbstractContext)
-	EP: AbstractContext_EP_Dt
+	EP: Context_Execute
+		H: "default" (Context)
+	EP: Context_Destroy
+	EP: Context_DestroyExtensions
+	EP: Context_Dt
 		H: "MyDt" (libStGermainBaseContext)
-	EP: AbstractContext_EP_Step
-		H: "default" (AbstractContext)
-	EP: AbstractContext_EP_BC
-		H: "MyBoundaryConditions" (libStGermainBaseContext)
-	EP: AbstractContext_EP_Solve
+	EP: Context_Step
+		H: "default" (Context)
+	EP: Context_Solve
 		H: "MySolve" (libStGermainBaseContext)
-	EP: AbstractContext_EP_UpdateClass
-	EP: AbstractContext_EP_Sync
-	EP: AbstractContext_EP_FrequentOutput
-	EP: AbstractContext_EP_Dump
-	EP: AbstractContext_EP_DumpClass
-	EP: AbstractContext_EP_Save
-		H: "SaveTimeInfo" (AbstractContext)
-	EP: AbstractContext_EP_SaveClass
-	EP: AbstractContext_EP_DeleteExtensions
+	EP: Context_UpdateClass
+	EP: Context_Sync
+	EP: Context_FrequentOutput
+	EP: Context_Dump
+	EP: Context_DumpClass
+	EP: Context_Save
+		H: "SaveTimeInfo" (Context)
+	EP: Context_SaveClass
 abstractContext->entryPointList->_size: 24
 abstractContext->entryPointList->count: 17
 This is Build
@@ -34,25 +33,20 @@
 This is Dt, returning 2
 TimeStep = 1, Start time = 0 + 2 prev timeStep dt
 This is SetDt... setting to 2
-This is BoundaryConditions
 This is Solve
 This is Dt, returning 2
 TimeStep = 2, Start time = 2 + 2 prev timeStep dt
 This is SetDt... setting to 2
-This is BoundaryConditions
 This is Solve
 This is Dt, returning 2
 TimeStep = 3, Start time = 4 + 2 prev timeStep dt
 This is SetDt... setting to 2
-This is BoundaryConditions
 This is Solve
 This is Dt, returning 2
 TimeStep = 4, Start time = 6 + 2 prev timeStep dt
 This is SetDt... setting to 2
-This is BoundaryConditions
 This is Solve
 This is Dt, returning 2
 TimeStep = 5, Start time = 8 + 2 prev timeStep dt
 This is SetDt... setting to 2
-This is BoundaryConditions
 This is Solve

Modified: long/3D/Gale/trunk/src/StGermain/Base/Context/tests/testAbstractContext0.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Base/Context/tests/testAbstractContext0.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Base/Context/tests/testAbstractContext0.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -69,10 +69,6 @@
 	return dt;
 }
 
-void MyBoundaryConditions( void* context ) {
-	Journal_Printf( (void*) stream, "This is BoundaryConditions\n" );
-}
-
 void MySolve( void* context ) {
 	Journal_Printf( (void*) stream, "This is Solve\n" );
 }
@@ -148,10 +144,9 @@
 
 	/* add hooks to existing entry points */
 	ContextEP_ReplaceAll( abstractContext, AbstractContext_EP_Build, MyBuild );
-	ContextEP_ReplaceAll( abstractContext, AbstractContext_EP_IC, MyInitialConditions );
+	ContextEP_ReplaceAll( abstractContext, AbstractContext_EP_Initialise, MyInitialConditions );
 	ContextEP_ReplaceAll( abstractContext, AbstractContext_EP_Solve, MySolve ); 
 	ContextEP_ReplaceAll( abstractContext, AbstractContext_EP_Dt, MyDt ); 
-	ContextEP_ReplaceAll( abstractContext, AbstractContext_EP_BC, MyBoundaryConditions ); 
 
 	if( rank == procToWatch ) {
 		stream = Journal_Register( InfoStream_Type, AbstractContext_Type );

Modified: long/3D/Gale/trunk/src/StGermain/Base/Context/tests/testAbstractContext1.0of1.expected
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Base/Context/tests/testAbstractContext1.0of1.expected	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Base/Context/tests/testAbstractContext1.0of1.expected	2006-10-14 18:26:27 UTC (rev 5016)
@@ -2,34 +2,32 @@
 abstractContext->entryPointList->_size: 24
 abstractContext->entryPointList->count: 17
 Context: TestContext
-	EP: AbstractContext_EP_Setup
-		H: "default" (AbstractContext)
-	EP: AbstractContext_EP_ConstructExtensions
-	EP: AbstractContext_EP_Build
+	EP: Context_Construct
+		H: "default" (Context)
+	EP: Context_ConstructExtensions
+	EP: Context_Build
 		H: "MyBuild" (libStGermainBaseContext)
-	EP: AbstractContext_EP_IC
+	EP: Context_Initialise
 		H: "MyInitialConditions2" (libStGermainBaseContext)
-	EP: AbstractContext_EP_Run
-		H: "default" (AbstractContext)
-	EP: AbstractContext_EP_Dt
+	EP: Context_Execute
+		H: "default" (Context)
+	EP: Context_Destroy
+	EP: Context_DestroyExtensions
+	EP: Context_Dt
 		H: "MyDt" (libStGermainBaseContext)
-	EP: AbstractContext_EP_Step
-		H: "default" (AbstractContext)
-	EP: AbstractContext_EP_BC
-		H: "MyBoundaryConditions2" (libStGermainBaseContext)
-		H: "MyBoundaryConditions" (libStGermainBaseContext)
-	EP: AbstractContext_EP_Solve
+	EP: Context_Step
+		H: "default" (Context)
+	EP: Context_Solve
 		H: "MySolve" (libStGermainBaseContext)
 		H: "MySolve2" (libStGermainBaseContext)
-	EP: AbstractContext_EP_UpdateClass
-	EP: AbstractContext_EP_Sync
-	EP: AbstractContext_EP_FrequentOutput
-	EP: AbstractContext_EP_Dump
-	EP: AbstractContext_EP_DumpClass
-	EP: AbstractContext_EP_Save
-		H: "SaveTimeInfo" (AbstractContext)
-	EP: AbstractContext_EP_SaveClass
-	EP: AbstractContext_EP_DeleteExtensions
+	EP: Context_UpdateClass
+	EP: Context_Sync
+	EP: Context_FrequentOutput
+	EP: Context_Dump
+	EP: Context_DumpClass
+	EP: Context_Save
+		H: "SaveTimeInfo" (Context)
+	EP: Context_SaveClass
 abstractContext->entryPointList->_size: 24
 abstractContext->entryPointList->count: 17
 This is Build
@@ -38,35 +36,25 @@
 This is Dt, returning 2
 TimeStep = 1, Start time = 0 + 2 prev timeStep dt
 This is SetDt... setting to 2
-This is BoundaryConditions2
-This is BoundaryConditions
 This is Solve
 This is Solve2
 This is Dt, returning 2
 TimeStep = 2, Start time = 2 + 2 prev timeStep dt
 This is SetDt... setting to 2
-This is BoundaryConditions2
-This is BoundaryConditions
 This is Solve
 This is Solve2
 This is Dt, returning 2
 TimeStep = 3, Start time = 4 + 2 prev timeStep dt
 This is SetDt... setting to 2
-This is BoundaryConditions2
-This is BoundaryConditions
 This is Solve
 This is Solve2
 This is Dt, returning 2
 TimeStep = 4, Start time = 6 + 2 prev timeStep dt
 This is SetDt... setting to 2
-This is BoundaryConditions2
-This is BoundaryConditions
 This is Solve
 This is Solve2
 This is Dt, returning 2
 TimeStep = 5, Start time = 8 + 2 prev timeStep dt
 This is SetDt... setting to 2
-This is BoundaryConditions2
-This is BoundaryConditions
 This is Solve
 This is Solve2

Modified: long/3D/Gale/trunk/src/StGermain/Base/Context/tests/testAbstractContext1.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Base/Context/tests/testAbstractContext1.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Base/Context/tests/testAbstractContext1.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -73,14 +73,6 @@
 	return dt;
 }
 
-void MyBoundaryConditions( void* context ) {
-	Journal_Printf( (void*) stream, "This is BoundaryConditions\n" );
-}
-
-void MyBoundaryConditions2( void* context ) {
-	Journal_Printf( (void*) stream, "This is BoundaryConditions2\n" );
-}
-
 void MySolve( void* context ) {
 	Journal_Printf( (void*) stream, "This is Solve\n" );
 }
@@ -159,26 +151,36 @@
 
 	/* add hooks to existing entry points */
 	ContextEP_ReplaceAll( abstractContext, AbstractContext_EP_Build, MyBuild );
-	ContextEP_ReplaceAll( abstractContext, AbstractContext_EP_IC, MyInitialConditions );
+	ContextEP_ReplaceAll( abstractContext, AbstractContext_EP_Initialise, MyInitialConditions );
 	ContextEP_ReplaceAll( abstractContext, AbstractContext_EP_Solve, MySolve );
 	ContextEP_ReplaceAll( abstractContext, AbstractContext_EP_Dt, MyDt );
-	ContextEP_ReplaceAll( abstractContext, AbstractContext_EP_BC, MyBoundaryConditions );
 
 	if( rank == procToWatch ) {
-		Journal_Printf( (void*) stream, "abstractContext->entryPointList->_size: %lu\n", abstractContext->entryPoint_Register->_size );
-		Journal_Printf( (void*) stream, "abstractContext->entryPointList->count: %u\n", abstractContext->entryPoint_Register->count );
+		Journal_Printf( 
+			(void*)stream, 
+			"abstractContext->entryPointList->_size: %lu\n", 
+			abstractContext->entryPoint_Register->_size );
+		Journal_Printf( 
+			(void*)stream, 
+			"abstractContext->entryPointList->count: %u\n", 
+			abstractContext->entryPoint_Register->count );
 	}
 	
-	ContextEP_Append( abstractContext, "AbstractContext_EP_Solve", MySolve2 );
-	ContextEP_Prepend( abstractContext, "AbstractContext_EP_BC", MyBoundaryConditions2 );
-	ContextEP_ReplaceAll( abstractContext, "AbstractContext_EP_IC", MyInitialConditions2 ); 
+	ContextEP_Append( abstractContext, AbstractContext_EP_Solve, MySolve2 );
+	ContextEP_ReplaceAll( abstractContext, AbstractContext_EP_Initialise, MyInitialConditions2 ); 
 
 	if( rank == procToWatch ) {
 		stream = Journal_Register( InfoStream_Type, AbstractContext_Type );
 		AbstractContext_PrintConcise( abstractContext, stream );
 		
-		Journal_Printf( (void*) stream, "abstractContext->entryPointList->_size: %lu\n", abstractContext->entryPoint_Register->_size );
-		Journal_Printf( (void*) stream, "abstractContext->entryPointList->count: %u\n", abstractContext->entryPoint_Register->count );
+		Journal_Printf( 
+			(void*)stream, 
+			"abstractContext->entryPointList->_size: %lu\n", 
+			abstractContext->entryPoint_Register->_size );
+		Journal_Printf( 
+			(void*)stream, 
+			"abstractContext->entryPointList->count: %u\n", 
+			abstractContext->entryPoint_Register->count );
 	}
 
 	/* Run the context */

Modified: long/3D/Gale/trunk/src/StGermain/Base/Context/tests/testAbstractContextCheckPoint.0of1.expected
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Base/Context/tests/testAbstractContextCheckPoint.0of1.expected	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Base/Context/tests/testAbstractContextCheckPoint.0of1.expected	2006-10-14 18:26:27 UTC (rev 5016)
@@ -5,61 +5,51 @@
 This is Dt, returning 2
 TimeStep = 1, Start time = 0 + 2 prev timeStep dt
 This is SetDt... setting to 2
-This is BoundaryConditions
 This is Solve
 This is Dt, returning 2
 This is Dt, returning 2
 TimeStep = 2, Start time = 2 + 2 prev timeStep dt
 This is SetDt... setting to 2
-This is BoundaryConditions
 This is Solve
 This is Dt, returning 2
 This is Dt, returning 2
 TimeStep = 3, Start time = 4 + 2 prev timeStep dt
 This is SetDt... setting to 2
-This is BoundaryConditions
 This is Solve
 This is Dt, returning 2
 This is Dt, returning 2
 TimeStep = 4, Start time = 6 + 2 prev timeStep dt
 This is SetDt... setting to 2
-This is BoundaryConditions
 This is Solve
 This is Dt, returning 2
 This is Dt, returning 2
 TimeStep = 5, Start time = 8 + 2 prev timeStep dt
 This is SetDt... setting to 2
-This is BoundaryConditions
 This is Solve
 This is Dt, returning 2
 This is Dt, returning 2
 TimeStep = 6, Start time = 10 + 2 prev timeStep dt
 This is SetDt... setting to 2
-This is BoundaryConditions
 This is Solve
 This is Dt, returning 2
 This is Dt, returning 2
 TimeStep = 7, Start time = 12 + 2 prev timeStep dt
 This is SetDt... setting to 2
-This is BoundaryConditions
 This is Solve
 This is Dt, returning 2
 This is Dt, returning 2
 TimeStep = 8, Start time = 14 + 2 prev timeStep dt
 This is SetDt... setting to 2
-This is BoundaryConditions
 This is Solve
 This is Dt, returning 2
 This is Dt, returning 2
 TimeStep = 9, Start time = 16 + 2 prev timeStep dt
 This is SetDt... setting to 2
-This is BoundaryConditions
 This is Solve
 This is Dt, returning 2
 This is Dt, returning 2
 TimeStep = 10, Start time = 18 + 2 prev timeStep dt
 This is SetDt... setting to 2
-This is BoundaryConditions
 This is Solve
 This is Dt, returning 2
 
@@ -73,139 +63,119 @@
 TimeStep = 9, Start time = 16 + 2 prev timeStep dt
 TimeStep since job restart = 1
 This is SetDt... setting to 2
-This is BoundaryConditions
 This is Solve
 This is Dt, returning 2
 This is Dt, returning 2
 TimeStep = 10, Start time = 18 + 2 prev timeStep dt
 TimeStep since job restart = 2
 This is SetDt... setting to 2
-This is BoundaryConditions
 This is Solve
 This is Dt, returning 2
 This is Dt, returning 2
 TimeStep = 11, Start time = 20 + 2 prev timeStep dt
 TimeStep since job restart = 3
 This is SetDt... setting to 2
-This is BoundaryConditions
 This is Solve
 This is Dt, returning 2
 This is Dt, returning 2
 TimeStep = 12, Start time = 22 + 2 prev timeStep dt
 TimeStep since job restart = 4
 This is SetDt... setting to 2
-This is BoundaryConditions
 This is Solve
 This is Dt, returning 2
 This is Dt, returning 2
 TimeStep = 13, Start time = 24 + 2 prev timeStep dt
 TimeStep since job restart = 5
 This is SetDt... setting to 2
-This is BoundaryConditions
 This is Solve
 This is Dt, returning 2
 This is Dt, returning 2
 TimeStep = 14, Start time = 26 + 2 prev timeStep dt
 TimeStep since job restart = 6
 This is SetDt... setting to 2
-This is BoundaryConditions
 This is Solve
 This is Dt, returning 2
 This is Dt, returning 2
 TimeStep = 15, Start time = 28 + 2 prev timeStep dt
 TimeStep since job restart = 7
 This is SetDt... setting to 2
-This is BoundaryConditions
 This is Solve
 This is Dt, returning 2
 This is Dt, returning 2
 TimeStep = 16, Start time = 30 + 2 prev timeStep dt
 TimeStep since job restart = 8
 This is SetDt... setting to 2
-This is BoundaryConditions
 This is Solve
 This is Dt, returning 2
 This is Dt, returning 2
 TimeStep = 17, Start time = 32 + 2 prev timeStep dt
 TimeStep since job restart = 9
 This is SetDt... setting to 2
-This is BoundaryConditions
 This is Solve
 This is Dt, returning 2
 This is Dt, returning 2
 TimeStep = 18, Start time = 34 + 2 prev timeStep dt
 TimeStep since job restart = 10
 This is SetDt... setting to 2
-This is BoundaryConditions
 This is Solve
 This is Dt, returning 2
 This is Dt, returning 2
 TimeStep = 19, Start time = 36 + 2 prev timeStep dt
 TimeStep since job restart = 11
 This is SetDt... setting to 2
-This is BoundaryConditions
 This is Solve
 This is Dt, returning 2
 This is Dt, returning 2
 TimeStep = 20, Start time = 38 + 2 prev timeStep dt
 TimeStep since job restart = 12
 This is SetDt... setting to 2
-This is BoundaryConditions
 This is Solve
 This is Dt, returning 2
 This is Dt, returning 2
 TimeStep = 21, Start time = 40 + 2 prev timeStep dt
 TimeStep since job restart = 13
 This is SetDt... setting to 2
-This is BoundaryConditions
 This is Solve
 This is Dt, returning 2
 This is Dt, returning 2
 TimeStep = 22, Start time = 42 + 2 prev timeStep dt
 TimeStep since job restart = 14
 This is SetDt... setting to 2
-This is BoundaryConditions
 This is Solve
 This is Dt, returning 2
 This is Dt, returning 2
 TimeStep = 23, Start time = 44 + 2 prev timeStep dt
 TimeStep since job restart = 15
 This is SetDt... setting to 2
-This is BoundaryConditions
 This is Solve
 This is Dt, returning 2
 This is Dt, returning 2
 TimeStep = 24, Start time = 46 + 2 prev timeStep dt
 TimeStep since job restart = 16
 This is SetDt... setting to 2
-This is BoundaryConditions
 This is Solve
 This is Dt, returning 2
 This is Dt, returning 2
 TimeStep = 25, Start time = 48 + 2 prev timeStep dt
 TimeStep since job restart = 17
 This is SetDt... setting to 2
-This is BoundaryConditions
 This is Solve
 This is Dt, returning 2
 This is Dt, returning 2
 TimeStep = 26, Start time = 50 + 2 prev timeStep dt
 TimeStep since job restart = 18
 This is SetDt... setting to 2
-This is BoundaryConditions
 This is Solve
 This is Dt, returning 2
 This is Dt, returning 2
 TimeStep = 27, Start time = 52 + 2 prev timeStep dt
 TimeStep since job restart = 19
 This is SetDt... setting to 2
-This is BoundaryConditions
 This is Solve
 This is Dt, returning 2
 This is Dt, returning 2
 TimeStep = 28, Start time = 54 + 2 prev timeStep dt
 TimeStep since job restart = 20
 This is SetDt... setting to 2
-This is BoundaryConditions
 This is Solve
 This is Dt, returning 2

Modified: long/3D/Gale/trunk/src/StGermain/Base/Context/tests/testAbstractContextCheckPoint.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Base/Context/tests/testAbstractContextCheckPoint.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Base/Context/tests/testAbstractContextCheckPoint.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -73,14 +73,6 @@
 	return dt;
 }
 
-void MyBoundaryConditions( void* context ) {
-	Journal_Printf( (void*) stream, "This is BoundaryConditions\n" );
-}
-
-void MyBoundaryConditions2( void* context ) {
-	Journal_Printf( (void*) stream, "This is BoundaryConditions2\n" );
-}
-
 void MySolve( void* context ) {
 	Journal_Printf( (void*) stream, "This is Solve\n" );
 }
@@ -163,10 +155,9 @@
 
 	/* add hooks to existing entry points */
 	ContextEP_ReplaceAll( abstractContext, AbstractContext_EP_Build, MyBuild );
-	ContextEP_ReplaceAll( abstractContext, AbstractContext_EP_IC, MyInitialConditions );
+	ContextEP_ReplaceAll( abstractContext, AbstractContext_EP_Initialise, MyInitialConditions );
 	ContextEP_ReplaceAll( abstractContext, AbstractContext_EP_Solve, MySolve );
 	ContextEP_ReplaceAll( abstractContext, AbstractContext_EP_Dt, MyDt );
-	ContextEP_ReplaceAll( abstractContext, AbstractContext_EP_BC, MyBoundaryConditions );
 
 	/* Run the context for the first time */
 	if( rank == procToWatch ) {
@@ -204,10 +195,9 @@
 
 	/* add hooks to existing entry points */
 	ContextEP_ReplaceAll( abstractContext, AbstractContext_EP_Build, MyBuild );
-	ContextEP_ReplaceAll( abstractContext, AbstractContext_EP_IC, MyInitialConditions );
+	ContextEP_ReplaceAll( abstractContext, AbstractContext_EP_Initialise, MyInitialConditions );
 	ContextEP_ReplaceAll( abstractContext, AbstractContext_EP_Solve, MySolve );
 	ContextEP_ReplaceAll( abstractContext, AbstractContext_EP_Dt, MyDt );
-	ContextEP_ReplaceAll( abstractContext, AbstractContext_EP_BC, MyBoundaryConditions );
 
 	/* Run the context for the second time */
 	if( rank == procToWatch ) {

Modified: long/3D/Gale/trunk/src/StGermain/Base/Extensibility/distributedtests/MockContext.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Base/Extensibility/distributedtests/MockContext.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Base/Extensibility/distributedtests/MockContext.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -45,7 +45,7 @@
 void* _MockContext_DefaultNew( Name name ) {
 	return NULL;
 }
-void _MockContext_Construct( void* c, Stg_ComponentFactory* cf ) {
+void _MockContext_Construct( void* c, Stg_ComponentFactory* cf, void* data ) {
 
 }
 void _MockContext_Build( void* c, void* data ) {

Modified: long/3D/Gale/trunk/src/StGermain/Base/Extensibility/distributedtests/testDistributedPlugin.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Base/Extensibility/distributedtests/testDistributedPlugin.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Base/Extensibility/distributedtests/testDistributedPlugin.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -85,8 +85,8 @@
 	PluginsManager_Load( context->plugins, context, dictionary );
 
 	Stg_ComponentFactory_CreateComponents( cf );
-	Stg_ComponentFactory_ConstructComponents( cf );
-	PluginsManager_ConstructPlugins( context->plugins, cf );
+	Stg_ComponentFactory_ConstructComponents( cf, 0 /* dummy */ );
+	PluginsManager_ConstructPlugins( context->plugins, cf, 0 /* dummy */ );
 
 	((EntryPoint_VoidPtr_CallCast*) context->ep->run)( context->ep, context );
 

Modified: long/3D/Gale/trunk/src/StGermain/Base/Extensibility/distributedtests/testplugins/LocalPlugin/LocalPlugin.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Base/Extensibility/distributedtests/testplugins/LocalPlugin/LocalPlugin.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Base/Extensibility/distributedtests/testplugins/LocalPlugin/LocalPlugin.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -49,8 +49,8 @@
 
 
 /* Plugins are components, so they need a Construct() function. This is where you add the entry points and extensions */
-void _LocalPlugin_Construct( void* component, Stg_ComponentFactory* cf ) {
-	MockContext* context = (MockContext*)Stg_ComponentFactory_ConstructByName(cf, "context", Stg_Component, True );
+void _LocalPlugin_Construct( void* component, Stg_ComponentFactory* cf, void* data ) {
+	MockContext* context = (MockContext*)Stg_ComponentFactory_ConstructByName(cf, "context", Stg_Component, True, data );
 
 	EP_Append( context->ep, LocalPlugin_Function );
 }

Modified: long/3D/Gale/trunk/src/StGermain/Base/Extensibility/distributedtests/testplugins/LocalPluginDep/LocalPlugin1.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Base/Extensibility/distributedtests/testplugins/LocalPluginDep/LocalPlugin1.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Base/Extensibility/distributedtests/testplugins/LocalPluginDep/LocalPlugin1.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -51,8 +51,8 @@
 	printf( "LocalPlugin2 value: %d\n", *ext2 );
 }
 
-void _LocalPlugin1_Construct( void* component, Stg_ComponentFactory* cf ) {
-	MockContext* context = (MockContext*)Stg_ComponentFactory_ConstructByName(cf, "context", Stg_Component, True );
+void _LocalPlugin1_Construct( void* component, Stg_ComponentFactory* cf, void* data ) {
+	MockContext* context = (MockContext*)Stg_ComponentFactory_ConstructByName(cf, "context", Stg_Component, True, data );
 	
 	EP_Append( context->ep, LocalPlugin1_Function );
 }

Modified: long/3D/Gale/trunk/src/StGermain/Base/Extensibility/distributedtests/testplugins/LocalPluginDep/LocalPlugin2.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Base/Extensibility/distributedtests/testplugins/LocalPluginDep/LocalPlugin2.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Base/Extensibility/distributedtests/testplugins/LocalPluginDep/LocalPlugin2.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -42,8 +42,8 @@
 	printf( "%s\n", __func__ );
 }
 
-void _LocalPlugin2_Construct( void* component, Stg_ComponentFactory* cf ) {
-	MockContext* context = (MockContext*)Stg_ComponentFactory_ConstructByName(cf, "context", Stg_Component, True );
+void _LocalPlugin2_Construct( void* component, Stg_ComponentFactory* cf, void* data ) {
+	MockContext* context = (MockContext*)Stg_ComponentFactory_ConstructByName(cf, "context", Stg_Component, True, data );
 	int* ext;
 
 	ExtensionManager_Add( context->em, "LocalPlugin2", sizeof(int) );

Modified: long/3D/Gale/trunk/src/StGermain/Base/Extensibility/src/PluginsManager.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Base/Extensibility/src/PluginsManager.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Base/Extensibility/src/PluginsManager.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -429,19 +429,17 @@
 	return result;
 }
 
-void PluginsManager_ConstructPlugins( void* plugins, Stg_ComponentFactory* cf ) {
+void PluginsManager_ConstructPlugins( void* plugins, Stg_ComponentFactory* cf, void* data ) {
 	PluginsManager* self = (PluginsManager*)plugins;
 	int i;
 
 	for ( i = 0; i < self->codelets->count; ++i ) {
-		Stg_Component_Construct( self->codelets->data[i], cf, False );// True );
+		Stg_Component_Construct( self->codelets->data[i], cf, data, False );// True );
 	}
 }
 
 
-Bool PluginsManager_ConstructPlugin( void* plugins, Name pluginName, 
-						Stg_ComponentFactory* cf )
-{
+Bool PluginsManager_ConstructPlugin( void* plugins, Name pluginName, Stg_ComponentFactory* cf, void* data ) {
 	PluginsManager* self = (PluginsManager*)plugins;
 
 	//Get the codelet for the plugin we're wanting to construct.
@@ -450,7 +448,7 @@
 	if(codelet == NULL)
 		return False;
 	else
-		Stg_Component_Construct(codelet, cf, False );
+		Stg_Component_Construct( codelet, cf, data, False );
 
 	return True;
 }

Modified: long/3D/Gale/trunk/src/StGermain/Base/Extensibility/src/PluginsManager.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Base/Extensibility/src/PluginsManager.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Base/Extensibility/src/PluginsManager.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -106,8 +106,8 @@
 			Name version,
 			Stg_Component_DefaultConstructorFunction* defaultNew );
 
-	void PluginsManager_ConstructPlugins( void* plugins, Stg_ComponentFactory* cf );
+	void PluginsManager_ConstructPlugins( void* plugins, Stg_ComponentFactory* cf, void* data );
 
-	Bool PluginsManager_ConstructPlugin( void* plugins, Name pluginName, Stg_ComponentFactory* cf );
+	Bool PluginsManager_ConstructPlugin( void* plugins, Name pluginName, Stg_ComponentFactory* cf, void* data );
 
 #endif /* __Base_Extensibility_PluginsManager_h__ */

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/BlockGeometry.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/BlockGeometry.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/BlockGeometry.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -241,7 +241,7 @@
 	/* BlockGeometry info */
 }
 
-void _BlockGeometry_Construct( void* blockGeometry, Stg_ComponentFactory *cf ){
+void _BlockGeometry_Construct( void* blockGeometry, Stg_ComponentFactory *cf, void* data ){
 	BlockGeometry*  self   = (BlockGeometry*)blockGeometry;
 	IJK             size;
 	int             shift;

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/BlockGeometry.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/BlockGeometry.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/BlockGeometry.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -108,7 +108,7 @@
 	/* Print BlockGeometry implementation */
 	void _BlockGeometry_Print( void* blockGeometry, Stream* stream );
 	
-	void _BlockGeometry_Construct( void* blockGeometry, Stg_ComponentFactory *cf );
+	void _BlockGeometry_Construct( void* blockGeometry, Stg_ComponentFactory *cf, void* data );
 	
 	void _BlockGeometry_Build( void* blockGeometry, void *data );
 	

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/Delaunay.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/Delaunay.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/Delaunay.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -389,7 +389,7 @@
 	return NULL;
 }
 
-void _Delaunay_Construct( void* delaunay, Stg_ComponentFactory* cf )
+void _Delaunay_Construct( void* delaunay, Stg_ComponentFactory* cf, void* data )
 {
 	Delaunay *self = NULL;
 	Stg_ObjectList* pointerRegister;

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/Delaunay.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/Delaunay.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/Delaunay.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -152,7 +152,7 @@
 	
 	void *_Delaunay_Copy( void* delaunay, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 	
-	void _Delaunay_Construct( void* delaunay, Stg_ComponentFactory* cf );
+	void _Delaunay_Construct( void* delaunay, Stg_ComponentFactory* cf, void* data );
 	
 	void _Delaunay_Build( void* delaunay, void* data );
 	

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/IJK26Topology.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/IJK26Topology.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/IJK26Topology.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -235,10 +235,10 @@
 	/* IJK26Topology info */
 }
 
-void _IJK26Topology_Construct( void* ijk26Topology, Stg_ComponentFactory* cf ){
+void _IJK26Topology_Construct( void* ijk26Topology, Stg_ComponentFactory* cf, void* data ){
 	IJK26Topology *self = (IJK26Topology*)ijk26Topology;
 
-	_IJKTopology_Construct( self, cf );
+	_IJKTopology_Construct( self, cf, data );
 
 	/* No shifting sizes of topology because no assumption is made about elements */
 	_IJK26Topology_Init( self, False );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/IJK26Topology.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/IJK26Topology.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/IJK26Topology.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -121,7 +121,7 @@
 	/** Stg_Class_Print() implementation */
 	void _IJK26Topology_Print( void* ijk26Topology, Stream* stream );
 	
-	void _IJK26Topology_Construct( void* ijk26Topology, Stg_ComponentFactory* cf );
+	void _IJK26Topology_Construct( void* ijk26Topology, Stg_ComponentFactory* cf, void* data );
 	
 	void _IJK26Topology_Build( void* ijk26Topology, void* data );
 	

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/IJK6Topology.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/IJK6Topology.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/IJK6Topology.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -217,10 +217,10 @@
 	/* IJK6Topology info */
 }
 
-void _IJK6Topology_Construct( void* ijk6Topology, Stg_ComponentFactory* cf ){
+void _IJK6Topology_Construct( void* ijk6Topology, Stg_ComponentFactory* cf, void* data ){
 	IJK6Topology *self = (IJK6Topology*)ijk6Topology;
 
-	_IJKTopology_Construct( self, cf );
+	_IJKTopology_Construct( self, cf, data );
 	_IJK6Topology_Init( self );
 }
 

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/IJK6Topology.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/IJK6Topology.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/IJK6Topology.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -128,7 +128,7 @@
 	/** Stg_Class_Print() implementation */
 	void _IJK6Topology_Print( void* ijk6Topology, Stream* stream );
 	
-	void _IJK6Topology_Construct( void* ijk6Topology, Stg_ComponentFactory* cf );
+	void _IJK6Topology_Construct( void* ijk6Topology, Stg_ComponentFactory* cf, void* data );
 	
 	void _IJK6Topology_Build( void* ijk6Topology, void* data );
 	

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/IJKTopology.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/IJKTopology.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/IJKTopology.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -96,7 +96,7 @@
 	return self;
 }
 
-void _IJKTopology_Construct( void* ijkTopology, Stg_ComponentFactory* cf ){
+void _IJKTopology_Construct( void* ijkTopology, Stg_ComponentFactory* cf, void* data ){
 	IJKTopology*    self   = (IJKTopology*)ijkTopology;
 	IJK             size;
 	int             shift;

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/IJKTopology.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/IJKTopology.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/IJKTopology.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -133,7 +133,7 @@
 	void* _IJKTopology_Copy( void* ijkTopology, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 	
 	
-	void _IJKTopology_Construct( void* ijkTopology, Stg_ComponentFactory* cf );
+	void _IJKTopology_Construct( void* ijkTopology, Stg_ComponentFactory* cf, void* data );
 	/*--------------------------------------------------------------------------------------------------------------------------
 	** Public functions/macros
 	*/

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/IrregGeometry.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/IrregGeometry.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/IrregGeometry.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -243,7 +243,7 @@
 	/* IrregGeometry info */
 }
 
-void _IrregGeometry_Construct( void* irregGeometry, Stg_ComponentFactory *cf ){
+void _IrregGeometry_Construct( void* irregGeometry, Stg_ComponentFactory *cf, void* data ){
 	IrregGeometry *self = (IrregGeometry*)irregGeometry;
 	Dictionary *componentDict = NULL;
 	Dictionary *thisComponentDict = NULL;

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/IrregGeometry.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/IrregGeometry.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/IrregGeometry.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -111,7 +111,7 @@
 	/* Print IrregGeometry implementation */
 	void _IrregGeometry_Print( void* irregGeometry, Stream* stream );
 	
-	void _IrregGeometry_Construct( void* irregGeometry, Stg_ComponentFactory *cf );
+	void _IrregGeometry_Construct( void* irregGeometry, Stg_ComponentFactory *cf, void* data );
 	
 	void _IrregGeometry_Build( void* irregGeometry, void *data );
 	

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/IrregTopology.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/IrregTopology.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/IrregTopology.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -251,7 +251,7 @@
 	/* IrregTopology info */
 }
 
-void _IrregTopology_Construct( void* irregTopology, Stg_ComponentFactory *cf ){
+void _IrregTopology_Construct( void* irregTopology, Stg_ComponentFactory *cf, void* data ){
 	IrregTopology *self = (IrregTopology*)irregTopology;
 	Dictionary *componentDict = NULL;
 	Dictionary *thisComponentDict = NULL;

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/IrregTopology.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/IrregTopology.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/IrregTopology.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -113,7 +113,7 @@
 	/* Print IrregTopology implementation */
 	void _IrregTopology_Print( void* irregTopology, Stream* stream );
 
-	void _IrregTopology_Construct( void* irregTopology, Stg_ComponentFactory *cf );
+	void _IrregTopology_Construct( void* irregTopology, Stg_ComponentFactory *cf, void* data );
 
 	void _IrregTopology_Build( void* irregTopology, void* data );
 	

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/ParallelDelaunay.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/ParallelDelaunay.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/ParallelDelaunay.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -311,7 +311,7 @@
 	return NULL;
 }
 
-void _ParallelDelaunay_Construct( void* pd, Stg_ComponentFactory* cf )
+void _ParallelDelaunay_Construct( void* pd, Stg_ComponentFactory* cf, void* data )
 {
 	
 }

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/ParallelDelaunay.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/ParallelDelaunay.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/ParallelDelaunay.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -134,7 +134,7 @@
 	
 	void *_ParallelDelaunay_Copy( void* pd, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 	
-	void _ParallelDelaunay_Construct( void* pd, Stg_ComponentFactory* cf );
+	void _ParallelDelaunay_Construct( void* pd, Stg_ComponentFactory* cf, void* data );
 	
 	void _ParallelDelaunay_Build( void* pd, void* data );
 	

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/RefinedRegionsGeometry.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/RefinedRegionsGeometry.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/RefinedRegionsGeometry.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -271,7 +271,7 @@
 	/* RefinedRegionsGeometry info */
 }
 
-void _RefinedRegionsGeometry_Construct( void* refinedRegionsGeometry, Stg_ComponentFactory *cf ){
+void _RefinedRegionsGeometry_Construct( void* refinedRegionsGeometry, Stg_ComponentFactory *cf, void* data ){
 	RefinedRegionsGeometry*  self   = (RefinedRegionsGeometry*)refinedRegionsGeometry;
 	IJK             size;
 	int             shift;

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/RefinedRegionsGeometry.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/RefinedRegionsGeometry.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/RefinedRegionsGeometry.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -123,7 +123,7 @@
 	/* Print RefinedRegionsGeometry implementation */
 	void _RefinedRegionsGeometry_Print( void* blockGeometry, Stream* stream );
 	
-	void _RefinedRegionsGeometry_Construct( void* blockGeometry, Stg_ComponentFactory *cf );
+	void _RefinedRegionsGeometry_Construct( void* blockGeometry, Stg_ComponentFactory *cf, void* data );
 	
 	void _RefinedRegionsGeometry_Build( void* blockGeometry, void *data );
 	

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/ShellGeometry.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/ShellGeometry.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/ShellGeometry.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -245,7 +245,7 @@
 	/* ShellGeometry info */
 }
 
-void _ShellGeometry_Construct( void* shellGeometry, Stg_ComponentFactory *cf ){
+void _ShellGeometry_Construct( void* shellGeometry, Stg_ComponentFactory *cf, void* data ){
 	
 }
 	

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/ShellGeometry.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/ShellGeometry.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/src/ShellGeometry.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -110,7 +110,7 @@
 	/* Print ShellGeometry implementation */
 	void _ShellGeometry_Print( void* shellGeometry, Stream* stream );
 	
-	void _ShellGeometry_Construct( void* shellGeometry, Stg_ComponentFactory *cf );
+	void _ShellGeometry_Construct( void* shellGeometry, Stg_ComponentFactory *cf, void* data );
 	
 	void _ShellGeometry_Build( void* shellGeometry, void *data );
 	

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/BodyNL.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/BodyNL.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/BodyNL.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -255,15 +255,15 @@
 	/* BodyNL info */
 }
 
-void _BodyNL_Construct( void* bodyNL, Stg_ComponentFactory *cf ){
+void _BodyNL_Construct( void* bodyNL, Stg_ComponentFactory *cf, void* data ){
 	BodyNL *self = (BodyNL*)bodyNL;
 	ElementLayout *elementLayout = NULL;
 	Topology *topology = NULL;
 
 	self->dictionary = cf->rootDict;
 	
-	elementLayout =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  ElementLayout_Type, ElementLayout,  True  ) ;	
-	topology =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  Topology_Type, Topology,  True  ) ;
+	elementLayout =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  ElementLayout_Type, ElementLayout,  True, data ) ;	
+	topology =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  Topology_Type, Topology,  True, data ) ;
 	
 	_NodeLayout_Init( (NodeLayout*)self, elementLayout, topology );
 	_BodyNL_Init( self );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/BodyNL.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/BodyNL.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/BodyNL.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -117,7 +117,7 @@
 	/* Print bodyNL implementation */
 	void _BodyNL_Print( void* bodyNL, Stream* stream );
 	
-	void _BodyNL_Construct( void* bodyNL, Stg_ComponentFactory *cf );
+	void _BodyNL_Construct( void* bodyNL, Stg_ComponentFactory *cf, void* data );
 	
 	void _BodyNL_Build( void* bodyNL, void* data );
 	

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/CartesianGenerator.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/CartesianGenerator.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/CartesianGenerator.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -167,7 +167,7 @@
 	return NULL;
 }
 
-void _CartesianGenerator_Construct( void* generator, Stg_ComponentFactory* cf ) {
+void _CartesianGenerator_Construct( void* generator, Stg_ComponentFactory* cf, void* data ) {
 	CartesianGenerator*	self = (CartesianGenerator*)generator;
 	Dictionary*		dict;
 	Dictionary_Entry_Value*	sizeList;
@@ -186,10 +186,10 @@
 	assert( cf );
 
 	/* Call parent construct. */
-	_MeshGenerator_Construct( self, cf );
+	_MeshGenerator_Construct( self, cf, data );
 
 	/* Check if we're using the antiquated version. */
-	decomp = Stg_ComponentFactory_ConstructByKey( cf, self->name, "decomp", HexaMD, False );
+	decomp = Stg_ComponentFactory_ConstructByKey( cf, self->name, "decomp", HexaMD, False, data );
 	if( decomp ) {
 		/* Read the number of dimensions. */
 		dict = cf->rootDict;

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/CartesianGenerator.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/CartesianGenerator.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/CartesianGenerator.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -95,7 +95,7 @@
 		(Mesh*)Stg_Class_Copy( self, NULL, True, NULL, NULL )
 	void* _CartesianGenerator_Copy( void* generator, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 
-	void _CartesianGenerator_Construct( void* generator, Stg_ComponentFactory* cf );
+	void _CartesianGenerator_Construct( void* generator, Stg_ComponentFactory* cf, void* data );
 	void _CartesianGenerator_Build( void* generator, void* data );
 	void _CartesianGenerator_Initialise( void* generator, void* data );
 	void _CartesianGenerator_Execute( void* generator, void* data );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/CommTopology.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/CommTopology.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/CommTopology.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -148,7 +148,7 @@
 	return NULL;
 }
 
-void _CommTopology_Construct( void* generator, Stg_ComponentFactory* cf ) {
+void _CommTopology_Construct( void* generator, Stg_ComponentFactory* cf, void* data ) {
 }
 
 void _CommTopology_Build( void* generator, void* data ) {

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/CommTopology.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/CommTopology.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/CommTopology.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -90,7 +90,7 @@
 		(Mesh*)Stg_Class_Copy( self, NULL, True, NULL, NULL )
 	void* _CommTopology_Copy( void* generator, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 
-	void _CommTopology_Construct( void* generator, Stg_ComponentFactory* cf );
+	void _CommTopology_Construct( void* generator, Stg_ComponentFactory* cf, void* data );
 	void _CommTopology_Build( void* generator, void* data );
 	void _CommTopology_Initialise( void* generator, void* data );
 	void _CommTopology_Execute( void* generator, void* data );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/CornerNL.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/CornerNL.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/CornerNL.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -258,15 +258,15 @@
 	/* CornerNL info */
 }
 	
-void _CornerNL_Construct( void* cornerNL, Stg_ComponentFactory* cf ){
+void _CornerNL_Construct( void* cornerNL, Stg_ComponentFactory* cf, void* data ){
 	CornerNL *self = (CornerNL*)cornerNL;
 	ElementLayout *elementLayout = NULL;
 	Topology *topology = NULL;
 
 	self->dictionary = cf->rootDict;
 	
-	elementLayout =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  ElementLayout_Type, ElementLayout,  True  ) ;	
-	topology =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  Topology_Type, Topology,  True  ) ;
+	elementLayout =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  ElementLayout_Type, ElementLayout,  True, data ) ;	
+	topology =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  Topology_Type, Topology,  True, data ) ;
 	
 	_NodeLayout_Init( (NodeLayout*)self, elementLayout, topology );
 	_CornerNL_Init( self );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/CornerNL.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/CornerNL.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/CornerNL.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -119,7 +119,7 @@
 	/* Print cornerNL implementation */
 	void _CornerNL_Print( void* cornerNL, Stream* stream );
 	
-	void _CornerNL_Construct( void* cornerNL, Stg_ComponentFactory* cf );
+	void _CornerNL_Construct( void* cornerNL, Stg_ComponentFactory* cf, void* data );
 	
 	void _CornerNL_Build( void* cornerNL, void* data );
 	

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/Decomp.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/Decomp.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/Decomp.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -151,7 +151,7 @@
 	return NULL;
 }
 
-void _Decomp_Construct( void* decomp, Stg_ComponentFactory* cf ) {
+void _Decomp_Construct( void* decomp, Stg_ComponentFactory* cf, void* data ) {
 }
 
 void _Decomp_Build( void* decomp, void* data ) {

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/Decomp.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/Decomp.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/Decomp.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -94,7 +94,7 @@
 		(Mesh*)Stg_Class_Copy( self, NULL, True, NULL, NULL )
 	void* _Decomp_Copy( void* decomp, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 
-	void _Decomp_Construct( void* decomp, Stg_ComponentFactory* cf );
+	void _Decomp_Construct( void* decomp, Stg_ComponentFactory* cf, void* data );
 	void _Decomp_Build( void* decomp, void* data );
 	void _Decomp_Initialise( void* decomp, void* data );
 	void _Decomp_Execute( void* decomp, void* data );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/Decomp_Sync.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/Decomp_Sync.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/Decomp_Sync.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -168,7 +168,7 @@
 	return NULL;
 }
 
-void _Decomp_Sync_Construct( void* sync, Stg_ComponentFactory* cf ) {
+void _Decomp_Sync_Construct( void* sync, Stg_ComponentFactory* cf, void* data ) {
 }
 
 void _Decomp_Sync_Build( void* sync, void* data ) {

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/Decomp_Sync.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/Decomp_Sync.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/Decomp_Sync.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -126,7 +126,7 @@
 		(Mesh*)Stg_Class_Copy( self, NULL, True, NULL, NULL )
 	void* _Decomp_Sync_Copy( void* sync, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 
-	void _Decomp_Sync_Construct( void* sync, Stg_ComponentFactory* cf );
+	void _Decomp_Sync_Construct( void* sync, Stg_ComponentFactory* cf, void* data );
 	void _Decomp_Sync_Build( void* sync, void* data );
 	void _Decomp_Sync_Initialise( void* sync, void* data );
 	void _Decomp_Sync_Execute( void* sync, void* data );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/Decomp_Sync_Claim.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/Decomp_Sync_Claim.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/Decomp_Sync_Claim.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -145,7 +145,7 @@
 	return NULL;
 }
 
-void _Decomp_Sync_Claim_Construct( void* claim, Stg_ComponentFactory* cf ) {
+void _Decomp_Sync_Claim_Construct( void* claim, Stg_ComponentFactory* cf, void* data ) {
 }
 
 void _Decomp_Sync_Claim_Build( void* claim, void* data ) {

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/Decomp_Sync_Claim.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/Decomp_Sync_Claim.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/Decomp_Sync_Claim.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -88,7 +88,7 @@
 		(Mesh*)Stg_Class_Copy( self, NULL, True, NULL, NULL )
 	void* _Decomp_Sync_Claim_Copy( void* claim, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 
-	void _Decomp_Sync_Claim_Construct( void* claim, Stg_ComponentFactory* cf );
+	void _Decomp_Sync_Claim_Construct( void* claim, Stg_ComponentFactory* cf, void* data );
 	void _Decomp_Sync_Claim_Build( void* claim, void* data );
 	void _Decomp_Sync_Claim_Initialise( void* claim, void* data );
 	void _Decomp_Sync_Claim_Execute( void* claim, void* data );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/Decomp_Sync_Negotiate.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/Decomp_Sync_Negotiate.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/Decomp_Sync_Negotiate.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -145,7 +145,7 @@
 	return NULL;
 }
 
-void _Decomp_Sync_Negotiate_Construct( void* negotiate, Stg_ComponentFactory* cf ) {
+void _Decomp_Sync_Negotiate_Construct( void* negotiate, Stg_ComponentFactory* cf, void* data ) {
 }
 
 void _Decomp_Sync_Negotiate_Build( void* negotiate, void* data ) {

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/Decomp_Sync_Negotiate.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/Decomp_Sync_Negotiate.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/Decomp_Sync_Negotiate.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -87,7 +87,7 @@
 		(Mesh*)Stg_Class_Copy( self, NULL, True, NULL, NULL )
 	void* _Decomp_Sync_Negotiate_Copy( void* negotiate, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 
-	void _Decomp_Sync_Negotiate_Construct( void* negotiate, Stg_ComponentFactory* cf );
+	void _Decomp_Sync_Negotiate_Construct( void* negotiate, Stg_ComponentFactory* cf, void* data );
 	void _Decomp_Sync_Negotiate_Build( void* negotiate, void* data );
 	void _Decomp_Sync_Negotiate_Initialise( void* negotiate, void* data );
 	void _Decomp_Sync_Negotiate_Execute( void* negotiate, void* data );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/DummyMD.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/DummyMD.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/DummyMD.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -334,7 +334,7 @@
 	/* DummyMD info */
 }
 
-void _DummyMD_Construct( void* dummyMD, Stg_ComponentFactory *cf ){
+void _DummyMD_Construct( void* dummyMD, Stg_ComponentFactory *cf, void* data ){
 	DummyMD*        self          = (DummyMD*)dummyMD;
 	ElementLayout*  elementLayout = NULL;
 	NodeLayout*     nodeLayout    = NULL;
@@ -342,8 +342,8 @@
 
 	self->dictionary = cf->rootDict;
 	
-	elementLayout =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  ElementLayout_Type, ElementLayout,  True  ) ;
-	nodeLayout =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  NodeLayout_Type, NodeLayout,  True  ) ;
+	elementLayout =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  ElementLayout_Type, ElementLayout,  True, data ) ;
+	nodeLayout =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  NodeLayout_Type, NodeLayout,  True, data ) ;
 	pointerRegister = Stg_ObjectList_Get( cf->registerRegister, "Pointer_Register" );
 
 	_MeshDecomp_Init( (MeshDecomp*)self, MPI_COMM_WORLD, elementLayout, nodeLayout, pointerRegister );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/DummyMD.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/DummyMD.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/DummyMD.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -130,7 +130,7 @@
 	/* Print DummyMD implementation */
 	void _DummyMD_Print( void* dummyMD, Stream* stream );
 	
-	void _DummyMD_Construct( void* dummyMD, Stg_ComponentFactory *cf );
+	void _DummyMD_Construct( void* dummyMD, Stg_ComponentFactory *cf, void* data );
 	
 	void _DummyMD_Build( void* dummyMD, void* data );
 	

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/HMesh.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/HMesh.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/HMesh.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -201,7 +201,7 @@
 ** Virtual functions
 */
 
-void _HMesh_Construct( void* mesh, Stg_ComponentFactory* cf ) {
+void _HMesh_Construct( void* mesh, Stg_ComponentFactory* cf, void* data ) {
 	HMesh*		self = (HMesh*)mesh;
 	Dictionary*	dict;
 	unsigned	nLevels;
@@ -221,7 +221,7 @@
 	/* Read the base mesh from the dictionary. */
 	meshName = Stg_ComponentFactory_GetString( cf, self->name, "base-mesh", NULL );
 	if( meshName && strcmp( meshName, "" ) ) {
-		baseMesh = Stg_ComponentFactory_ConstructByName( cf, meshName, Mesh, True );
+		baseMesh = Stg_ComponentFactory_ConstructByName( cf, meshName, Mesh, True, data );
 	}
 	else
 		baseMesh = NULL;

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/HMesh.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/HMesh.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/HMesh.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -141,7 +141,7 @@
 	void* _HMesh_Copy( void* mesh, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 
 	void _HMesh_Build( void* mesh, void* data );
-	void _HMesh_Construct( void* mesh, Stg_ComponentFactory* cf );
+	void _HMesh_Construct( void* mesh, Stg_ComponentFactory* cf, void* data );
 	void _HMesh_Initialise( void* mesh, void* data );
 	void _HMesh_Execute( void* mesh, void* data );
 	void _HMesh_Destroy( void* mesh, void* data );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/HexaEL.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/HexaEL.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/HexaEL.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -350,7 +350,7 @@
 	return (void*)newHexaEL;
 }
 
-void _HexaEL_Construct( void* hexaEL, Stg_ComponentFactory* cf ) {
+void _HexaEL_Construct( void* hexaEL, Stg_ComponentFactory* cf, void* data ) {
 	HexaEL*   self = (HexaEL*) hexaEL;
 	IJK26Topology *topology = NULL;
 	Geometry *geometry = NULL;
@@ -358,8 +358,8 @@
 
 	self->dictionary = cf->rootDict;
 	
-	topology =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  Topology_Type, IJK26Topology,  True  ) ;
-	geometry =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  Geometry_Type, Geometry,  True  ) ;
+	topology =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  Topology_Type, IJK26Topology,  True, data  ) ;
+	geometry =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  Geometry_Type, Geometry,  True, data  ) ;
 
 	dim = Dictionary_GetUnsignedInt( self->dictionary, "dim" );
 	

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/HexaEL.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/HexaEL.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/HexaEL.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -125,7 +125,7 @@
 	/* Print HexaEL implementation */
 	void _HexaEL_Print( void* hexaEL, Stream* stream );
 	
-	void _HexaEL_Construct( void* hexaEL, Stg_ComponentFactory* cf );
+	void _HexaEL_Construct( void* hexaEL, Stg_ComponentFactory* cf, void* data );
 	
 	void _HexaEL_Build( void* hexaEL, void* data );
 	

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/HexaMD.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/HexaMD.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/HexaMD.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -1206,7 +1206,7 @@
 	return (void*)newHexaMD;
 }
 
-void _HexaMD_Construct( void* hexaMD, Stg_ComponentFactory *cf ){
+void _HexaMD_Construct( void* hexaMD, Stg_ComponentFactory *cf, void* data ) {
 	HexaMD *        self            = (HexaMD*)hexaMD;
 	ElementLayout*  elementLayout   = NULL;
 	NodeLayout*     nodeLayout      = NULL;
@@ -1215,8 +1215,8 @@
 
 	self->dictionary = cf->rootDict;
 	
-	elementLayout =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  ElementLayout_Type, ElementLayout,  True  ) ;
-	nodeLayout =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  NodeLayout_Type, NodeLayout,  True  ) ;
+	elementLayout =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  ElementLayout_Type, ElementLayout, True, data ) ;
+	nodeLayout =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  NodeLayout_Type, NodeLayout,  True, data ) ;
 	numPartitionedDims = Stg_ComponentFactory_GetUnsignedInt( cf, self->name, "numPartitionedDims", 1 ); 
 	
 	pointerRegister = Stg_ObjectList_Get( cf->registerRegister, "Pointer_Register" );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/HexaMD.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/HexaMD.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/HexaMD.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -160,7 +160,7 @@
 	
 	void* _HexaMD_Copy( void* hexaMD, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 	
-	void _HexaMD_Construct( void* hexaMD, Stg_ComponentFactory *cf );
+	void _HexaMD_Construct( void* hexaMD, Stg_ComponentFactory *cf, void* data );
 	
 	void _HexaMD_Build( void* hexaMD, void* data );
 	

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/IrregEL.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/IrregEL.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/IrregEL.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -362,7 +362,7 @@
 	/* IrregEL info */
 }
 
-void _IrregEL_Construct( void* irregEL, Stg_ComponentFactory* cf ){
+void _IrregEL_Construct( void* irregEL, Stg_ComponentFactory* cf, void* data ){
 	IrregEL *self = (IrregEL*)irregEL;
 	Name listName = NULL;
 	Topology *topology = NULL;
@@ -371,8 +371,8 @@
 	self->dictionary = cf->rootDict;
 	listName = Stg_ComponentFactory_GetString( cf, self->name, "ListName", "" ); 
 	
-	topology =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  Topology_Type, Topology,  True  ) ;
-	geometry =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  Geometry_Type, Geometry,  True  ) ;
+	topology =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  Topology_Type, Topology,  True, data  ) ;
+	geometry =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  Geometry_Type, Geometry,  True, data ) ;
 
 	_ElementLayout_Init( (ElementLayout*)self, geometry, topology );
 	_IrregEL_Init( self, listName );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/IrregEL.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/IrregEL.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/IrregEL.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -126,7 +126,7 @@
 	/* Print IrregEL implementation */
 	void _IrregEL_Print( void* irregEL, Stream* stream );
 	
-	void _IrregEL_Construct( void* irregEL, Stg_ComponentFactory* cf );
+	void _IrregEL_Construct( void* irregEL, Stg_ComponentFactory* cf, void* data );
 	
 	void _IrregEL_ComponentBuild( void* irregEL, void* data );
 	

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshAdaptor.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshAdaptor.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshAdaptor.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -130,14 +130,14 @@
 	return NULL;
 }
 
-void _MeshAdaptor_Construct( void* meshAdaptor, Stg_ComponentFactory* cf ) {
+void _MeshAdaptor_Construct( void* meshAdaptor, Stg_ComponentFactory* cf, void* data ) {
 	MeshAdaptor*	self = (MeshAdaptor*)meshAdaptor;
 
-	_MeshGenerator_Construct( self, cf );
+	_MeshGenerator_Construct( self, cf, data );
 
 	/* Read the source generator. */
 	self->generator = Stg_ComponentFactory_ConstructByKey( cf, self->name, "sourceGenerator", 
-							       MeshGenerator, True );
+							       MeshGenerator, True, data );
 }
 
 void _MeshAdaptor_Build( void* meshAdaptor, void* data ) {

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshAdaptor.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshAdaptor.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshAdaptor.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -84,7 +84,7 @@
 		(Mesh*)Stg_Class_Copy( self, NULL, True, NULL, NULL )
 	void* _MeshAdaptor_Copy( void* meshAdaptor, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 
-	void _MeshAdaptor_Construct( void* meshAdaptor, Stg_ComponentFactory* cf );
+	void _MeshAdaptor_Construct( void* meshAdaptor, Stg_ComponentFactory* cf, void* data );
 	void _MeshAdaptor_Build( void* meshAdaptor, void* data );
 	void _MeshAdaptor_Initialise( void* meshAdaptor, void* data );
 	void _MeshAdaptor_Execute( void* meshAdaptor, void* data );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshClass.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshClass.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshClass.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -345,7 +345,7 @@
 ** Virtual functions
 */
 
-void _Mesh_Construct( void* mesh, Stg_ComponentFactory* cf ) {
+void _Mesh_Construct( void* mesh, Stg_ComponentFactory* cf, void* data ) {
 	Mesh* self = (Mesh*)mesh;
 	Dictionary *componentDict = NULL;
 	Dictionary *thisComponentDict = NULL;
@@ -360,7 +360,7 @@
 	thisComponentDict = Dictionary_Entry_Value_AsDictionary( Dictionary_Get( componentDict, self->name ) );
 	assert( thisComponentDict );
 	
-	meshLayout =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  MeshLayout_Type, MeshLayout,  True  ) ;
+	meshLayout =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  MeshLayout_Type, MeshLayout,  True, data ) ;
 	
 	extensionManager_Register = Stg_ObjectList_Get( cf->registerRegister, "ExtensionManager_Register" );
 	assert( extensionManager_Register );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshClass.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshClass.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshClass.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -302,7 +302,7 @@
 	void _Mesh_Build( void* mesh, void* data );
 	
 	/* Construct implementation */
-	void _Mesh_Construct( void* mesh, Stg_ComponentFactory* cf );
+	void _Mesh_Construct( void* mesh, Stg_ComponentFactory* cf, void* data );
 	
 	/* Initialisation implementation */
 	void _Mesh_Initialise( void* mesh, void* data );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshGenerator.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshGenerator.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshGenerator.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -134,7 +134,7 @@
 	return NULL;
 }
 
-void _MeshGenerator_Construct( void* meshGenerator, Stg_ComponentFactory* cf ) {
+void _MeshGenerator_Construct( void* meshGenerator, Stg_ComponentFactory* cf, void* data ) {
 	MeshGenerator*		self = (MeshGenerator*)meshGenerator;
 	Dictionary*		dict;
 	Dictionary_Entry_Value*	meshList;
@@ -150,7 +150,7 @@
 	MeshGenerator_SetComm( self, MPI_COMM_WORLD );
 
 	/* Read the individual mesh if specified. */
-	mesh = Stg_ComponentFactory_ConstructByKey( cf, self->name, "mesh", Mesh, False );
+	mesh = Stg_ComponentFactory_ConstructByKey( cf, self->name, "mesh", Mesh, False, data );
 	if( mesh )
 		MeshGenerator_AddMesh( self, mesh );
 
@@ -166,7 +166,7 @@
 			Mesh*	mesh;
 
 			name = Dictionary_Entry_Value_AsString( Dictionary_Entry_Value_GetElement( meshList, m_i ) );
-			mesh = Stg_ComponentFactory_ConstructByName( cf, name, Mesh, True );
+			mesh = Stg_ComponentFactory_ConstructByName( cf, name, Mesh, True, data );
 			MeshGenerator_AddMesh( self, mesh );
 		}
 	}

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshGenerator.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshGenerator.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshGenerator.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -89,7 +89,7 @@
 		(Mesh*)Stg_Class_Copy( self, NULL, True, NULL, NULL )
 	void* _MeshGenerator_Copy( void* meshGenerator, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 
-	void _MeshGenerator_Construct( void* meshGenerator, Stg_ComponentFactory* cf );
+	void _MeshGenerator_Construct( void* meshGenerator, Stg_ComponentFactory* cf, void* data );
 	void _MeshGenerator_Build( void* meshGenerator, void* data );
 	void _MeshGenerator_Initialise( void* meshGenerator, void* data );
 	void _MeshGenerator_Execute( void* meshGenerator, void* data );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshGeometry.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshGeometry.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshGeometry.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -227,25 +227,24 @@
 	/* MeshGeometry info */
 }
 
-void _MeshGeometry_Construct( void* meshGeometry, Stg_ComponentFactory *cf ){
+void _MeshGeometry_Construct( void* meshGeometry, Stg_ComponentFactory *cf, void* data ){
 	MeshGeometry*	self = (MeshGeometry*)meshGeometry;
         Dictionary*	dict;
 
-        _BlockGeometry_Construct( self, cf );
+        _BlockGeometry_Construct( self, cf, data );
 
 	/* Get Size from Dictionary */
 	self->cf = cf;
         dict = Dictionary_Entry_Value_AsDictionary( Dictionary_Get( cf->componentDict, self->name ) );
         self->meshName = StG_Strdup( Dictionary_GetString( dict, "mesh" ) );
 	self->decompName = StG_Strdup( Dictionary_GetString( dict, "decomp" ) );
-
 }
 
 void _MeshGeometry_Build( void* meshGeometry, void *data ){
 	MeshGeometry*	self = (MeshGeometry*)meshGeometry;
 
-	self->mesh = Stg_ComponentFactory_ConstructByName( self->cf, self->meshName, Mesh, True );
-	self->decomp = Stg_ComponentFactory_ConstructByName( self->cf, self->decompName, MeshDecomp, True );
+	self->mesh = Stg_ComponentFactory_ConstructByName( self->cf, self->meshName, Mesh, True, data );
+	self->decomp = Stg_ComponentFactory_ConstructByName( self->cf, self->decompName, MeshDecomp, True, data );
 }
 	
 void _MeshGeometry_Initialise( void* meshGeometry, void *data ){

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshGeometry.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshGeometry.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshGeometry.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -112,7 +112,7 @@
 	/* Print MeshGeometry implementation */
 	void _MeshGeometry_Print( void* blockGeometry, Stream* stream );
 	
-	void _MeshGeometry_Construct( void* blockGeometry, Stg_ComponentFactory *cf );
+	void _MeshGeometry_Construct( void* blockGeometry, Stg_ComponentFactory *cf, void* data );
 	
 	void _MeshGeometry_Build( void* blockGeometry, void *data );
 	

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshLayout.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshLayout.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshLayout.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -244,15 +244,15 @@
 	return (void*)newMeshLayout;
 }
 
-void _MeshLayout_Construct( void* meshLayout, Stg_ComponentFactory *cf ){
+void _MeshLayout_Construct( void* meshLayout, Stg_ComponentFactory *cf, void* data ){
 	MeshLayout *self = (MeshLayout*)meshLayout;
 	ElementLayout *elementLayout = NULL;
 	NodeLayout *nodeLayout = NULL;
 	MeshDecomp *meshDecomp = NULL;
 
-	elementLayout =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  ElementLayout_Type, ElementLayout,  True  ) ;
-	nodeLayout =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  NodeLayout_Type, NodeLayout,  True  ) ;
-	meshDecomp =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  MeshDecomp_Type, MeshDecomp,  True  ) ;
+	elementLayout =  Stg_ComponentFactory_ConstructByKey( cf, self->name, ElementLayout_Type, ElementLayout, True, data );
+	nodeLayout =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  NodeLayout_Type, NodeLayout,  True, data ) ;
+	meshDecomp =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  MeshDecomp_Type, MeshDecomp,  True, data ) ;
 	
 	_MeshLayout_Init( self, elementLayout, nodeLayout, meshDecomp );
 }

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshLayout.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshLayout.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshLayout.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -120,7 +120,7 @@
 	/* Print MeshLayout implementation */
 	void _MeshLayout_Print( void* meshLayout, Stream* stream );
 	
-	void _MeshLayout_Construct( void* meshLayout, Stg_ComponentFactory *cf );
+	void _MeshLayout_Construct( void* meshLayout, Stg_ComponentFactory *cf, void* data );
 	
 	void _MeshLayout_Build( void* meshLayout, void *data );
 	

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshTopology.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshTopology.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshTopology.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -159,7 +159,7 @@
 	return NULL;
 }
 
-void _MeshTopology_Construct( void* topo, Stg_ComponentFactory* cf ) {
+void _MeshTopology_Construct( void* topo, Stg_ComponentFactory* cf, void* data ) {
 }
 
 void _MeshTopology_Build( void* topo, void* data ) {

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshTopology.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshTopology.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/MeshTopology.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -102,7 +102,7 @@
 		(Mesh*)Stg_Class_Copy( self, NULL, True, NULL, NULL )
 	void* _MeshTopology_Copy( void* topo, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 
-	void _MeshTopology_Construct( void* topo, Stg_ComponentFactory* cf );
+	void _MeshTopology_Construct( void* topo, Stg_ComponentFactory* cf, void* data );
 	void _MeshTopology_Build( void* topo, void* data );
 	void _MeshTopology_Initialise( void* topo, void* data );
 	void _MeshTopology_Execute( void* topo, void* data );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/ParallelPipedHexaEL.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/ParallelPipedHexaEL.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/ParallelPipedHexaEL.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -351,7 +351,7 @@
 	return (void*)newParallelPipedHexaEL;
 }
 
-void _ParallelPipedHexaEL_Construct( void* ppHexaEL, Stg_ComponentFactory* cf ){
+void _ParallelPipedHexaEL_Construct( void* ppHexaEL, Stg_ComponentFactory* cf, void* data ){
 	ParallelPipedHexaEL *self = (ParallelPipedHexaEL*)ppHexaEL;
 	IJK26Topology *topology = NULL;
 	BlockGeometry *geometry = NULL;
@@ -362,8 +362,8 @@
 
 	self->dictionary = cf->rootDict;
 	
-	topology =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name, Topology_Type, IJK26Topology,  True  ) ;
-	geometry =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name, Geometry_Type, BlockGeometry,  True  ) ;
+	topology =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name, Topology_Type, IJK26Topology,  True, data  ) ;
+	geometry =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name, Geometry_Type, BlockGeometry,  True, data  ) ;
 
 	dim = Dictionary_GetUnsignedInt( self->dictionary, "dim" );
 	

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/ParallelPipedHexaEL.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/ParallelPipedHexaEL.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/ParallelPipedHexaEL.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -139,7 +139,7 @@
 	
 	void* _ParallelPipedHexaEL_Copy( void* ppHexaEL, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 	
-	void _ParallelPipedHexaEL_Construct( void* ppHexaEL, Stg_ComponentFactory* cf );
+	void _ParallelPipedHexaEL_Construct( void* ppHexaEL, Stg_ComponentFactory* cf, void* data );
 	
 	void _ParallelPipedHexaEL_Stg_ComponentBuild( void* ppHexaEL, void* data );
 	

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/SurfaceAdaptor.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/SurfaceAdaptor.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/SurfaceAdaptor.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -151,7 +151,7 @@
 	return NULL;
 }
 
-void _SurfaceAdaptor_Construct( void* adaptor, Stg_ComponentFactory* cf ) {
+void _SurfaceAdaptor_Construct( void* adaptor, Stg_ComponentFactory* cf, void* data ) {
 	SurfaceAdaptor*	self = (SurfaceAdaptor*)adaptor;
 	Dictionary*		dict;
 
@@ -159,7 +159,7 @@
 	assert( cf );
 
 	/* Call parent construct. */
-	_MeshAdaptor_Construct( self, cf );
+	_MeshAdaptor_Construct( self, cf, data );
 
 	/* Read the parameters. */
 	self->offs = Stg_ComponentFactory_GetDouble( cf, self->name, "offset", 0.0 );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/SurfaceAdaptor.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/SurfaceAdaptor.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Mesh/src/SurfaceAdaptor.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -86,7 +86,7 @@
 		(Mesh*)Stg_Class_Copy( self, NULL, True, NULL, NULL )
 	void* _SurfaceAdaptor_Copy( void* adaptor, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 
-	void _SurfaceAdaptor_Construct( void* adaptor, Stg_ComponentFactory* cf );
+	void _SurfaceAdaptor_Construct( void* adaptor, Stg_ComponentFactory* cf, void* data );
 	void _SurfaceAdaptor_Build( void* adaptor, void* data );
 	void _SurfaceAdaptor_Initialise( void* adaptor, void* data );
 	void _SurfaceAdaptor_Execute( void* adaptor, void* data );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/BelowCosinePlane.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/BelowCosinePlane.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/BelowCosinePlane.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -206,13 +206,13 @@
 }
 
 
-void _BelowCosinePlane_Construct( void* belowPlane, Stg_ComponentFactory* cf ) {
-	BelowCosinePlane*	             self          = (BelowCosinePlane*) belowPlane;
+void _BelowCosinePlane_Construct( void* belowPlane, Stg_ComponentFactory* cf, void* data ) {
+	BelowCosinePlane*            self          = (BelowCosinePlane*) belowPlane;
 	double                       delta;
 	double                       period;
 	double                       phase;
 
-	_BelowPlane_Construct( self, cf );
+	_BelowPlane_Construct( self, cf, data );
 
 	delta = Stg_ComponentFactory_GetDouble( cf, self->name, "delta", 0.5 );
 	period = Stg_ComponentFactory_GetDouble( cf, self->name, "period", 1.0 );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/BelowCosinePlane.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/BelowCosinePlane.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/BelowCosinePlane.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -99,7 +99,7 @@
 	void* _BelowCosinePlane_Copy( void* belowPlane, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 	
 	void* _BelowCosinePlane_DefaultNew( Name name ) ;
-	void _BelowCosinePlane_Construct( void* shape, Stg_ComponentFactory* cf ) ;
+	void _BelowCosinePlane_Construct( void* shape, Stg_ComponentFactory* cf, void* data ) ;
 	void _BelowCosinePlane_Build( void* belowPlane, void* data ) ;
 	void _BelowCosinePlane_Initialise( void* belowPlane, void* data ) ;
 	void _BelowCosinePlane_Execute( void* belowPlane, void* data );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/BelowPlane.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/BelowPlane.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/BelowPlane.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -192,7 +192,7 @@
 }
 
 
-void _BelowPlane_Construct( void* belowPlane, Stg_ComponentFactory* cf ) {
+void _BelowPlane_Construct( void* belowPlane, Stg_ComponentFactory* cf, void* data ) {
 	BelowPlane*	             self          = (BelowPlane*) belowPlane;
 	double                       offset;
 	XYZ                          minValue;

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/BelowPlane.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/BelowPlane.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/BelowPlane.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -94,7 +94,7 @@
 	void* _BelowPlane_Copy( void* belowPlane, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 	
 	void* _BelowPlane_DefaultNew( Name name ) ;
-	void _BelowPlane_Construct( void* shape, Stg_ComponentFactory* cf ) ;
+	void _BelowPlane_Construct( void* shape, Stg_ComponentFactory* cf, void* data ) ;
 	void _BelowPlane_Build( void* belowPlane, void* data ) ;
 	void _BelowPlane_Initialise( void* belowPlane, void* data ) ;
 	void _BelowPlane_Execute( void* belowPlane, void* data );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Box.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Box.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Box.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -187,7 +187,7 @@
 }
 
 
-void _Box_Construct( void* box, Stg_ComponentFactory* cf ) {
+void _Box_Construct( void* box, Stg_ComponentFactory* cf, void* data ) {
 	Box*	             self          = (Box*) box;
 	Dictionary*          dictionary    = Dictionary_GetDictionary( cf->componentDict, self->name );
 	XYZ                  width;

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Box.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Box.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Box.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -92,7 +92,7 @@
 	void* _Box_Copy( void* box, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 	
 	void* _Box_DefaultNew( Name name ) ;
-	void _Box_Construct( void* shape, Stg_ComponentFactory* cf ) ;
+	void _Box_Construct( void* shape, Stg_ComponentFactory* cf, void* data ) ;
 	void _Box_Build( void* box, void* data ) ;
 	void _Box_Initialise( void* box, void* data ) ;
 	void _Box_Execute( void* box, void* data );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/ConvexHull.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/ConvexHull.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/ConvexHull.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -257,8 +257,8 @@
 }
 
 
-void _ConvexHull_Construct( void* convexHull, Stg_ComponentFactory* cf ) {
-	ConvexHull*	            self       = (ConvexHull*)convexHull;
+void _ConvexHull_Construct( void* convexHull, Stg_ComponentFactory* cf, void* data ) {
+	ConvexHull*             self       = (ConvexHull*)convexHull;
 	Index                   vertexCount;
 	Index                   vertex_I;
 	Coord_List              vertexList;

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/ConvexHull.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/ConvexHull.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/ConvexHull.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -105,7 +105,7 @@
 	void* _ConvexHull_Copy( void* convexHull, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 	
 	void* _ConvexHull_DefaultNew( Name name ) ;
-	void _ConvexHull_Construct( void* shape, Stg_ComponentFactory* cf ) ;
+	void _ConvexHull_Construct( void* shape, Stg_ComponentFactory* cf, void* data ) ;
 	void _ConvexHull_Build( void* convexHull, void* data ) ;
 	void _ConvexHull_Initialise( void* convexHull, void* data ) ;
 	void _ConvexHull_Execute( void* convexHull, void* data );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Cylinder.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Cylinder.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Cylinder.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -201,8 +201,8 @@
 
 #define BIG 1.0e99
 
-void _Cylinder_Construct( void* cylinder, Stg_ComponentFactory* cf ) {
-	Cylinder*	         self                     = (Cylinder*) cylinder;
+void _Cylinder_Construct( void* cylinder, Stg_ComponentFactory* cf, void* data ) {
+	Cylinder*            self                     = (Cylinder*) cylinder;
 	XYZ                  start                    = { -BIG, -BIG, -BIG }; 
 	XYZ                  end                      = {  BIG,  BIG,  BIG };
 	double               radius                   = 0.0;

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Cylinder.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Cylinder.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Cylinder.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -109,7 +109,7 @@
 	void* _Cylinder_Copy( void* cylinder, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 	
 	void* _Cylinder_DefaultNew( Name name ) ;
-	void _Cylinder_Construct( void* shape, Stg_ComponentFactory* cf ) ;
+	void _Cylinder_Construct( void* shape, Stg_ComponentFactory* cf, void* data ) ;
 	void _Cylinder_Build( void* cylinder, void* data ) ;
 	void _Cylinder_Initialise( void* cylinder, void* data ) ;
 	void _Cylinder_Execute( void* cylinder, void* data );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Everywhere.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Everywhere.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Everywhere.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -173,7 +173,7 @@
 }
 
 
-void _Everywhere_Construct( void* everywhere, Stg_ComponentFactory* cf ) {
+void _Everywhere_Construct( void* everywhere, Stg_ComponentFactory* cf, void* data ) {
 	Everywhere*	self          = (Everywhere*) everywhere;
 
 	_Stg_Shape_Construct( self, cf );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Everywhere.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Everywhere.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Everywhere.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -94,7 +94,7 @@
 	void* _Everywhere_Copy( void* everywhere, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 	
 	void* _Everywhere_DefaultNew( Name name ) ;
-	void _Everywhere_Construct( void* shape, Stg_ComponentFactory* cf ) ;
+	void _Everywhere_Construct( void* shape, Stg_ComponentFactory* cf, void* data ) ;
 	void _Everywhere_Build( void* everywhere, void* data ) ;
 	void _Everywhere_Initialise( void* everywhere, void* data ) ;
 	void _Everywhere_Execute( void* everywhere, void* data );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Intersection.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Intersection.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Intersection.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -211,7 +211,7 @@
 }
 
 
-void _Intersection_Construct( void* intersection, Stg_ComponentFactory* cf ) {
+void _Intersection_Construct( void* intersection, Stg_ComponentFactory* cf, void* data ) {
 	Intersection*	        self       = (Intersection*)intersection;
 	Index                   shapeCount;
 	Stg_Shape**             shapeList;
@@ -250,11 +250,11 @@
 		nameShape = Dictionary_Entry_Value_AsString( Dictionary_Entry_Value_GetElement( optionsList, shape_I));
 
 		if ( nameShape[0] == '!' ) {
-			shapeList[ shape_I ] =  Stg_ComponentFactory_ConstructByName(  cf,  &nameShape[1], Stg_Shape,  True  ) ;
+			shapeList[ shape_I ] =  Stg_ComponentFactory_ConstructByName( cf, &nameShape[1], Stg_Shape, True, data ) ;
 			isComplement[ shape_I ] = True;
 		}
 		else {
-			shapeList[ shape_I ] =  Stg_ComponentFactory_ConstructByName(  cf,  nameShape, Stg_Shape,  True  ) ;
+			shapeList[ shape_I ] =  Stg_ComponentFactory_ConstructByName( cf, nameShape, Stg_Shape, True, data ) ;
 			isComplement[ shape_I ] = False;
 		}
 		

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Intersection.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Intersection.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Intersection.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -108,7 +108,7 @@
 	void* _Intersection_Copy( void* intersection, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 	
 	void* _Intersection_DefaultNew( Name name ) ;
-	void _Intersection_Construct( void* shape, Stg_ComponentFactory* cf ) ;
+	void _Intersection_Construct( void* shape, Stg_ComponentFactory* cf, void* data ) ;
 	void _Intersection_Build( void* intersection, void* data ) ;
 	void _Intersection_Initialise( void* intersection, void* data ) ;
 	void _Intersection_Execute( void* intersection, void* data );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/PolygonShape.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/PolygonShape.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/PolygonShape.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -209,8 +209,8 @@
 }
 
 
-void _PolygonShape_Construct( void* polygon, Stg_ComponentFactory* cf ) {
-	PolygonShape*	            self       = (PolygonShape*)polygon;
+void _PolygonShape_Construct( void* polygon, Stg_ComponentFactory* cf, void* data ) {
+	PolygonShape*           self       = (PolygonShape*)polygon;
 	Index                   vertexCount;
 	Index                   vertex_I;
 	Coord_List              vertexList;

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/PolygonShape.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/PolygonShape.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/PolygonShape.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -111,7 +111,7 @@
 	void* _PolygonShape_Copy( void* polygon, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 	
 	void* _PolygonShape_DefaultNew( Name name ) ;
-	void _PolygonShape_Construct( void* shape, Stg_ComponentFactory* cf ) ;
+	void _PolygonShape_Construct( void* shape, Stg_ComponentFactory* cf, void* data ) ;
 	void _PolygonShape_Build( void* polygon, void* data ) ;
 	void _PolygonShape_Initialise( void* polygon, void* data ) ;
 	void _PolygonShape_Execute( void* polygon, void* data );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Sphere.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Sphere.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Sphere.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -188,7 +188,7 @@
 }
 
 
-void _Sphere_Construct( void* sphere, Stg_ComponentFactory* cf ) {
+void _Sphere_Construct( void* sphere, Stg_ComponentFactory* cf, void* data ) {
 	Sphere*	self      = (Sphere*) sphere;
 	double             radius;
 

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Sphere.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Sphere.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Sphere.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -102,7 +102,7 @@
 	void* _Sphere_Copy( void* sphere, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 	
 	void* _Sphere_DefaultNew( Name name ) ;
-	void _Sphere_Construct( void* shape, Stg_ComponentFactory* cf ) ;
+	void _Sphere_Construct( void* shape, Stg_ComponentFactory* cf, void* data ) ;
 	void _Sphere_Build( void* sphere, void* data ) ;
 	void _Sphere_Initialise( void* sphere, void* data ) ;
 	void _Sphere_Execute( void* sphere, void* data );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Superellipsoid.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Superellipsoid.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Superellipsoid.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -200,7 +200,7 @@
 }
 
 
-void _Superellipsoid_Construct( void* superellipsoid, Stg_ComponentFactory* cf ) {
+void _Superellipsoid_Construct( void* superellipsoid, Stg_ComponentFactory* cf, void* data ) {
 	Superellipsoid*	self      = (Superellipsoid*) superellipsoid;
 	XYZ             radius;
 	double          epsilon1;

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Superellipsoid.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Superellipsoid.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Superellipsoid.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -107,7 +107,7 @@
 	void* _Superellipsoid_Copy( void* superellipsoid, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 	
 	void* _Superellipsoid_DefaultNew( Name name ) ;
-	void _Superellipsoid_Construct( void* shape, Stg_ComponentFactory* cf ) ;
+	void _Superellipsoid_Construct( void* shape, Stg_ComponentFactory* cf, void* data ) ;
 	void _Superellipsoid_Build( void* superellipsoid, void* data ) ;
 	void _Superellipsoid_Initialise( void* superellipsoid, void* data ) ;
 	void _Superellipsoid_Execute( void* superellipsoid, void* data );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Union.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Union.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Union.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -211,8 +211,8 @@
 }
 
 
-void _Union_Construct( void* combination, Stg_ComponentFactory* cf ) {
-	Union*	        self       = (Union*)combination;
+void _Union_Construct( void* combination, Stg_ComponentFactory* cf, void* data ) {
+	Union*                  self       = (Union*)combination;
 	Index                   shapeCount;
 	Stg_Shape**             shapeList;
 	Bool*                   isComplement;
@@ -250,11 +250,11 @@
 		nameShape = Dictionary_Entry_Value_AsString( Dictionary_Entry_Value_GetElement( optionsList, shape_I));
 
 		if ( nameShape[0] == '!' ) {
-			shapeList[ shape_I ] =  Stg_ComponentFactory_ConstructByName(  cf,  &nameShape[1], Stg_Shape,  True  ) ;
+			shapeList[ shape_I ] =  Stg_ComponentFactory_ConstructByName( cf, &nameShape[1], Stg_Shape, True, data ) ;
 			isComplement[ shape_I ] = True;
 		}
 		else {
-			shapeList[ shape_I ] =  Stg_ComponentFactory_ConstructByName(  cf,  nameShape, Stg_Shape,  True  ) ;
+			shapeList[ shape_I ] =  Stg_ComponentFactory_ConstructByName( cf, nameShape, Stg_Shape, True, data ) ;
 			isComplement[ shape_I ] = False;
 		}
 		

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Union.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Union.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/src/Union.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -108,7 +108,7 @@
 	void* _Union_Copy( void* combination, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 	
 	void* _Union_DefaultNew( Name name ) ;
-	void _Union_Construct( void* shape, Stg_ComponentFactory* cf ) ;
+	void _Union_Construct( void* shape, Stg_ComponentFactory* cf, void* data ) ;
 	void _Union_Build( void* combination, void* data ) ;
 	void _Union_Initialise( void* combination, void* data ) ;
 	void _Union_Execute( void* combination, void* data );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/tests/testShape.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/tests/testShape.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Shape/tests/testShape.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -45,7 +45,7 @@
 	assert( componentDict );
 	cf = Stg_ComponentFactory_New( dictionary, componentDict, Stg_ObjectList_New() );
 	Stg_ComponentFactory_CreateComponents( cf );
-	Stg_ComponentFactory_ConstructComponents( cf );
+	Stg_ComponentFactory_ConstructComponents( cf, 0 /* dummy */ );
 
 	if( argc >= 2 ) {
 		procToWatch = atoi( argv[1] );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/ElementCellLayout.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/ElementCellLayout.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/ElementCellLayout.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -253,11 +253,11 @@
 	return (void*)newElementCellLayout;
 }
 
-void _ElementCellLayout_Construct( void* elementCellLayout, Stg_ComponentFactory *cf ){
+void _ElementCellLayout_Construct( void* elementCellLayout, Stg_ComponentFactory *cf, void* data ){
 	ElementCellLayout* self = (ElementCellLayout*)elementCellLayout;
 	Mesh*              mesh;
 
-	mesh =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  "Mesh", Mesh,  True  ) ;
+	mesh =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  "Mesh", Mesh,  True, data ) ;
 	
 	_CellLayout_Init( (CellLayout*)self );
 	_ElementCellLayout_Init(self, mesh);

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/ElementCellLayout.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/ElementCellLayout.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/ElementCellLayout.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -116,7 +116,7 @@
 	
 	void* _ElementCellLayout_Copy( void* elementCellLayout, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 
-	void _ElementCellLayout_Construct( void *elementCellLayout, Stg_ComponentFactory *cf );
+	void _ElementCellLayout_Construct( void *elementCellLayout, Stg_ComponentFactory *cf, void* data );
 	
 	void _ElementCellLayout_Build( void *elementCellLayout, void *data );
 	

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/FileParticleLayout.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/FileParticleLayout.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/FileParticleLayout.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -185,7 +185,7 @@
 			NULL /* filename */ );
 }
 
-void _FileParticleLayout_Construct( void* particleLayout, Stg_ComponentFactory *cf ) {
+void _FileParticleLayout_Construct( void* particleLayout, Stg_ComponentFactory *cf, void* data ) {
 	FileParticleLayout* self     = (FileParticleLayout*) particleLayout;
 	Name                filename;
 

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/FileParticleLayout.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/FileParticleLayout.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/FileParticleLayout.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -91,7 +91,7 @@
 	
 	/* 'Stg_Component' Stuff */
 	void* _FileParticleLayout_DefaultNew( Name name ) ;
-	void _FileParticleLayout_Construct( void* particleLayout, Stg_ComponentFactory *cf );
+	void _FileParticleLayout_Construct( void* particleLayout, Stg_ComponentFactory *cf, void* data );
 	void _FileParticleLayout_Build( void* particleLayout, void* data );
 	void _FileParticleLayout_Initialise( void* particleLayout, void* data );
 	void _FileParticleLayout_Execute( void* particleLayout, void* data );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/GaussParticleLayout.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/GaussParticleLayout.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/GaussParticleLayout.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -184,7 +184,7 @@
 			NULL    /* particlesPerDim */ );
 }
 
-void _GaussParticleLayout_Construct( void* gaussParticleLayout, Stg_ComponentFactory* cf ) {
+void _GaussParticleLayout_Construct( void* gaussParticleLayout, Stg_ComponentFactory* cf, void* data ) {
 	GaussParticleLayout*   self = (GaussParticleLayout*)gaussParticleLayout;
 	Particle_InCellIndex   particlesPerDim[3];
 	Particle_InCellIndex   defaultVal;

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/GaussParticleLayout.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/GaussParticleLayout.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/GaussParticleLayout.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -97,7 +97,7 @@
 	void* _GaussParticleLayout_Copy( void* gaussParticleLayout, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 	
 	void* _GaussParticleLayout_DefaultNew( Name name );
-	void  _GaussParticleLayout_Construct( void* gaussParticleLayout, Stg_ComponentFactory* cf );
+	void  _GaussParticleLayout_Construct( void* gaussParticleLayout, Stg_ComponentFactory* cf, void* data );
 	void  _GaussParticleLayout_Build( void* gaussParticleLayout, void* data );
 	void  _GaussParticleLayout_Initialise( void* gaussParticleLayout, void* data );
 	void  _GaussParticleLayout_Execute( void* gaussParticleLayout, void* data );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/LineParticleLayout.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/LineParticleLayout.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/LineParticleLayout.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -209,7 +209,7 @@
 }
 
 
-void _LineParticleLayout_Construct( void* particleLayout, Stg_ComponentFactory *cf ){
+void _LineParticleLayout_Construct( void* particleLayout, Stg_ComponentFactory *cf, void* data ){
 	LineParticleLayout*     self                    = (LineParticleLayout*) particleLayout;
 	Particle_Index          totalInitialParticles;
 	Dimension_Index         dim;

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/LineParticleLayout.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/LineParticleLayout.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/LineParticleLayout.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -102,7 +102,7 @@
 	
 	/* 'Stg_Component' Stuff */
 	void* _LineParticleLayout_DefaultNew( Name name ) ;
-	void _LineParticleLayout_Construct( void* particleLayout, Stg_ComponentFactory *cf );
+	void _LineParticleLayout_Construct( void* particleLayout, Stg_ComponentFactory *cf, void* data );
 	void _LineParticleLayout_Build( void* particleLayout, void* data );
 	void _LineParticleLayout_Initialise( void* particleLayout, void* data );
 	void _LineParticleLayout_Execute( void* particleLayout, void* data );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/ManualParticleLayout.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/ManualParticleLayout.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/ManualParticleLayout.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -181,7 +181,7 @@
 			NULL /* dictionary */ );
 }
 
-void _ManualParticleLayout_Construct( void* manualParticleLayout, Stg_ComponentFactory *cf ) {
+void _ManualParticleLayout_Construct( void* manualParticleLayout, Stg_ComponentFactory *cf, void* data ) {
 	ManualParticleLayout*      self       = (ManualParticleLayout*) manualParticleLayout;
 	Dictionary*                dictionary;
 	

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/ManualParticleLayout.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/ManualParticleLayout.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/ManualParticleLayout.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -91,7 +91,7 @@
 	
 	/* 'Stg_Component' Stuff */
 	void* _ManualParticleLayout_DefaultNew( Name name ) ;
-	void _ManualParticleLayout_Construct( void* manualParticleLayout, Stg_ComponentFactory *cf );
+	void _ManualParticleLayout_Construct( void* manualParticleLayout, Stg_ComponentFactory *cf, void* data );
 	void _ManualParticleLayout_Build( void* manualParticleLayout, void* data );
 	void _ManualParticleLayout_Initialise( void* manualParticleLayout, void* data );
 	void _ManualParticleLayout_Execute( void* manualParticleLayout, void* data );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/OperatorSwarmVariable.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/OperatorSwarmVariable.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/OperatorSwarmVariable.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -247,7 +247,7 @@
 	return (void*)newOperatorSwarmVariable;
 }
 
-void _OperatorSwarmVariable_Construct( void* swarmVariable, Stg_ComponentFactory* cf ) {
+void _OperatorSwarmVariable_Construct( void* swarmVariable, Stg_ComponentFactory* cf, void* data ) {
 	OperatorSwarmVariable*  self       = (OperatorSwarmVariable*) swarmVariable;
 	Dictionary*             dictionary = Dictionary_GetDictionary( cf->componentDict, self->name );
 	Dictionary_Entry_Value* list;
@@ -259,7 +259,7 @@
 	SwarmVariable_Register* swarmVariable_Register;
 
 	/* Call parent's construct function */
-	_SwarmVariable_Construct( self, cf );
+	_SwarmVariable_Construct( self, cf, data );
 	swarmVariable_Register = self->swarm->swarmVariable_Register;
 
 	operatorName = Stg_ComponentFactory_GetString( cf, self->name, "Operator", "" );
@@ -282,10 +282,10 @@
 		
 		if ( !swarmVariableList[swarmVariable_I] )
 			swarmVariableList[swarmVariable_I] = 
-				Stg_ComponentFactory_ConstructByName( cf, swarmVariableName, SwarmVariable, True );
+				Stg_ComponentFactory_ConstructByName( cf, swarmVariableName, SwarmVariable, True, data );
 	}
 
-	_SwarmVariable_Construct( self, cf );
+	_SwarmVariable_Construct( self, cf, data );
 	_OperatorSwarmVariable_Init( self, operatorName, swarmVariableCount, swarmVariableList );
 
 	Memory_Free( swarmVariableList );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/OperatorSwarmVariable.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/OperatorSwarmVariable.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/OperatorSwarmVariable.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -124,7 +124,7 @@
 
 
 	void* _OperatorSwarmVariable_Copy( void* swarmVariable, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap ) ;
-	void _OperatorSwarmVariable_Construct( void* swarmVariable, Stg_ComponentFactory* cf ) ;
+	void _OperatorSwarmVariable_Construct( void* swarmVariable, Stg_ComponentFactory* cf, void* data ) ;
 	void _OperatorSwarmVariable_Build( void* swarmVariable, void* data ) ;
 	void _OperatorSwarmVariable_Execute( void* variable, void* data ) ;
 	void _OperatorSwarmVariable_Destroy( void* variable, void* data ) ;

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/ParticleCommHandler.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/ParticleCommHandler.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/ParticleCommHandler.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -363,7 +363,7 @@
 	return (void*)newParticleCommHandler;
 }
 
-void _ParticleCommHandler_Construct( void* pCommsHandler, Stg_ComponentFactory* cf ){
+void _ParticleCommHandler_Construct( void* pCommsHandler, Stg_ComponentFactory* cf, void* data ){
 	
 }
 	

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/ParticleCommHandler.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/ParticleCommHandler.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/ParticleCommHandler.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -117,7 +117,7 @@
 	/** Stg_Class_Print() implementation */
 	void _ParticleCommHandler_Print( void* pCommsHandler, Stream* stream );
 	
-	void _ParticleCommHandler_Construct( void* pCommsHandler, Stg_ComponentFactory* cf );
+	void _ParticleCommHandler_Construct( void* pCommsHandler, Stg_ComponentFactory* cf, void* data );
 	
 	void _ParticleCommHandler_Build( void* pCommsHandler, void *data );
 	

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/PlaneParticleLayout.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/PlaneParticleLayout.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/PlaneParticleLayout.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -207,13 +207,13 @@
 }
 
 
-void _PlaneParticleLayout_Construct( void* particleLayout, Stg_ComponentFactory *cf ){
+void _PlaneParticleLayout_Construct( void* particleLayout, Stg_ComponentFactory *cf, void* data ){
 	PlaneParticleLayout* self = (PlaneParticleLayout*) particleLayout;
 	Axis   planeAxis;
 	double planeCoord;
 	char*  planeAxisString;
 	
-	_SpaceFillerParticleLayout_Construct( self, cf );
+	_SpaceFillerParticleLayout_Construct( self, cf, data );
 
 	planeAxisString = Stg_ComponentFactory_GetString( cf, self->name, "planeAxis", "" );
 	planeCoord = Stg_ComponentFactory_GetDouble( cf, self->name, "planeCoord", 0.0 );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/PlaneParticleLayout.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/PlaneParticleLayout.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/PlaneParticleLayout.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -109,7 +109,7 @@
 	
 	/* 'Stg_Component' Stuff */
 	void* _PlaneParticleLayout_DefaultNew( Name name ) ;
-	void _PlaneParticleLayout_Construct( void* particleLayout, Stg_ComponentFactory *cf );
+	void _PlaneParticleLayout_Construct( void* particleLayout, Stg_ComponentFactory *cf, void* data );
 	void _PlaneParticleLayout_Build( void* particleLayout, void* data );
 	void _PlaneParticleLayout_Initialise( void* particleLayout, void* data );
 	void _PlaneParticleLayout_Execute( void* particleLayout, void* data );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/RandomParticleLayout.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/RandomParticleLayout.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/RandomParticleLayout.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -189,7 +189,7 @@
 			0  /* seed */ );
 }
 
-void _RandomParticleLayout_Construct( void* randomParticleLayout, Stg_ComponentFactory* cf ) {
+void _RandomParticleLayout_Construct( void* randomParticleLayout, Stg_ComponentFactory* cf, void* data ) {
 	RandomParticleLayout*       self = (RandomParticleLayout*)randomParticleLayout;
 	Particle_InCellIndex        cellParticleCount;
 	unsigned int                seed;

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/RandomParticleLayout.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/RandomParticleLayout.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/RandomParticleLayout.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -96,7 +96,7 @@
 	
 	/* 'Stg_Component' Stuff */
 	void* _RandomParticleLayout_DefaultNew( Name name ) ;
-	void _RandomParticleLayout_Construct( void* randomParticleLayout, Stg_ComponentFactory* cf );
+	void _RandomParticleLayout_Construct( void* randomParticleLayout, Stg_ComponentFactory* cf, void* data );
 	void _RandomParticleLayout_Build( void* randomParticleLayout, void* data );
 	void _RandomParticleLayout_Initialise( void* randomParticleLayout, void* data );
 	void _RandomParticleLayout_Execute( void* randomParticleLayout, void* data );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/SingleCellLayout.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/SingleCellLayout.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/SingleCellLayout.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -269,7 +269,7 @@
 			NULL);
 }
 
-void _SingleCellLayout_Construct( void* singleCellLayout, Stg_ComponentFactory* cf ){
+void _SingleCellLayout_Construct( void* singleCellLayout, Stg_ComponentFactory* cf, void* data ){
 	SingleCellLayout* self              = (SingleCellLayout*)singleCellLayout;
 	Bool              dimExists[]       = { False, False, False };
 	Dimension_Index   dim;

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/SingleCellLayout.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/SingleCellLayout.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/SingleCellLayout.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -107,7 +107,7 @@
 	
 	/* 'Stg_Component' Class Info */
 	void* _SingleCellLayout_DefaultNew( Name name );
-	void _SingleCellLayout_Construct( void* singleCellLayout, Stg_ComponentFactory* cf );
+	void _SingleCellLayout_Construct( void* singleCellLayout, Stg_ComponentFactory* cf, void* data );
 	void _SingleCellLayout_Build( void* singleCellLayout, void* data );
 	void _SingleCellLayout_Initialise( void* singleCellLayout, void* data );
 	void _SingleCellLayout_Execute( void* singleCellLayout, void* data );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/SpaceFillerParticleLayout.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/SpaceFillerParticleLayout.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/SpaceFillerParticleLayout.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -215,7 +215,7 @@
 }
 
 
-void _SpaceFillerParticleLayout_Construct( void* spaceFillerParticleLayout, Stg_ComponentFactory *cf ) {
+void _SpaceFillerParticleLayout_Construct( void* spaceFillerParticleLayout, Stg_ComponentFactory *cf, void* data ) {
 	SpaceFillerParticleLayout* self = (SpaceFillerParticleLayout*) spaceFillerParticleLayout;
 	Dimension_Index            dim;
 	Particle_Index             totalInitialParticles;

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/SpaceFillerParticleLayout.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/SpaceFillerParticleLayout.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/SpaceFillerParticleLayout.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -103,7 +103,7 @@
 	
 	/* 'Stg_Component' Stuff */
 	void* _SpaceFillerParticleLayout_DefaultNew( Name name ) ;
-	void _SpaceFillerParticleLayout_Construct( void* spaceFillerParticleLayout, Stg_ComponentFactory *cf );
+	void _SpaceFillerParticleLayout_Construct( void* spaceFillerParticleLayout, Stg_ComponentFactory *cf, void* data );
 	void _SpaceFillerParticleLayout_Build( void* spaceFillerParticleLayout, void* data );
 	void _SpaceFillerParticleLayout_Initialise( void* spaceFillerParticleLayout, void* data );
 	void _SpaceFillerParticleLayout_Execute( void* spaceFillerParticleLayout, void* data );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/SwarmClass.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/SwarmClass.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/SwarmClass.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -542,7 +542,7 @@
 			MPI_COMM_WORLD );
 }
 
-void _Swarm_Construct( void* swarm, Stg_ComponentFactory* cf ) {
+void _Swarm_Construct( void* swarm, Stg_ComponentFactory* cf, void* data ) {
 	Swarm*                  self                     = (Swarm*)swarm;
 	CellLayout*             cellLayout               = NULL;
 	ParticleLayout*         particleLayout           = NULL;
@@ -554,14 +554,14 @@
 	Variable_Register*      variable_Register        = NULL;
 	AbstractContext*        context = NULL;
 
-	context = Stg_ComponentFactory_ConstructByName( cf, "context", AbstractContext, True );
+	context = Stg_ComponentFactory_ConstructByName( cf, "context", AbstractContext, True, data );
 
 	dim = Stg_ComponentFactory_GetRootDictUnsignedInt( cf, "dim", 0 );
 	
 	particleType = Stg_ComponentFactory_GetString( cf, self->name, "ParticleType", IntegrationPoint_Type );
 	
-	cellLayout =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  CellLayout_Type, CellLayout,  True  ) ;
-	particleLayout =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  ParticleLayout_Type, ParticleLayout,  True  ) ;
+	cellLayout =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  CellLayout_Type, CellLayout,  True, data ) ;
+	particleLayout =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  ParticleLayout_Type, ParticleLayout, True, data );
 	
 	extensionManagerRegister = Stg_ObjectList_Get( cf->registerRegister, "ExtensionManager_Register" );
 	assert( extensionManagerRegister );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/SwarmClass.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/SwarmClass.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/SwarmClass.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -209,7 +209,7 @@
 	void* _Swarm_Copy( void* swarm, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 	
 	void* _Swarm_DefaultNew( Name name );
-	void _Swarm_Construct( void* swarm, Stg_ComponentFactory* cf );
+	void _Swarm_Construct( void* swarm, Stg_ComponentFactory* cf, void* data );
 	void _Swarm_Build( void* swarm, void* data );
 	#define _Swarm_Initialize _Swarm_Initialise
 	void _Swarm_Initialise( void* swarm, void* data );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/SwarmDump.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/SwarmDump.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/SwarmDump.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -181,15 +181,23 @@
 			_SwarmDump_Destroy, 
 			name );
 }
-void _SwarmDump_Construct( void* swarmDump, Stg_ComponentFactory* cf ) {
+void _SwarmDump_Construct( void* swarmDump, Stg_ComponentFactory* cf, void* data ) {
 	SwarmDump*	            self         = (SwarmDump*)swarmDump;
 	Swarm**                 swarmList;
 	AbstractContext*        context;
 	Bool                    newFileEachTime;
 	Index                   swarmCount;
 
-	context         = Stg_ComponentFactory_ConstructByName( cf, "context", AbstractContext, True ) ;
-	swarmList       = Stg_ComponentFactory_ConstructByList( cf, self->name, "Swarm", Stg_ComponentFactory_Unlimited, Swarm, True, &swarmCount ) ;
+	context = Stg_ComponentFactory_ConstructByName( cf, "context", AbstractContext, True, data ) ;
+	swarmList = Stg_ComponentFactory_ConstructByList( 
+		cf, 
+		self->name, 
+		"Swarm", 
+		Stg_ComponentFactory_Unlimited, 
+		Swarm, 
+		True, 
+		&swarmCount,
+		data ) ;
 	newFileEachTime = Stg_ComponentFactory_GetBool( cf, self->name, "newFileEachTime", True );
 
 	_SwarmDump_Init( 

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/SwarmDump.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/SwarmDump.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/SwarmDump.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -93,7 +93,7 @@
 		(SwarmDump*)Stg_Class_Copy( self, NULL, False, NULL, NULL )
 	
 	void* _SwarmDump_DefaultNew( Name name );
-	void _SwarmDump_Construct( void* swarmDump, Stg_ComponentFactory* cf ) ;
+	void _SwarmDump_Construct( void* swarmDump, Stg_ComponentFactory* cf, void* data ) ;
 	void _SwarmDump_Build( void* swarmDump, void* data ) ;
 	void _SwarmDump_Initialise( void* swarmDump, void* data ) ;
 	void _SwarmDump_Execute( void* swarmDump, void* data ) ;

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/SwarmOutput.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/SwarmOutput.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/SwarmOutput.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -206,14 +206,14 @@
 			_SwarmOutput_PrintData,
 			name );
 }
-void _SwarmOutput_Construct( void* swarmOutput, Stg_ComponentFactory* cf ) {
+void _SwarmOutput_Construct( void* swarmOutput, Stg_ComponentFactory* cf, void* data ) {
 	SwarmOutput*	        self         = (SwarmOutput*)swarmOutput;
 	Swarm*                  swarm;
 	AbstractContext*        context;
 	Name                    baseFilename;
 
-	swarm        =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  "Swarm", Swarm,     True  ) ;
-	context      =  Stg_ComponentFactory_ConstructByName(  cf,  "context", AbstractContext,  True  ) ;
+	swarm        =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  "Swarm", Swarm, True, data  ) ;
+	context      =  Stg_ComponentFactory_ConstructByName(  cf,  "context", AbstractContext,  True, data ) ;
 	baseFilename = Stg_ComponentFactory_GetString( cf, self->name, "baseFilename", self->name );
 
 	_SwarmOutput_Init( 

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/SwarmOutput.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/SwarmOutput.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/SwarmOutput.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -108,7 +108,7 @@
 		(SwarmOutput*)Stg_Class_Copy( self, NULL, False, NULL, NULL )
 	
 	void* _SwarmOutput_DefaultNew( Name name );
-	void _SwarmOutput_Construct( void* swarmOutput, Stg_ComponentFactory* cf ) ;
+	void _SwarmOutput_Construct( void* swarmOutput, Stg_ComponentFactory* cf, void* data ) ;
 	void _SwarmOutput_Build( void* swarmOutput, void* data ) ;
 	void _SwarmOutput_Initialise( void* swarmOutput, void* data ) ;
 	void _SwarmOutput_Execute( void* swarmOutput, void* data ) ;

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/SwarmVariable.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/SwarmVariable.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/SwarmVariable.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -200,14 +200,14 @@
 			name );
 }
 
-void _SwarmVariable_Construct( void* swarmVariable, Stg_ComponentFactory* cf ) {
+void _SwarmVariable_Construct( void* swarmVariable, Stg_ComponentFactory* cf, void* data ) {
 	SwarmVariable*	        self         = (SwarmVariable*)swarmVariable;
 	Swarm*                  swarm;
 	Variable*               variable;
 	Index                   dofCount;
 
-	swarm    =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  "Swarm", Swarm,     True  ) ;
-	variable =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  "Variable", Variable,  False  ) ;
+	swarm    =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  "Swarm", Swarm, True, data  ) ;
+	variable =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  "Variable", Variable,  False, data  ) ;
 	dofCount = Stg_ComponentFactory_GetUnsignedInt( cf, self->name, "dofCount", 0 );
 
 	_SwarmVariable_Init( self, swarm, variable, dofCount );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/SwarmVariable.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/SwarmVariable.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/SwarmVariable.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -100,7 +100,7 @@
 	
 	void _SwarmVariable_Delete( void* swarmVariable ) ;
 	void _SwarmVariable_Print( void* _swarmVariable, Stream* stream ) ;
-	void _SwarmVariable_Construct( void* swarmVariable, Stg_ComponentFactory* cf ) ;
+	void _SwarmVariable_Construct( void* swarmVariable, Stg_ComponentFactory* cf, void* data ) ;
 	void _SwarmVariable_Build( void* swarmVariable, void* data ) ;
 	void _SwarmVariable_Execute( void* swarmVariable, void* data ) ;
 	void _SwarmVariable_Destroy( void* swarmVariable, void* data ) ;

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/TriGaussParticleLayout.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/TriGaussParticleLayout.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/TriGaussParticleLayout.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -185,7 +185,7 @@
 			0 );
 }
 
-void _TriGaussParticleLayout_Construct( void* triGaussParticleLayout, Stg_ComponentFactory* cf ){
+void _TriGaussParticleLayout_Construct( void* triGaussParticleLayout, Stg_ComponentFactory* cf, void* data ){
 	TriGaussParticleLayout *self = (TriGaussParticleLayout*)triGaussParticleLayout;
 	unsigned int dim;
 	unsigned int particlesPerCell;

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/TriGaussParticleLayout.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/TriGaussParticleLayout.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/TriGaussParticleLayout.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -98,7 +98,7 @@
 	void* _TriGaussParticleLayout_Copy( void* triGaussParticleLayout, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 
 	void* _TriGaussParticleLayout_DefaultNew( Name name );
-	void  _TriGaussParticleLayout_Construct( void* triGaussParticleLayout, Stg_ComponentFactory* cf );
+	void  _TriGaussParticleLayout_Construct( void* triGaussParticleLayout, Stg_ComponentFactory* cf, void* data );
 	void  _TriGaussParticleLayout_Build( void* triGaussParticleLayout, void* data );
 	void  _TriGaussParticleLayout_Initialise( void* triGaussParticleLayout, void* data );
 	void  _TriGaussParticleLayout_Execute( void* triGaussParticleLayout, void* data );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/TriSingleCellLayout.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/TriSingleCellLayout.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/TriSingleCellLayout.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -217,7 +217,7 @@
 	return (void*)newTriSingleCellLayout;
 }
 	
-void _TriSingleCellLayout_Construct( void *triSingleCellLayout, Stg_ComponentFactory *cf ){
+void _TriSingleCellLayout_Construct( void *triSingleCellLayout, Stg_ComponentFactory *cf, void* data ){
 	TriSingleCellLayout *self = (TriSingleCellLayout*)triSingleCellLayout;
 	Dimension_Index dim = 0;
 

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/TriSingleCellLayout.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/TriSingleCellLayout.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/TriSingleCellLayout.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -113,7 +113,7 @@
 	
 	void* _TriSingleCellLayout_Copy( void* triSingleCellLayout, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 
-	void _TriSingleCellLayout_Construct( void *triSingleCellLayout, Stg_ComponentFactory *cf );
+	void _TriSingleCellLayout_Construct( void *triSingleCellLayout, Stg_ComponentFactory *cf, void* data );
 	
 	void _TriSingleCellLayout_Build( void* triSingleCellLayout, void* data );
 	

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/UnionParticleLayout.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/UnionParticleLayout.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/UnionParticleLayout.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -179,12 +179,20 @@
 }
 
 
-void _UnionParticleLayout_Construct( void* unionParticleLayout, Stg_ComponentFactory *cf ) {
+void _UnionParticleLayout_Construct( void* unionParticleLayout, Stg_ComponentFactory *cf, void* data ) {
 	UnionParticleLayout*   self = (UnionParticleLayout*) unionParticleLayout;
 	GlobalParticleLayout** particleLayoutList;
 	Index                  particleLayoutCount;
 
-	particleLayoutList = Stg_ComponentFactory_ConstructByList( cf, self->name, "ParticleLayoutList", Stg_ComponentFactory_Unlimited, GlobalParticleLayout, True, &particleLayoutCount );
+	particleLayoutList = Stg_ComponentFactory_ConstructByList( 
+		cf, 
+		self->name, 
+		"ParticleLayoutList", 
+		Stg_ComponentFactory_Unlimited, 
+		GlobalParticleLayout, 
+		True, 
+		&particleLayoutCount,
+		data );
 
 	_UnionParticleLayout_Init( self, particleLayoutList, particleLayoutCount );
 }

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/UnionParticleLayout.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/UnionParticleLayout.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/UnionParticleLayout.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -97,7 +97,7 @@
 	
 	/* 'Stg_Component' Stuff */
 	void* _UnionParticleLayout_DefaultNew( Name name ) ;
-	void _UnionParticleLayout_Construct( void* unionParticleLayout, Stg_ComponentFactory *cf );
+	void _UnionParticleLayout_Construct( void* unionParticleLayout, Stg_ComponentFactory *cf, void* data );
 	void _UnionParticleLayout_Build( void* unionParticleLayout, void* data );
 	void _UnionParticleLayout_Initialise( void* unionParticleLayout, void* data );
 	void _UnionParticleLayout_Execute( void* unionParticleLayout, void* data );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/WithinShapeParticleLayout.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/WithinShapeParticleLayout.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/WithinShapeParticleLayout.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -201,13 +201,13 @@
 			NULL /* shape */ );
 }
 
-void _WithinShapeParticleLayout_Construct( void* withinShapeParticleLayout, Stg_ComponentFactory *cf ) {
+void _WithinShapeParticleLayout_Construct( void* withinShapeParticleLayout, Stg_ComponentFactory *cf, void* data ) {
 	WithinShapeParticleLayout* self = (WithinShapeParticleLayout*) withinShapeParticleLayout;
 	Stg_Shape*      shape;
 	
-	_SpaceFillerParticleLayout_Construct( self, cf );
+	_SpaceFillerParticleLayout_Construct( self, cf, data );
 
-	shape = Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  "shape", Stg_Shape,  True  ) ;
+	shape = Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  "shape", Stg_Shape,  True, data ) ;
 
 	_WithinShapeParticleLayout_Init( 
 			self, 

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/WithinShapeParticleLayout.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/WithinShapeParticleLayout.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/src/WithinShapeParticleLayout.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -106,7 +106,7 @@
 	
 	/* 'Stg_Component' Stuff */
 	void* _WithinShapeParticleLayout_DefaultNew( Name name ) ;
-	void _WithinShapeParticleLayout_Construct( void* withinShapeParticleLayout, Stg_ComponentFactory *cf );
+	void _WithinShapeParticleLayout_Construct( void* withinShapeParticleLayout, Stg_ComponentFactory *cf, void* data );
 	void _WithinShapeParticleLayout_Build( void* withinShapeParticleLayout, void* data );
 	void _WithinShapeParticleLayout_Initialise( void* withinShapeParticleLayout, void* data );
 	void _WithinShapeParticleLayout_Execute( void* withinShapeParticleLayout, void* data );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/tests/Bouncer/Bouncer.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/tests/Bouncer/Bouncer.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/tests/Bouncer/Bouncer.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -93,10 +93,10 @@
 }
 
 
-void _StGermain_Bouncer_Construct( void* component, Stg_ComponentFactory* cf ) {
+void _StGermain_Bouncer_Construct( void* component, Stg_ComponentFactory* cf, void* data ) {
 	DiscretisationContext*   context;
 
-	context = Stg_ComponentFactory_ConstructByName( cf, "context", DiscretisationContext, True );
+	context = Stg_ComponentFactory_ConstructByName( cf, "context", DiscretisationContext, True, data );
 	
 	ContextEP_ReplaceAll( context, AbstractContext_EP_Solve, StGermain_Bouncer_UpdatePositions );
 }

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/tests/SingleAttractor/SingleAttractor.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/tests/SingleAttractor/SingleAttractor.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/tests/SingleAttractor/SingleAttractor.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -92,10 +92,10 @@
 }
 
 
-void _StGermain_SingleAttractor_Construct( void* component, Stg_ComponentFactory* cf ) {
+void _StGermain_SingleAttractor_Construct( void* component, Stg_ComponentFactory* cf, void* data ) {
 	DiscretisationContext*   context;
 
-	context = Stg_ComponentFactory_ConstructByName( cf, "context", DiscretisationContext, True );
+	context = Stg_ComponentFactory_ConstructByName( cf, "context", DiscretisationContext, True, data );
 	Stream_SetPrintingRank( 
 		Journal_Register( Info_Type, "Context" ),
 		Dictionary_GetUnsignedInt_WithDefault( context->dictionary, "procToWatch", 0 ) );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/tests/Spinner/Spinner.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/tests/Spinner/Spinner.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/tests/Spinner/Spinner.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -92,10 +92,10 @@
 }
 
 
-void _StGermain_Spinner_Construct( void* component, Stg_ComponentFactory* cf ) {
+void _StGermain_Spinner_Construct( void* component, Stg_ComponentFactory* cf, void* data ) {
 	DiscretisationContext*   context;
 
-	context = Stg_ComponentFactory_ConstructByName( cf, "context", DiscretisationContext, True );
+	context = Stg_ComponentFactory_ConstructByName( cf, "context", DiscretisationContext, True, data );
 	
 	ContextEP_ReplaceAll( context, AbstractContext_EP_Solve, StGermain_Spinner_UpdatePositions );
 }

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/tests/VaryingCornerAttractors/VaryingCornerAttractors.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/tests/VaryingCornerAttractors/VaryingCornerAttractors.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/tests/VaryingCornerAttractors/VaryingCornerAttractors.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -134,10 +134,10 @@
 }
 
 
-void _StGermain_VaryingCornerAttractors_Construct( void* component, Stg_ComponentFactory* cf ) {
+void _StGermain_VaryingCornerAttractors_Construct( void* component, Stg_ComponentFactory* cf, void* data ) {
 	DiscretisationContext*   context;
 
-	context = Stg_ComponentFactory_ConstructByName( cf, "context", DiscretisationContext, True );
+	context = Stg_ComponentFactory_ConstructByName( cf, "context", DiscretisationContext, True, data );
 	
 	ContextEP_ReplaceAll( context, AbstractContext_EP_Solve, StGermain_VaryingCornerAttractors_UpdatePositions );
 }

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/tests/testParticleCoords.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/tests/testParticleCoords.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/tests/testParticleCoords.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -119,7 +119,7 @@
 	Stg_ObjectList_ClassAppend( cf->registerRegister, (void*)variable_Register, "Variable_Register" );
 
 	Stg_ComponentFactory_CreateComponents( cf );
-	Stg_ComponentFactory_ConstructComponents( cf );
+	Stg_ComponentFactory_ConstructComponents( cf, 0 /* dummy */ );
 
 	LiveComponentRegister_BuildAll( cf->LCRegister, NULL );
 	LiveComponentRegister_InitialiseAll( cf->LCRegister, NULL );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/tests/testSwarmOutput.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/tests/testSwarmOutput.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/tests/testSwarmOutput.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -150,7 +150,7 @@
 	Stg_ObjectList_ClassAppend( cf->registerRegister, (void*)swarmVariable_Register, "SwarmVariable_Register" );
 
 	Stg_ComponentFactory_CreateComponents( cf );
-	Stg_ComponentFactory_ConstructComponents( cf );
+	Stg_ComponentFactory_ConstructComponents( cf, 0 /* dummy */ );
 
 	LiveComponentRegister_BuildAll( cf->LCRegister, context );
 	LiveComponentRegister_InitialiseAll( cf->LCRegister, context );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/tests/testSwarmParticleAdvection.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/tests/testSwarmParticleAdvection.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Swarm/tests/testSwarmParticleAdvection.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -164,8 +164,8 @@
 	Stg_ObjectList_ClassAppend( cf->registerRegister, (void*)swarmVariable_Register, "SwarmVariable_Register" );
 
 	Stg_ComponentFactory_CreateComponents( cf );
-	Stg_ComponentFactory_ConstructComponents( cf );
-	PluginsManager_ConstructPlugins( context->plugins, context->CF );
+	Stg_ComponentFactory_ConstructComponents( cf, 0 /* dummy */ );
+	PluginsManager_ConstructPlugins( context->plugins, context->CF, 0 /* dummy */ );
 
 	KeyCall( context, context->constructExtensionsK, EntryPoint_VoidPtr_CallCast* )( KeyHandle(context,context->constructExtensionsK), context );
 

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/AllElementsVC.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/AllElementsVC.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/AllElementsVC.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -262,7 +262,7 @@
 /*--------------------------------------------------------------------------------------------------------------------------
 ** General virtual functions
 */
-void _AllElementsVC_Construct( void* allElementsVC, Stg_ComponentFactory *cf )
+void _AllElementsVC_Construct( void* allElementsVC, Stg_ComponentFactory *cf, void* data )
 {
 	
 }

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/AllElementsVC.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/AllElementsVC.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/AllElementsVC.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -133,7 +133,7 @@
 	** General virtual functions
 	*/
 	
-	void				_AllElementsVC_Construct( void* allElementsVC, Stg_ComponentFactory *cf );
+	void				_AllElementsVC_Construct( void* allElementsVC, Stg_ComponentFactory *cf, void* data );
 	
 	void				_AllElementsVC_Delete( void* allElementsVC );
 	

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/AllNodesVC.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/AllNodesVC.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/AllNodesVC.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -521,7 +521,7 @@
 ** Virtual functions
 */
 
-void _AllNodesVC_Construct( void* allNodesVC, Stg_ComponentFactory* data ) 
+void _AllNodesVC_Construct( void* allNodesVC, Stg_ComponentFactory* cf, void* data ) 
 {
 
 }

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/AllNodesVC.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/AllNodesVC.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/AllNodesVC.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -157,7 +157,7 @@
 	** Virtual functions
 	*/
 	
-	void				_AllNodesVC_Construct( void* allNodesVC, Stg_ComponentFactory* data ) ;
+	void				_AllNodesVC_Construct( void* allNodesVC, Stg_ComponentFactory* cf, void* data ) ;
 	
 	void				_AllNodesVC_BuildSelf( void* allNodesVC, void* data );
 	

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/CellRemesher.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/CellRemesher.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/CellRemesher.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -173,7 +173,7 @@
 }
 
 
-void _CellRemesher_Construct( void* cellRemesher, Stg_ComponentFactory* cf ) {
+void _CellRemesher_Construct( void* cellRemesher, Stg_ComponentFactory* cf, void* data ) {
 	CellRemesher*	self = (CellRemesher*)cellRemesher;
 	Dictionary*	dict;
 	char*		cmName;
@@ -182,7 +182,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 ) );
@@ -192,7 +192,7 @@
 	/* Extract cell mesh. */
 	cmName = Dictionary_GetString( dict, "cellMesh" );
 	assert( cmName );
-	self->cellMesh = Stg_ComponentFactory_ConstructByName( cf, cmName, Mesh, True );
+	self->cellMesh = Stg_ComponentFactory_ConstructByName( cf, cmName, Mesh, True, data );
 }
 
 

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/CellRemesher.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/CellRemesher.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/CellRemesher.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -86,7 +86,7 @@
 	void _CellRemesher_Delete( void* cellRemesher );
 	void _CellRemesher_Print( void* cellRemesher, Stream* stream );
 	CellRemesher* _CellRemesher_DefaultNew( Name name );
-	void _CellRemesher_Construct( void* cellRemesher, Stg_ComponentFactory* cf );
+	void _CellRemesher_Construct( void* cellRemesher, Stg_ComponentFactory* cf, void* data );
 	void _CellRemesher_Build( void* cellRemesher, void* data );
 	void _CellRemesher_Initialise( void* cellRemesher, void* data );
 	void _CellRemesher_Execute( void* cellRemesher, void* data );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/CornerVC.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/CornerVC.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/CornerVC.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -576,7 +576,7 @@
 ** Virtual functions
 */
 
-void _CornerVC_Construct( void* cornerVC, Stg_ComponentFactory* cf )
+void _CornerVC_Construct( void* cornerVC, Stg_ComponentFactory* cf, void* data )
 {
 	
 }

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/CornerVC.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/CornerVC.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/CornerVC.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -159,7 +159,7 @@
 	** Virtual functions
 	*/
 	
-	void				_CornerVC_Construct( void* cornerVC, Stg_ComponentFactory* cf );
+	void				_CornerVC_Construct( void* cornerVC, Stg_ComponentFactory* cf, void* data );
 	
 	void				_CornerVC_BuildSelf( void* cornerVC, void* data );
 	

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/DiscretisationContext.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/DiscretisationContext.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/DiscretisationContext.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -62,7 +62,7 @@
 			_DiscretisationContext_Print,
 			NULL,
 			NULL,
-			NULL,
+			_AbstractContext_Construct,
 			_AbstractContext_Build,
 			_AbstractContext_Initialise,
 			_AbstractContext_Execute,

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/DofLayout.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/DofLayout.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/DofLayout.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -278,7 +278,7 @@
 	return (void*)newDofLayout;
 }
 
-void _DofLayout_Construct( void* dofLayout, Stg_ComponentFactory* cf ) 
+void _DofLayout_Construct( void* dofLayout, Stg_ComponentFactory* cf, void* data ) 
 {
 	DofLayout *             self              = (DofLayout*)dofLayout;
 	Dictionary*             thisComponentDict = NULL;
@@ -324,7 +324,7 @@
 			baseVariableList[ baseVariable_I ] = Variable_Register_GetByName( variableRegister, variableName );
 			if ( !baseVariableList[ baseVariable_I ] )
 				baseVariableList[ baseVariable_I ] = 
-					Stg_ComponentFactory_ConstructByName( cf, variableName, Variable, True );
+					Stg_ComponentFactory_ConstructByName( cf, variableName, Variable, True, data );
 		}
 	}
 	

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/DofLayout.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/DofLayout.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/DofLayout.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -131,7 +131,7 @@
 	void* _DofLayout_Copy( void* dofLayout, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 	
 	/** Stg_Component_Construct() implementation */
-	void _DofLayout_Construct( void* dofLayout, Stg_ComponentFactory* cf );
+	void _DofLayout_Construct( void* dofLayout, Stg_ComponentFactory* cf, void* data );
 	
 	/** Stg_Component_Build() implementation */
 	void _DofLayout_Build( void* dofLayout, void* data );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/FieldVariable.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/FieldVariable.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/FieldVariable.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -259,7 +259,7 @@
 	return (void*)newFieldVariable;
 }
 
-void _FieldVariable_Construct( void* fieldVariable, Stg_ComponentFactory* cf ) {
+void _FieldVariable_Construct( void* fieldVariable, Stg_ComponentFactory* cf, void* data ) {
 	FieldVariable*	        self         = (FieldVariable*)fieldVariable;
 	FieldVariable_Register* fV_Register;
 	Dimension_Index         dim;

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/FieldVariable.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/FieldVariable.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/FieldVariable.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -156,7 +156,7 @@
 	
 	void _FieldVariable_Delete( void* fieldVariable ) ;
 	void _FieldVariable_Print( void* _fieldVariable, Stream* stream ) ;
-	void _FieldVariable_Construct( void* fieldVariable, Stg_ComponentFactory* cf ) ;
+	void _FieldVariable_Construct( void* fieldVariable, Stg_ComponentFactory* cf, void* data ) ;
 	void _FieldVariable_Build( void* fieldVariable, void* data ) ;
 	void _FieldVariable_Execute( void* fieldVariable, void* data ) ;
 	void _FieldVariable_Destroy( void* fieldVariable, void* data ) ;

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/FrictionVC.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/FrictionVC.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/FrictionVC.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -559,7 +559,7 @@
 ** Virtual functions
 */
 
-void _FrictionVC_Construct( void* wallVC, Stg_ComponentFactory* cf )
+void _FrictionVC_Construct( void* wallVC, Stg_ComponentFactory* cf, void* data )
 {
 	
 }

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/FrictionVC.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/FrictionVC.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/FrictionVC.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -153,7 +153,7 @@
 	** Virtual functions
 	*/
 	
-	void				_FrictionVC_Construct( void* wallVC, Stg_ComponentFactory* cf );
+	void				_FrictionVC_Construct( void* wallVC, Stg_ComponentFactory* cf, void* data );
 	
 	void				_FrictionVC_BuildSelf( void* wallVC, void* data );
 	

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/InnerWallVC.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/InnerWallVC.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/InnerWallVC.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -564,7 +564,7 @@
 ** Virtual functions
 */
 
-void _InnerWallVC_Construct( void* innerWallVC, Stg_ComponentFactory* cf )
+void _InnerWallVC_Construct( void* innerWallVC, Stg_ComponentFactory* cf, void* data )
 {
 	
 }

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/InnerWallVC.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/InnerWallVC.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/InnerWallVC.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -159,7 +159,7 @@
 	** Virtual functions
 	*/
 	
-	void				_InnerWallVC_Construct( void* innerWallVC, Stg_ComponentFactory* cf );
+	void				_InnerWallVC_Construct( void* innerWallVC, Stg_ComponentFactory* cf, void* data );
 	
 	void				_InnerWallVC_BuildSelf( void* innerWallVC, void* data );
 	

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/MeshCoarsener_Hexa.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/MeshCoarsener_Hexa.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/MeshCoarsener_Hexa.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -197,7 +197,7 @@
 	/* MeshCoarsener_Hexa info */
 }
 
-void _MeshCoarsener_Hexa_Construct( void* meshCoarsener, Stg_ComponentFactory *cf ){
+void _MeshCoarsener_Hexa_Construct( void* meshCoarsener, Stg_ComponentFactory *cf, void* data ){
 	
 }
 	

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/MeshCoarsener_Hexa.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/MeshCoarsener_Hexa.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/MeshCoarsener_Hexa.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -112,7 +112,7 @@
 	/* Print meshCoarsener implementation */
 	void _MeshCoarsener_Hexa_Print( void* meshCoarsener, Stream* stream );
 	
-	void _MeshCoarsener_Hexa_Construct( void* meshCoarsener, Stg_ComponentFactory *cf );
+	void _MeshCoarsener_Hexa_Construct( void* meshCoarsener, Stg_ComponentFactory *cf, void* data );
 	
 	void _MeshCoarsener_Hexa_Build( void* meshCoarsener, void *data );
 	

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/OperatorFieldVariable.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/OperatorFieldVariable.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/OperatorFieldVariable.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -292,18 +292,26 @@
 	return (void*)newOperatorFieldVariable;
 }
 
-void _OperatorFieldVariable_Construct( void* fieldVariable, Stg_ComponentFactory* cf ) {
+void _OperatorFieldVariable_Construct( void* fieldVariable, Stg_ComponentFactory* cf, void* data ) {
 	OperatorFieldVariable*     self       = (OperatorFieldVariable*) fieldVariable;
 	Index                      fieldVariableCount = 0;
 	Name                       operatorName;
 	FieldVariable**            fieldVariableList;
 	
 	/* Construct Parent */
-	_FieldVariable_Construct( self, cf );
+	_FieldVariable_Construct( self, cf, data );
 
 	operatorName = Stg_ComponentFactory_GetString( cf, self->name, "Operator", "" );
 
-	fieldVariableList = Stg_ComponentFactory_ConstructByList( cf, self->name, "FieldVariables", Stg_ComponentFactory_Unlimited, FieldVariable, True, &fieldVariableCount );
+	fieldVariableList = Stg_ComponentFactory_ConstructByList( 
+		cf, 
+		self->name, 
+		"FieldVariables", 
+		Stg_ComponentFactory_Unlimited, 
+		FieldVariable, 
+		True, 
+		&fieldVariableCount,
+		data );
 
 	_OperatorFieldVariable_Init( self, operatorName, fieldVariableCount, fieldVariableList );
 

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/OperatorFieldVariable.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/OperatorFieldVariable.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/OperatorFieldVariable.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -138,7 +138,7 @@
 
 
 	void* _OperatorFieldVariable_Copy( void* fieldVariable, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap ) ;
-	void _OperatorFieldVariable_Construct( void* fieldVariable, Stg_ComponentFactory* cf ) ;
+	void _OperatorFieldVariable_Construct( void* fieldVariable, Stg_ComponentFactory* cf, void* data ) ;
 	void _OperatorFieldVariable_Build( void* fieldVariable, void* data ) ;
 	void _OperatorFieldVariable_Execute( void* variable, void* data ) ;
 	void _OperatorFieldVariable_Destroy( void* variable, void* data ) ;

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/Remesher.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/Remesher.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/Remesher.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -148,7 +148,7 @@
 }
 
 
-void _Remesher_Construct( void* remesher, Stg_ComponentFactory* cf ) {
+void _Remesher_Construct( void* remesher, Stg_ComponentFactory* cf, void* data ) {
 	Remesher*	self = (Remesher*)remesher;
 	char*		meshName;
 
@@ -161,7 +161,7 @@
 		return;
 	}
 
-	self->mesh = Stg_ComponentFactory_ConstructByName( cf, meshName, Mesh, True );
+	self->mesh = Stg_ComponentFactory_ConstructByName( cf, meshName, Mesh, True, data );
 	self->meshType = Stg_ComponentFactory_GetString( cf, self->name, "meshType", "unknown" );
 	if( !strcmp( self->meshType, "unknown" ) ) {
 		fprintf( stderr, "Remesher: Unknown mesh type.\n" );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/Remesher.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/Remesher.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/Remesher.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -104,7 +104,7 @@
 	void _Remesher_Delete( void* remesher );
 	void _Remesher_Print( void* remesher, Stream* stream );
 	Remesher* _Remesher_DefaultNew( Name name );
-	void _Remesher_Construct( void* remesher, Stg_ComponentFactory* cf );
+	void _Remesher_Construct( void* remesher, Stg_ComponentFactory* cf, void* data );
 	void _Remesher_Build( void* remesher, void* data );
 	void _Remesher_Initialise( void* remesher, void* data );
 	void _Remesher_Execute( void* remesher, void* data );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/SemiRegDeform.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/SemiRegDeform.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/SemiRegDeform.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -204,7 +204,7 @@
 }
 
 
-void _SemiRegDeform_Construct( void* srd, Stg_ComponentFactory* cf ) {
+void _SemiRegDeform_Construct( void* srd, Stg_ComponentFactory* cf, void* data ) {
 }
 
 

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/SemiRegDeform.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/SemiRegDeform.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/SemiRegDeform.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -118,7 +118,7 @@
 	void _SemiRegDeform_Print( void* srd, Stream* stream );
 	
 	/* Construct implementation */
-	void _SemiRegDeform_Construct( void* srd, Stg_ComponentFactory* cf );
+	void _SemiRegDeform_Construct( void* srd, Stg_ComponentFactory* cf, void* data );
 	
 	/* Build implementation */
 	void _SemiRegDeform_Build( void* srd, void* data );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/ShapeAdvector.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/ShapeAdvector.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/ShapeAdvector.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -179,16 +179,16 @@
 }
 
 
-void _ShapeAdvector_Construct( void* shapeAdvector, Stg_ComponentFactory* cf ) {
+void _ShapeAdvector_Construct( void* shapeAdvector, Stg_ComponentFactory* cf, void* data ) {
 	ShapeAdvector*	            self          = (ShapeAdvector*) shapeAdvector;
 	FieldVariable*              velocityField;
 	Stg_Shape*                  shape;
 	TimeIntegrator*             timeIntegrator;
 	Bool                        allowFallbackToFirstOrder = False;
 
-	timeIntegrator = Stg_ComponentFactory_ConstructByKey( cf, self->name, "TimeIntegrator", TimeIntegrator, True  ) ;
-	velocityField  = Stg_ComponentFactory_ConstructByKey( cf, self->name, "VelocityField", FieldVariable, True  ) ;
-	shape          = Stg_ComponentFactory_ConstructByKey( cf, self->name, "Shape", Stg_Shape, True ) ;
+	timeIntegrator = Stg_ComponentFactory_ConstructByKey( cf, self->name, "TimeIntegrator", TimeIntegrator, True, data  ) ;
+	velocityField  = Stg_ComponentFactory_ConstructByKey( cf, self->name, "VelocityField", FieldVariable, True, data  ) ;
+	shape          = Stg_ComponentFactory_ConstructByKey( cf, self->name, "Shape", Stg_Shape, True, data ) ;
 	allowFallbackToFirstOrder = Stg_ComponentFactory_GetBool( cf, self->name, "allowFallbackToFirstOrder", False );
 
 	_ShapeAdvector_Init( self, timeIntegrator, velocityField, shape, allowFallbackToFirstOrder );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/ShapeAdvector.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/ShapeAdvector.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/ShapeAdvector.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -97,7 +97,7 @@
 	void* _ShapeAdvector_Copy( void* materialPoints, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 	
 	void* _ShapeAdvector_DefaultNew( Name name ) ;
-	void _ShapeAdvector_Construct( void* shape, Stg_ComponentFactory* cf ) ;
+	void _ShapeAdvector_Construct( void* shape, Stg_ComponentFactory* cf, void* data ) ;
 	void _ShapeAdvector_Build( void* materialPoints, void* data ) ;
 	void _ShapeAdvector_Initialise( void* materialPoints, void* data ) ;
 	void _ShapeAdvector_Execute( void* materialPoints, void* data );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/ShapeVC.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/ShapeVC.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/ShapeVC.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -310,7 +310,7 @@
 		name );
 }
 
-void _ShapeVC_Construct( void* variableCondition, Stg_ComponentFactory* cf ) {
+void _ShapeVC_Construct( void* variableCondition, Stg_ComponentFactory* cf, void* data ) {
 }
 
 void _ShapeVC_Build(  void* variableCondition, void* data ) {
@@ -321,7 +321,7 @@
 }
 	
 /****************** VariableCondition Virtual Functions ******************/
-void _ShapeVC_BuildSelf(  void* variableCondition, void* data ) {
+void _ShapeVC_BuildSelf(  void* variableCondition, void* data /* for build phase */ ) {
 	ShapeVC*         self    = (ShapeVC*)variableCondition;
 	AbstractContext* context = (AbstractContext*) data;
 
@@ -331,7 +331,7 @@
 			"You need to fill out the 'Shape' dictionary entry for this ShapeVC.\n" );
 	assert( self->_mesh );
 
-	self->_shape =  Stg_ComponentFactory_ConstructByName(  context->CF,  self->shapeName, Stg_Shape,  True  ) ;
+	self->_shape =  Stg_ComponentFactory_ConstructByName(  context->CF,  self->shapeName, Stg_Shape,  True, 0 /* dummy */  ) ;
 	
 	Stg_Component_Build( self->_mesh, data, False );
 	Stg_Component_Build( self->_shape, data, False );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/ShapeVC.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/ShapeVC.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/ShapeVC.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -123,7 +123,7 @@
 	/* Stg_Component Virtual Functions */
 	void* _ShapeVC_DefaultNew( Name name );
 	void _ShapeVC_Build(  void* shapeVC, void* data );
-	void _ShapeVC_Construct( void* shapeVC, Stg_ComponentFactory* cf );
+	void _ShapeVC_Construct( void* shapeVC, Stg_ComponentFactory* cf, void* data );
 	
 	/* VariableCondition Virtual Functions */
 	void _ShapeVC_BuildSelf( void* shapeVC, void* data );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/SplitFrictionWallVC.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/SplitFrictionWallVC.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/SplitFrictionWallVC.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -559,7 +559,7 @@
 ** Virtual functions
 */
 
-void _SplitFrictionWallVC_Construct( void* wallVC, Stg_ComponentFactory* cf )
+void _SplitFrictionWallVC_Construct( void* wallVC, Stg_ComponentFactory* cf, void* data )
 {
 	
 }

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/SplitFrictionWallVC.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/SplitFrictionWallVC.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/SplitFrictionWallVC.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -153,7 +153,7 @@
 	** Virtual functions
 	*/
 	
-	void				_SplitFrictionWallVC_Construct( void* wallVC, Stg_ComponentFactory* cf );
+	void				_SplitFrictionWallVC_Construct( void* wallVC, Stg_ComponentFactory* cf, void* data );
 	
 	void				_SplitFrictionWallVC_BuildSelf( void* wallVC, void* data );
 	

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/StripRemesher.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/StripRemesher.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/StripRemesher.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -174,7 +174,7 @@
 }
 
 
-void _StripRemesher_Construct( void* stripRemesher, Stg_ComponentFactory* cf ) {
+void _StripRemesher_Construct( void* stripRemesher, Stg_ComponentFactory* cf, void* data ) {
 	StripRemesher*		self = (StripRemesher*)stripRemesher;
 	Dictionary_Entry_Value*	dimLst;
 
@@ -182,7 +182,7 @@
 	assert( cf );
 	assert( cf->componentDict );
 
-	_Remesher_Construct( self, cf );
+	_Remesher_Construct( self, cf, data );
 
 	/* Extract enabled dimensions. */
 	dimLst = Dictionary_Entry_Value_GetMember( Dictionary_Get( cf->componentDict, self->name ), "dims" );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/StripRemesher.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/StripRemesher.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/StripRemesher.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -87,7 +87,7 @@
 	void _StripRemesher_Delete( void* stripRemesher );
 	void _StripRemesher_Print( void* stripRemesher, Stream* stream );
 	StripRemesher* _StripRemesher_DefaultNew( Name name );
-	void _StripRemesher_Construct( void* stripRemesher, Stg_ComponentFactory* cf );
+	void _StripRemesher_Construct( void* stripRemesher, Stg_ComponentFactory* cf, void* data );
 	void _StripRemesher_Build( void* stripRemesher, void* data );
 	void _StripRemesher_Initialise( void* stripRemesher, void* data );
 	void _StripRemesher_Execute( void* stripRemesher, void* data );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/Sync.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/Sync.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/Sync.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -238,7 +238,7 @@
 }
 
 
-void _Sync_Construct( void* sync, Stg_ComponentFactory *cf ){
+void _Sync_Construct( void* sync, Stg_ComponentFactory *cf, void* data ){
 }
 
 	

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/Sync.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/Sync.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/Sync.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -163,7 +163,7 @@
 	/* Print sync implementation */
 	void _Sync_Print( void* sync, Stream* stream );
 	
-	void _Sync_Construct( void* sync, Stg_ComponentFactory *cf );
+	void _Sync_Construct( void* sync, Stg_ComponentFactory *cf, void* data );
 	
 	void _Sync_Build( void* sync, void *data );
 	

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/TimeIntegratee.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/TimeIntegratee.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/TimeIntegratee.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -183,24 +183,31 @@
 		name );
 }
 
-void _TimeIntegratee_Construct( void* timeIntegratee, Stg_ComponentFactory* cf ) {
+void _TimeIntegratee_Construct( void* timeIntegratee, Stg_ComponentFactory* cf, void* data ) {
 	TimeIntegratee*         self                    = (TimeIntegratee*)timeIntegratee;
 	Index                   dataCount               = 0;
-	Stg_Component**         data                    = NULL;
+	Stg_Component**         initData                = NULL;
 	Variable*               variable                = NULL;
 	TimeIntegrator*         timeIntegrator          = NULL;
 	Bool                    allowFallbackToFirstOrder = False;
 	
-	variable       =  Stg_ComponentFactory_ConstructByKey( cf, self->name, Variable_Type,       Variable,       False ) ;
-	timeIntegrator =  Stg_ComponentFactory_ConstructByKey( cf, self->name, TimeIntegrator_Type, TimeIntegrator, True ) ;
-	data = Stg_ComponentFactory_ConstructByList( 
-			cf, self->name, "data", Stg_ComponentFactory_Unlimited, Stg_Component, False, &dataCount );
+	variable       =  Stg_ComponentFactory_ConstructByKey( cf, self->name, Variable_Type,       Variable,       False, data ) ;
+	timeIntegrator =  Stg_ComponentFactory_ConstructByKey( cf, self->name, TimeIntegrator_Type, TimeIntegrator, True, data ) ;
+	initData = Stg_ComponentFactory_ConstructByList( 
+		cf, 
+		self->name, 
+		"data", 
+		Stg_ComponentFactory_Unlimited, 
+		Stg_Component, 
+		False, 
+		&dataCount, 
+		data );
 	allowFallbackToFirstOrder = Stg_ComponentFactory_GetBool( cf, self->name, "allowFallbackToFirstOrder", False );	
 
-	_TimeIntegratee_Init( self, timeIntegrator, variable, dataCount, data, allowFallbackToFirstOrder );
+	_TimeIntegratee_Init( self, timeIntegrator, variable, dataCount, initData, allowFallbackToFirstOrder );
 
-	if (data != NULL)
-		Memory_Free(data);
+	if( initData != NULL )
+		Memory_Free( initData );
 }
 
 void _TimeIntegratee_Build( void* timeIntegratee, void* data ) {

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/TimeIntegratee.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/TimeIntegratee.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/TimeIntegratee.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -108,7 +108,7 @@
 	
 	/* 'Stg_Component' Virtual Functions */
 	void* _TimeIntegratee_DefaultNew( Name name ) ;
-	void _TimeIntegratee_Construct( void* timeIntegratee, Stg_ComponentFactory* cf ) ;
+	void _TimeIntegratee_Construct( void* timeIntegratee, Stg_ComponentFactory* cf, void* data ) ;
 	void _TimeIntegratee_Build( void* timeIntegrator, void* data );
 	void _TimeIntegratee_Initialise( void* timeIntegrator, void* data );
 	void _TimeIntegratee_Execute( void* timeIntegrator, void* data );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/TimeIntegrator.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/TimeIntegrator.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/TimeIntegrator.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -196,7 +196,7 @@
 		name );
 }
 
-void _TimeIntegrator_Construct( void* timeIntegrator, Stg_ComponentFactory* cf ) {
+void _TimeIntegrator_Construct( void* timeIntegrator, Stg_ComponentFactory* cf, void* data ) {
 	TimeIntegrator*          self        = (TimeIntegrator*)timeIntegrator;
 	unsigned int             order;
 	Bool                     simultaneous;
@@ -207,7 +207,7 @@
 	order          = Stg_ComponentFactory_GetUnsignedInt( cf, self->name, "order", 2 );
 	simultaneous   = Stg_ComponentFactory_GetBool( cf, self->name, "simultaneous", False );
 	
-	context = Stg_ComponentFactory_ConstructByName( cf, "context", AbstractContext, True );
+	context = Stg_ComponentFactory_ConstructByName( cf, "context", AbstractContext, True, data );
 
 	entryPoint_Register = Stg_ObjectList_Get( cf->registerRegister, "EntryPoint_Register" );
 	assert( entryPoint_Register );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/TimeIntegrator.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/TimeIntegrator.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/TimeIntegrator.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -103,7 +103,7 @@
 	
 	/* 'Stg_Component' Virtual Functions */
 	void* _TimeIntegrator_DefaultNew( Name name ) ;
-	void _TimeIntegrator_Construct( void* timeIntegrator, Stg_ComponentFactory* cf ) ;
+	void _TimeIntegrator_Construct( void* timeIntegrator, Stg_ComponentFactory* cf, void* data ) ;
 	void _TimeIntegrator_Build( void* timeIntegrator, void* data );
 	void _TimeIntegrator_Initialise( void* timeIntegrator, void* data );
 	void _TimeIntegrator_Execute( void* timeIntegrator, void* data );

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/WallVC.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/WallVC.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/WallVC.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -564,7 +564,7 @@
 ** Virtual functions
 */
 
-void _WallVC_Construct( void* wallVC, Stg_ComponentFactory* cf )
+void _WallVC_Construct( void* wallVC, Stg_ComponentFactory* cf, void* data )
 {
 	
 }

Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/WallVC.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/WallVC.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Utils/src/WallVC.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -159,7 +159,7 @@
 	** Virtual functions
 	*/
 	
-	void				_WallVC_Construct( void* wallVC, Stg_ComponentFactory* cf );
+	void				_WallVC_Construct( void* wallVC, Stg_ComponentFactory* cf, void* data );
 	
 	void				_WallVC_BuildSelf( void* wallVC, void* data );
 	

Modified: long/3D/Gale/trunk/src/StGermain/FD/src/MeshContext.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/FD/src/MeshContext.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/FD/src/MeshContext.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -99,7 +99,7 @@
 	/* Add hooks to entry points */
 	EntryPoint_Append( Context_GetEntryPoint( self, AbstractContext_EP_Build ), "defaultMeshBuild",
 		_MeshContext_Build, MeshContext_Type );
-	EntryPoint_Append( Context_GetEntryPoint( self, AbstractContext_EP_IC ), "defaultMeshICs",
+	EntryPoint_Append( Context_GetEntryPoint( self, AbstractContext_EP_Initialise ), "defaultMeshICs",
 		_MeshContext_InitialConditions,	MeshContext_Type );
 }
 

Modified: long/3D/Gale/trunk/src/StGermain/FD/tests/testMeshContext0.0of1.expected
===================================================================
--- long/3D/Gale/trunk/src/StGermain/FD/tests/testMeshContext0.0of1.expected	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/FD/tests/testMeshContext0.0of1.expected	2006-10-14 18:26:27 UTC (rev 5016)
@@ -1,72 +1,66 @@
 Watching rank: 0
-StGermain Framework revision 3418. Copyright (C) 2003-2005 VPAC.
-StGermain Discretisation Library revision 3418. Copyright (C) 2003-2005 VPAC.
+StGermain Framework revision 3654. Copyright (C) 2003-2005 VPAC.
+StGermain Discretisation Library revision 3654. Copyright (C) 2003-2005 VPAC.
 meshContext->entryPointList->count: 17
 meshContext->entryPointList->_size: 24
 Context: TestContext
-	EP: AbstractContext_EP_Setup
-		H: "default" (AbstractContext)
-	EP: AbstractContext_EP_ConstructExtensions
-	EP: AbstractContext_EP_Build
-		H: "BuildAllLiveComponents" (AbstractContext)
+	EP: Context_Construct
+		H: "default" (Context)
+	EP: Context_ConstructExtensions
+	EP: Context_Build
+		H: "BuildAllLiveComponents" (Context)
 		H: "defaultMeshBuild" (MeshContext)
-	EP: AbstractContext_EP_IC
-		H: "InitialiseAllLiveComponents" (AbstractContext)
+	EP: Context_Initialise
+		H: "InitialiseAllLiveComponents" (Context)
 		H: "defaultMeshICs" (MeshContext)
-	EP: AbstractContext_EP_Run
-		H: "default" (AbstractContext)
-	EP: AbstractContext_EP_Dt
+	EP: Context_Execute
+		H: "default" (Context)
+	EP: Context_Destroy
+	EP: Context_DestroyExtensions
+	EP: Context_Dt
 		H: "test" (TestMeshContext)
-	EP: AbstractContext_EP_Step
-		H: "default" (AbstractContext)
-	EP: AbstractContext_EP_BC
+	EP: Context_Step
+		H: "default" (Context)
+	EP: Context_Solve
 		H: "test" (TestMeshContext)
-	EP: AbstractContext_EP_Solve
+	EP: Context_UpdateClass
+	EP: Context_Sync
 		H: "test" (TestMeshContext)
-	EP: AbstractContext_EP_UpdateClass
-	EP: AbstractContext_EP_Sync
+	EP: Context_FrequentOutput
 		H: "test" (TestMeshContext)
-	EP: AbstractContext_EP_FrequentOutput
-		H: "test" (TestMeshContext)
-	EP: AbstractContext_EP_Dump
-	EP: AbstractContext_EP_DumpClass
-	EP: AbstractContext_EP_Save
-		H: "SaveTimeInfo" (AbstractContext)
-	EP: AbstractContext_EP_SaveClass
-	EP: AbstractContext_EP_DeleteExtensions
+	EP: Context_Dump
+	EP: Context_DumpClass
+	EP: Context_Save
+		H: "SaveTimeInfo" (Context)
+	EP: Context_SaveClass
 Run until simulation time passes 10.
 This is Dt, returning 2
 TimeStep = 1, Start time = 0 + 2 prev timeStep dt
 This is SetDt... setting to 2
-This is BoundaryConditions
 This is Solve
 This is Sync
 This is Output
 This is Dt, returning 2
 TimeStep = 2, Start time = 2 + 2 prev timeStep dt
 This is SetDt... setting to 2
-This is BoundaryConditions
 This is Solve
 This is Sync
 This is Output
 This is Dt, returning 2
 TimeStep = 3, Start time = 4 + 2 prev timeStep dt
 This is SetDt... setting to 2
-This is BoundaryConditions
 This is Solve
 This is Sync
 This is Output
 This is Dt, returning 2
 TimeStep = 4, Start time = 6 + 2 prev timeStep dt
 This is SetDt... setting to 2
-This is BoundaryConditions
 This is Solve
 This is Sync
 This is Output
 This is Dt, returning 2
 TimeStep = 5, Start time = 8 + 2 prev timeStep dt
 This is SetDt... setting to 2
-This is BoundaryConditions
 This is Solve
 This is Sync
 This is Output

Modified: long/3D/Gale/trunk/src/StGermain/FD/tests/testMeshContext0.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/FD/tests/testMeshContext0.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/FD/tests/testMeshContext0.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -73,10 +73,6 @@
 	return dt;
 }
 
-void MyBoundaryConditions( void* context ) {
-	printf( "This is BoundaryConditions\n" );
-}
-
 void MySolve( void* context ) {
 	printf( "This is Solve\n" );
 }
@@ -177,10 +173,6 @@
 		"test", 
 		MyDt, 
 		"TestMeshContext" );
-	EntryPoint_ReplaceAll( Context_GetEntryPoint( meshContext, AbstractContext_EP_BC ),
-		"test", 
-		MyBoundaryConditions, 
-		"TestMeshContext" );
 	EntryPoint_ReplaceAll( Context_GetEntryPoint( meshContext, AbstractContext_EP_Sync ),
 		"test", 
 		MySync, 
@@ -200,7 +192,8 @@
 	
 	/* Run the context */
 	if( rank == procToWatch ) {
-		AbstractContext_Setup( meshContext );
+		Stg_Component_Build( meshContext, 0 /* dummy */, False );
+		Stg_Component_Initialise( meshContext, 0 /* dummy */, False );
 		Stg_Component_Execute( meshContext, 0 /* dummy */, False );
 	}
 	

Modified: long/3D/Gale/trunk/src/StGermain/libStGermain/src/StGermain.h
===================================================================
--- long/3D/Gale/trunk/src/StGermain/libStGermain/src/StGermain.h	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/libStGermain/src/StGermain.h	2006-10-14 18:26:27 UTC (rev 5016)
@@ -43,7 +43,8 @@
 #define __StGermain_StGermain_h__
 
 	#define EP_APPLICATIONS_FINALISE "StGermain_EP_ApplicationsFinalise"
-	#define EP_APPLICATIONS_POST_COMPONENTS_CONSTRUCT "StGermain_EP_ApplicationsPostComponentsConstruct"
+// TODO: ensure safe to remove (i.e. evertthing compiles). Shoud just append the context's contruct
+//	#define EP_APPLICATIONS_POST_COMPONENTS_CONSTRUCT "StGermain_EP_ApplicationsPostComponentsConstruct"
 
 	#include "Base/Base.h"
 	#include "Discretisation/Discretisation.h"

Modified: long/3D/Gale/trunk/src/StGermain/src/main.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/src/main.c	2006-10-14 18:09:20 UTC (rev 5015)
+++ long/3D/Gale/trunk/src/StGermain/src/main.c	2006-10-14 18:26:27 UTC (rev 5016)
@@ -52,7 +52,6 @@
 #include <string.h>
 
 const Type StGermain_Type = "StGermain";
-const char* APPLICATIONS = "application_plugins";
 
 int main( int argc, char* argv[] ) 
 {
@@ -61,13 +60,7 @@
 	int				rank;
 	int				numProcessors;
 	Dictionary*			dictionary;
-	Dictionary*			componentDict;
-	Dictionary_Entry_Value* 	apps;
-	Dictionary_Entry_Value* 	application;
-	int				index;
 	XML_IO_Handler*			ioHandler;
-	EntryPoint* 			applicationsFinalise_EP;
-	EntryPoint* 			applicationsPostConstruct_EP;
 
 	Stream* 			infoStream;
 	
@@ -75,6 +68,7 @@
 	AbstractContext*		context = NULL;
 	//This context may be initialised iff application plugins are loaded.
 	AbstractContext*		replacedContext = NULL;
+	EntryPoint*			applicationsFinalise_EP;
 
 	/* Initialise PETSc, get world info */
 	MPI_Init( &argc, &argv );
@@ -106,7 +100,7 @@
 	                _AbstractContext_Print,
 	                NULL,
 	                NULL,
-	                NULL,
+	                _AbstractContext_Construct,
 	                _AbstractContext_Build,
 	                _AbstractContext_Initialise,
 	                _AbstractContext_Execute,
@@ -119,97 +113,9 @@
 	                CommWorld,
 	                dictionary );
 
-	componentDict = Dictionary_GetDictionary( dictionary, "components" );
-
-	if ( componentDict == NULL ) {
-		componentDict = Dictionary_New();
-	}
-	context->CF = Stg_ComponentFactory_New( dictionary, componentDict, context->register_Register );
-
-	LiveComponentRegister_Add( context->CF->LCRegister, (Stg_Component*) context );
-
-	/*check components dictionary for double entries */
-	char* errMessage = "Component dictionary must have unique names\n";
-	CheckDictionaryKeys(componentDict, errMessage);
+	/* Construction phase -----------------------------------------------------------------------------------------------*/
+	Stg_Component_Construct( context, 0 /* dummy */, &context, True );
 	
-	/************* LOAD IN APPLICATION PLUGINS ********************/
-
-	//NEED TO LOAD IN APPLICATION PLUGINS BEFORE COMPONENTS
-	//This is because plugins load in specific applications so that components can then use those apps (ie stgFEM_init)
-
-
-	//Get the application_plujgins dictionary.
-	apps = Dictionary_Get(dictionary, (char*) APPLICATIONS );
-
-	if(apps != NULL)
-	{
-		for(index = 0; index < Dictionary_Entry_Value_GetCount(apps); index++)
-		{
-			application = Dictionary_Entry_Value_GetElement(apps, index);
-				
-
-			//Load the new plugin.
-			//NOTE: that this will call the initialise for that type of application
-			Journal_Firewall(
-				PluginsManager_LoadPlugin( context->plugins, application->as.typeString, context ),
-				Journal_Register(Error_Type, StGermain_Type),
-				"Error: Application Plugin %s not found. Ensure it is"" a valid plugin, and has been built.\n",
-					application->as.typeString
-				);
-		}
-
-		//Plugins loaded -> ie ALL application environments enabled. NOW, construct in reverse order. Ensuring that 
-		//only the first (ie largest context) plugin builds a new context.
-		for(index = Dictionary_Entry_Value_GetCount(apps) - 1; index >= 0; index--)
-		{
-			application = Dictionary_Entry_Value_GetElement(apps, index);
-
-			//Construct the new plugin.
-			Journal_Firewall(
-			      PluginsManager_ConstructPlugin( context->plugins, application->as.typeString, context->CF ),
-			      Journal_Register(Error_Type, StGermain_Type),
-			      "Error: Application Plugin %s could not be constructed."
-			      " Ensure it has a valid construction function.\n",
-				      application->as.typeString
-			      );
-	
-			//Reassign the context if necessary. -> will happen (at most) in first iteration.
-			if( context !=  (AbstractContext*) context->CF->LCRegister->componentList->data[0] )
-			{
-				//Save a pointer to the current context being replaced so it can be deleted later.
-				replacedContext = context;
-				( (AbstractContext*)context->CF->LCRegister->componentList->data[0] )->plugins = context->plugins;
-				context = (AbstractContext*)context->CF->LCRegister->componentList->data[0];
-			}
-		}
-	}
-	/************* APPLICATION PLUGINS LOADED ********************/
-
-	//Should find App plugins are already loaded, but then carry on.
-	PluginsManager_Load( context->plugins, context, dictionary );
-
-	Stg_ComponentFactory_CreateComponents( context->CF );
-	Stg_ComponentFactory_ConstructComponents( context->CF );
-
-	//Run any application plugin hooks that must occur AFTER component construction. (ie UnderworldContext_AssignPointers)
-	applicationsPostConstruct_EP = Context_GetEntryPoint( context, EP_APPLICATIONS_POST_COMPONENTS_CONSTRUCT);
-	//If there exists an applications Finalise Entry Point, get in there and run hooks!
-	if(applicationsPostConstruct_EP != NULL)
-		((EntryPoint_VoidPtr_CallCast*) applicationsPostConstruct_EP->run)( applicationsPostConstruct_EP, context);
-
-	//Should find App plugins are already constructed, but then carry on.
-	//(Note that PluginsManager skips plugins that have already been constructed).
-	PluginsManager_ConstructPlugins( context->plugins, context->CF );
-
-	KeyCall( context, context->constructExtensionsK, EntryPoint_VoidPtr_CallCast* )( KeyHandle(context,context->constructExtensionsK), context );
-	
-	if( rank == 0 ) 
-		Context_PrintConcise( context, context->verbose );
-
-	if ( True == Dictionary_GetBool_WithDefault( dictionary, "showJournalStatus", False ) ) {
-		Journal_PrintConcise();	
-	}	
-
 	/* Building phase ---------------------------------------------------------------------------------------------------*/
 	Stg_Component_Build( context, 0 /* dummy */, False );
 	



More information about the cig-commits mailing list