void _RateFieldTimeIntegrator_AssignFromXML( void* rateFieldTimeIntegrator, Stg_ComponentFactory* cf, void* data ){ RateFieldTimeIntegrator* self = (RateFieldTimeIntegrator*) rateFieldTimeIntegrator; /* Construct Parent */ _TimeIntegrand_AssignFromXML( self, cf, data ); /** see Underworld/InputFiles/CumulativeTotalStrain.xml for a usage example */ /** this provided swarm will have each particle extended to store the cumulative integral information */ self->swarm = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"MaterialPointsSwarm", MaterialPointsSwarm, True, data ); /** this ratefield defines the rate of change used for the time integration */ self->rateField = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"RateField" , FeVariable, True, data ); }
void _SwarmAdvector_AssignFromXML( void* swarmAdvector, Stg_ComponentFactory* cf, void* data ) { SwarmAdvector* self = (SwarmAdvector*) swarmAdvector; FeVariable* velocityField; GeneralSwarm* swarm; PeriodicBoundariesManager* periodicBCsManager; _TimeIntegrand_AssignFromXML( self, cf, data ); velocityField = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"VelocityField", FeVariable, True, data ); swarm = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"Swarm", GeneralSwarm, True, data ); periodicBCsManager = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"PeriodicBCsManager", PeriodicBoundariesManager, False, data ); _SwarmAdvector_Init( self, velocityField, swarm, periodicBCsManager ); }