[cig-commits] commit: rejiggin
Mercurial
hg at geodynamics.org
Mon Feb 1 15:31:05 PST 2010
changeset: 340:827bb2615de2
branch: pcu_rejig
user: JohnMansour <john.mansour at maths.monash.edu.au>
date: Tue Dec 01 17:26:53 2009 +1100
files: MaterialPoints/src/PeriodicBoundariesManager.c MaterialPoints/src/SwarmAdvector.c MaterialPoints/src/SwarmVariableField.c MaterialPoints/src/SwarmVariableField.h MaterialPoints/src/SwarmVariableField.meta
description:
rejiggin
diff -r 84e6d0478ed4 -r 827bb2615de2 MaterialPoints/src/PeriodicBoundariesManager.c
--- a/MaterialPoints/src/PeriodicBoundariesManager.c Tue Dec 01 14:01:08 2009 +1100
+++ b/MaterialPoints/src/PeriodicBoundariesManager.c Tue Dec 01 17:26:53 2009 +1100
@@ -221,7 +221,9 @@ void _PeriodicBoundariesManager_Build( v
void _PeriodicBoundariesManager_Build( void* periodicBCsManager, void* data ) {
PeriodicBoundariesManager* self = (PeriodicBoundariesManager*)periodicBCsManager;
Dictionary_Entry_Value* periodicBCsList = NULL;
-
+
+ Stg_Component_Build( self->swarm, data, False );
+ Stg_Component_Build( self->mesh, data, False );
self->size = 4;
self->boundaries = Memory_Alloc_Array( PeriodicBoundary, self->size, "PeriodicBoundariesManager->boundaries" );
@@ -266,7 +268,11 @@ void _PeriodicBoundariesManager_Build( v
}
}
-void _PeriodicBoundariesManager_Initialise( void* periodicBCsManager, void* data ) {
+void _PeriodicBoundariesManager_Initialise( void* periodicBCsManager, void* data ) {
+ PeriodicBoundariesManager* self = (PeriodicBoundariesManager*)periodicBCsManager;
+
+ Stg_Component_Initialise( self->swarm, data, False );
+ Stg_Component_Initialise( self->mesh, data, False );
}
void _PeriodicBoundariesManager_Execute( void* periodicBCsManager, void* data ) {
@@ -274,6 +280,9 @@ void _PeriodicBoundariesManager_Execute(
void _PeriodicBoundariesManager_Destroy( void* periodicBCsManager, void* data ) {
PeriodicBoundariesManager* self = (PeriodicBoundariesManager*)periodicBCsManager;
+
+ Stg_Component_Destroy( self->swarm, data, False );
+ Stg_Component_Destroy( self->mesh, data, False );
Memory_Free( self->boundaries );
}
diff -r 84e6d0478ed4 -r 827bb2615de2 MaterialPoints/src/SwarmAdvector.c
--- a/MaterialPoints/src/SwarmAdvector.c Tue Dec 01 14:01:08 2009 +1100
+++ b/MaterialPoints/src/SwarmAdvector.c Tue Dec 01 17:26:53 2009 +1100
@@ -224,28 +224,38 @@ void _SwarmAdvector_Build( void* swarmAd
void _SwarmAdvector_Build( void* swarmAdvector, void* data ) {
SwarmAdvector* self = (SwarmAdvector*) swarmAdvector;
- _TimeIntegratee_Build( self, data );
-
+ Stg_Component_Build( self->velocityField, data, False );
+ Stg_Component_Build( self->swarm, data, False );
if ( self->periodicBCsManager )
Stg_Component_Build( self->periodicBCsManager, data, False );
+ _TimeIntegratee_Build( self, data );
+
}
+
void _SwarmAdvector_Initialise( void* swarmAdvector, void* data ) {
SwarmAdvector* self = (SwarmAdvector*) swarmAdvector;
- _TimeIntegratee_Initialise( self, data );
-
+ Stg_Component_Initialise( self->velocityField, data, False );
+ Stg_Component_Initialise( self->swarm, data, False );
if ( self->periodicBCsManager )
Stg_Component_Initialise( self->periodicBCsManager, data, False );
+ _TimeIntegratee_Initialise( self, data );
}
+
void _SwarmAdvector_Execute( void* swarmAdvector, void* data ) {
SwarmAdvector* self = (SwarmAdvector*)swarmAdvector;
_TimeIntegratee_Execute( self, data );
}
+
void _SwarmAdvector_Destroy( void* swarmAdvector, void* data ) {
SwarmAdvector* self = (SwarmAdvector*)swarmAdvector;
-
- _TimeIntegratee_Destroy( self, data );
+
+ _TimeIntegratee_Destroy( self, data );
+ Stg_Component_Destroy( self->velocityField, data, False );
+ Stg_Component_Destroy( self->swarm, data, False );
+ if ( self->periodicBCsManager )
+ Stg_Component_Destroy( self->periodicBCsManager, data, False );
}
Bool _SwarmAdvector_TimeDeriv( void* swarmAdvector, Index array_I, double* timeDeriv ) {
diff -r 84e6d0478ed4 -r 827bb2615de2 MaterialPoints/src/SwarmVariableField.c
--- a/MaterialPoints/src/SwarmVariableField.c Tue Dec 01 14:01:08 2009 +1100
+++ b/MaterialPoints/src/SwarmVariableField.c Tue Dec 01 17:26:53 2009 +1100
@@ -76,10 +76,11 @@ SwarmVariableField* _SwarmVariableField_
return self;
}
-void _SwarmVariableField_Init( SwarmVariableField* swarmVariableField, SwarmVariable* swarmVar, Variable_Register* variable_Register ) {
+void _SwarmVariableField_Init( SwarmVariableField* swarmVariableField, Variable_Register* variable_Register, Name swarmVarName, MaterialPointsSwarm* materialSwarm ) {
SwarmVariableField* self = (SwarmVariableField*)swarmVariableField;
- self->swarmVar = swarmVar;
self->variable_Register = variable_Register;
+ self->swarmVarName = swarmVarName;
+ self->materialSwarm = materialSwarm;
}
void _SwarmVariableField_Delete( void* swarmVariableField ) {
@@ -125,30 +126,32 @@ void* _SwarmVariableField_DefaultNew( Na
void _SwarmVariableField_AssignFromXML( void* swarmVariableField, Stg_ComponentFactory* cf, void* data ) {
SwarmVariableField* self = (SwarmVariableField*)swarmVariableField;
- SwarmVariable* swarmVar;
IntegrationPointsSwarm* integrationSwarm;
Variable_Register* variable_Register;
-
+ Name swarmVarName;
+ MaterialPointsSwarm* materialSwarm;
_ParticleFeVariable_AssignFromXML( self, cf, data );
variable_Register = self->context->variable_Register;
// TODO: just get the textual name here - see gLucifer's SwarmPlotter DrawignObject
- self->swarmVarName = Stg_ComponentFactory_GetString( cf, self->name, "swarmVariable", "" );
- assert( swarmVar );
+ swarmVarName = Stg_ComponentFactory_GetString( cf, self->name, "swarmVariable", "" );
- self->materialSwarm = Stg_ComponentFactory_ConstructByKey( cf, self->name, "MaterialSwarm", MaterialPointsSwarm, True, data );
+ materialSwarm = Stg_ComponentFactory_ConstructByKey( cf, self->name, "MaterialSwarm", MaterialPointsSwarm, True, data );
integrationSwarm = Stg_ComponentFactory_ConstructByKey( cf, self->name, "Swarm", IntegrationPointsSwarm, True, NULL );
assert( integrationSwarm );
- _SwarmVariableField_Init( self, swarmVar, variable_Register );
+ _SwarmVariableField_Init( self, variable_Register, swarmVarName, materialSwarm );
}
void _SwarmVariableField_Build( void* swarmVariableField, void* data ) {
- SwarmVariableField* self = (SwarmVariableField*)swarmVariableField;
- Name tmpName;
- unsigned nDomainVerts = Mesh_GetDomainSize( self->feMesh, MT_VERTEX );
+ SwarmVariableField* self = (SwarmVariableField*)swarmVariableField;
+ unsigned nDomainVerts = Mesh_GetDomainSize( self->feMesh, MT_VERTEX );
+ SwarmVariable_Register* swarmVar_Register = self->materialSwarm->swarmVariable_Register;
+ Stream* errorStream = Journal_Register( Error_Type, self->type );
+ Name tmpName;
+ Stg_Component_Build( self->materialSwarm, data, False );
/* make this more flexible to handle vector values at each node - will have to get the num dofs from the XML
* as other components are not necessarily built yet... dave. 03.10.07 */
assert( Class_IsSuper( self->feMesh->topo, IGraph ) );
@@ -174,6 +177,15 @@ void _SwarmVariableField_Build( void* sw
self->eqNum->dofLayout = self->dofLayout;
+ /* assign the swarm variable, assume its already built */
+ if( 0 != strcmp( self->swarmVarName, "" ) ) {
+ self->swarmVar = SwarmVariable_Register_GetByName( swarmVar_Register, self->swarmVarName );
+ Journal_Firewall( self->swarmVar != NULL, errorStream, "Error - cannot find swarm variable \"%s\" in %s() for swarm \"%s\".\n",
+ self->swarmVarName, __func__, self->materialSwarm->name );
+
+ Stg_Component_Build( self->swarmVar, data, False );
+ }
+
_ParticleFeVariable_Build( self, data );
/* TODO: build self->swarmVar */
// TODO: granb self->SwarmVariableName out of the swarm vart register, save reference as self->swarmVar
@@ -182,22 +194,12 @@ void _SwarmVariableField_Build( void* sw
void _SwarmVariableField_Initialise( void* swarmVariableField, void* data ) {
SwarmVariableField* self = (SwarmVariableField*)swarmVariableField;
- SwarmVariable_Register* swarmVar_Register = self->materialSwarm->swarmVariable_Register;
- Stream* errorStream = Journal_Register( Error_Type, self->type );
- /* assign the swarm variable, assume its already built */
- if( 0 != strcmp( self->swarmVarName, "" ) ) {
- self->swarmVar = SwarmVariable_Register_GetByName( swarmVar_Register, self->swarmVarName );
- Journal_Firewall( self->swarmVar != NULL, errorStream, "Error - cannot find swarm variable \"%s\" in %s() for swarm \"%s\".\n",
- self->swarmVarName, __func__, self->materialSwarm->name );
+ Stg_Component_Initialise( self->materialSwarm, data, False );
- Stg_Component_Build( self->swarmVar, data, False );
- Stg_Component_Initialise( self->swarmVar, data, False );
- }
+ if( self->swarmVar ) Stg_Component_Initialise( self->swarmVar, data, False );
_ParticleFeVariable_Initialise( self, data );
-
- _SwarmVariable_Initialise( self->swarmVar, data );
}
void _SwarmVariableField_Execute( void* swarmVariableField, void* data ) {
@@ -205,6 +207,11 @@ void _SwarmVariableField_Execute( void*
}
void _SwarmVariableField_Destroy( void* swarmVariableField, void* data ) {
+ SwarmVariableField* self = (SwarmVariableField*)swarmVariableField;
+
+ Stg_Component_Destroy( self->materialSwarm, data, False );
+ if( self->swarmVar ) Stg_Component_Destroy( self->swarmVar, data, False );
+
_ParticleFeVariable_Destroy( swarmVariableField, data );
}
diff -r 84e6d0478ed4 -r 827bb2615de2 MaterialPoints/src/SwarmVariableField.h
--- a/MaterialPoints/src/SwarmVariableField.h Tue Dec 01 14:01:08 2009 +1100
+++ b/MaterialPoints/src/SwarmVariableField.h Tue Dec 01 17:26:53 2009 +1100
@@ -89,6 +89,7 @@
void _SwarmVariableField_AssignFromXML( void* swarmVariable, Stg_ComponentFactory* cf, void* data ) ;
void _SwarmVariableField_Build( void* swarmVariable, void* data ) ;
void _SwarmVariableField_Initialise( void* swarmVariable, void* data ) ;
+ void _SwarmVariableField_Init( SwarmVariableField* swarmVariableField, Variable_Register* variable_Register, Name swarmVarName, MaterialPointsSwarm* materialSwarm ) ;
void _SwarmVariableField_Execute( void* swarmVariable, void* data ) ;
void _SwarmVariableField_Destroy( void* swarmVariable, void* data ) ;
diff -r 84e6d0478ed4 -r 827bb2615de2 MaterialPoints/src/SwarmVariableField.meta
--- a/MaterialPoints/src/SwarmVariableField.meta Tue Dec 01 14:01:08 2009 +1100
+++ b/MaterialPoints/src/SwarmVariableField.meta Tue Dec 01 17:26:53 2009 +1100
@@ -17,7 +17,7 @@
<list name="Params">
<struct>
- <param name="Name">swarmVariable</param>
+ <param name="Name">swarmVariableName</param>
<param name="Type">String</param>
<param name="Default">""</param>
<param name="Description">Textual name of the swarm variable which will be interpolated onto the mesh</param>
More information about the CIG-COMMITS
mailing list