TimeIntegrand* TimeIntegrand_New( 
		Name                                       name,
		DomainContext*                             context,
		TimeIntegrator*                            timeIntegrator, 
		Variable*                                  variable,
		Index                                      dataCount, 
		Stg_Component**                            data,
		Bool                                       allowFallbackToFirstOrder )
{
	TimeIntegrand*	self;

	self = (TimeIntegrand*) _TimeIntegrand_DefaultNew( name );
	_TimeIntegrand_Init( self, context, timeIntegrator, variable, dataCount, data, allowFallbackToFirstOrder );
	return self;
}
Exemple #2
0
/*-------------------------------------------------------------------------------------------------------------------------
** Constructors
*/
SwarmAdvector* SwarmAdvector_New(
		Name                                       name,
		DomainContext*                             context,
		TimeIntegrator*                            timeIntegrator,
		FeVariable*                                velocityField,
		Bool                                       allowFallbackToFirstOrder,
		GeneralSwarm*                       swarm,
		PeriodicBoundariesManager*                 periodicBCsManager )
{
	SwarmAdvector* self = (SwarmAdvector*) _SwarmAdvector_DefaultNew( name );

	/* 	SwarmAdvector_InitAll */
	_TimeIntegrand_Init( self, context, timeIntegrator, swarm->particleCoordVariable->variable, 0, NULL,
		allowFallbackToFirstOrder );
	_SwarmAdvector_Init( self, velocityField, swarm, periodicBCsManager );

	return self;
}
void _TimeIntegrand_AssignFromXML( void* timeIntegrand, Stg_ComponentFactory* cf, void* data ) {
	TimeIntegrand*         self                    = (TimeIntegrand*)timeIntegrand;
	Index                   dataCount               = 0;
	Stg_Component**         initData                = NULL;
	Variable*               variable                = NULL;
	TimeIntegrator*         timeIntegrator          = NULL;
	Bool                    allowFallbackToFirstOrder = False;
	DomainContext*          context;

	context = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"Context", DomainContext, False, data );
	if( !self->context  )
		context = Stg_ComponentFactory_ConstructByName( cf, (Name)"context", DomainContext, False, data  );
	
	variable       =  Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)Variable_Type, Variable, False, data  ) ;
	timeIntegrator =  Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)TimeIntegrator_Type, TimeIntegrator, True, data  ) ;
	initData = Stg_ComponentFactory_ConstructByList( cf, self->name, (Dictionary_Entry_Key)"data", Stg_ComponentFactory_Unlimited, Stg_Component, False, &dataCount, data  );
	allowFallbackToFirstOrder = Stg_ComponentFactory_GetBool( cf, self->name, (Dictionary_Entry_Key)"allowFallbackToFirstOrder", False  );	

	_TimeIntegrand_Init( self, context, timeIntegrator, variable, dataCount, initData, allowFallbackToFirstOrder );

	if( initData != NULL )
		Memory_Free( initData );
}