[cig-commits] commit: Merging.
Mercurial
hg at geodynamics.org
Mon Feb 1 15:31:10 PST 2010
changeset: 343:8da41f9da12e
branch: pcu_rejig
parent: 342:41823395df31
parent: 340:827bb2615de2
user: JericoRevote
date: Wed Dec 02 11:55:14 2009 +1100
files: MaterialPoints/src/SwarmVariableField.c
description:
Merging.
diff -r 41823395df31 -r 8da41f9da12e MaterialPoints/src/PICelleratorContext.c
--- a/MaterialPoints/src/PICelleratorContext.c Wed Dec 02 11:32:10 2009 +1100
+++ b/MaterialPoints/src/PICelleratorContext.c Wed Dec 02 11:55:14 2009 +1100
@@ -97,8 +97,8 @@ void* _PICelleratorContext_DefaultNew( N
Stg_Class_CopyFunction* _copy = NULL;
Stg_Component_DefaultConstructorFunction* _defaultConstructor = _PICelleratorContext_DefaultNew;
Stg_Component_ConstructFunction* _construct = _PICelleratorContext_AssignFromXML;
- Stg_Component_BuildFunction* _build = (Stg_Component_BuildFunction*)_FiniteElementContext_Build;
- Stg_Component_InitialiseFunction* _initialise = (Stg_Component_InitialiseFunction*)_FiniteElementContext_Initialise;
+ Stg_Component_BuildFunction* _build = _AbstractContext_Build;
+ Stg_Component_InitialiseFunction* _initialise = _AbstractContext_Initialise;
Stg_Component_ExecuteFunction* _execute = (Stg_Component_ExecuteFunction*)_AbstractContext_Execute;
Stg_Component_DestroyFunction* _destroy = _PICelleratorContext_Destroy;
AllocationType nameAllocationType = NON_GLOBAL;
@@ -132,6 +132,8 @@ void _PICelleratorContext_Delete( void*
Journal_DPrintf( self->debug, "In: %s()\n", __func__ );
+ Stg_Class_Delete( self->materials_Register );
+
/* Stg_Class_Delete parent */
_FiniteElementContext_Delete( self );
}
@@ -139,8 +141,6 @@ void _PICelleratorContext_Destroy( void*
void _PICelleratorContext_Destroy( void* context ) {
PICelleratorContext* self = (PICelleratorContext*)context;
- Stg_Class_Delete( self->materials_Register );
-
_FiniteElementContext_Destroy( self );
}
diff -r 41823395df31 -r 8da41f9da12e MaterialPoints/src/PeriodicBoundariesManager.c
--- a/MaterialPoints/src/PeriodicBoundariesManager.c Wed Dec 02 11:32:10 2009 +1100
+++ b/MaterialPoints/src/PeriodicBoundariesManager.c Wed Dec 02 11:55:14 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 41823395df31 -r 8da41f9da12e MaterialPoints/src/SwarmAdvector.c
--- a/MaterialPoints/src/SwarmAdvector.c Wed Dec 02 11:32:10 2009 +1100
+++ b/MaterialPoints/src/SwarmAdvector.c Wed Dec 02 11:55:14 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 41823395df31 -r 8da41f9da12e MaterialPoints/src/SwarmVariableField.c
--- a/MaterialPoints/src/SwarmVariableField.c Wed Dec 02 11:32:10 2009 +1100
+++ b/MaterialPoints/src/SwarmVariableField.c Wed Dec 02 11:55:14 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 ) );
@@ -175,6 +178,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
@@ -183,22 +195,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 ) {
@@ -206,6 +208,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 41823395df31 -r 8da41f9da12e MaterialPoints/src/SwarmVariableField.h
--- a/MaterialPoints/src/SwarmVariableField.h Wed Dec 02 11:32:10 2009 +1100
+++ b/MaterialPoints/src/SwarmVariableField.h Wed Dec 02 11:55:14 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 41823395df31 -r 8da41f9da12e MaterialPoints/src/SwarmVariableField.meta
--- a/MaterialPoints/src/SwarmVariableField.meta Wed Dec 02 11:32:10 2009 +1100
+++ b/MaterialPoints/src/SwarmVariableField.meta Wed Dec 02 11:55:14 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