void _IntegrationPointsSwarm_AssignFromXML( void* integrationPoints, Stg_ComponentFactory* cf, void* data ) { IntegrationPointsSwarm* self = (IntegrationPointsSwarm*) integrationPoints; FeMesh* mesh; /* This will also call _Swarm_Init */ _Swarm_AssignFromXML( self, cf, data ); mesh = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"FeMesh", FeMesh, True, data ); _IntegrationPointsSwarm_Init( self, mesh ); }
void _GeneralSwarm_AssignFromXML( void* swarm, Stg_ComponentFactory* cf, void* data ) { GeneralSwarm* self = (GeneralSwarm*) swarm; EscapedRoutine* escapedRoutine; _Swarm_AssignFromXML( self, cf, data ); escapedRoutine = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"EscapedRoutine", EscapedRoutine, False, data ); _GeneralSwarm_Init( self, escapedRoutine ); }
void _IntegrationPointsSwarm_AssignFromXML( void* integrationPoints, Stg_ComponentFactory* cf, void* data ) { IntegrationPointsSwarm* self = (IntegrationPointsSwarm*) integrationPoints; FeMesh* mesh; TimeIntegrator* timeIntegrator; WeightsCalculator* weights; IntegrationPointMapper* mapper; Materials_Register* materials_Register; Bool recalculateWeights; PICelleratorContext* context; /* This will also call _Swarm_Init */ _Swarm_AssignFromXML( self, cf, data ); mesh = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"FeMesh", FeMesh, True, data ); timeIntegrator = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"TimeIntegrator", TimeIntegrator, False, data ); weights = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"WeightsCalculator", WeightsCalculator, False, data ); mapper = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"IntegrationPointMapper", IntegrationPointMapper, False, data ); recalculateWeights = Stg_ComponentFactory_GetBool( cf, self->name, (Dictionary_Entry_Key)"recalculateWeights", True ); if( mapper !=NULL ) { Journal_Firewall ( weights != NULL || (weights == NULL && (Stg_Class_IsInstance( mapper, GaussMapper_Type ) || Stg_Class_IsInstance( mapper, GaussCoincidentMapper_Type) || !strcmp( mapper->type, "PCDVCGaussMapper"))), Journal_MyStream( Error_Type, self ), "In func %s, %s which is a %s must either have a %s or use %s\n", __func__, self->name, self->type, WeightsCalculator_Type, GaussMapper_Type ); } context = (PICelleratorContext*)self->context; assert( Stg_CheckType( context, PICelleratorContext ) ); materials_Register = context->materials_Register; assert( materials_Register ); _IntegrationPointsSwarm_Init( self, mesh, timeIntegrator, weights, mapper, materials_Register, recalculateWeights ); }