void _TimeIntegrator_Init( 
	void*						timeIntegrator, 
	unsigned int			order, 
	Bool						simultaneous, 
	EntryPoint_Register*	entryPoint_Register,
	AbstractContext*		context )
{
	TimeIntegrator* self = (TimeIntegrator*)timeIntegrator;

	self->context = (DomainContext*)context;
	self->debug = Journal_Register( Debug_Type, (Name)self->type  );
	self->info = Journal_Register( Info_Type, (Name)self->type );
		
	self->integrandRegister = NamedObject_Register_New( );
	self->order = order;
	self->simultaneous = simultaneous;

	/* Entry Point Stuff */
	Stg_asprintf( &self->_setupEPName, "%s-Setup", self->name );
	Stg_asprintf( &self->_finishEPName, "%s-Finish", self->name );
	self->setupEP  = EntryPoint_New( self->_setupEPName,  EntryPoint_VoidPtr_CastType );
	self->finishEP = EntryPoint_New( self->_finishEPName, EntryPoint_VoidPtr_CastType );

	if ( entryPoint_Register ) {
		EntryPoint_Register_Add( entryPoint_Register, self->setupEP );
		EntryPoint_Register_Add( entryPoint_Register, self->finishEP );
	}

	self->setupData = Stg_ObjectList_New();
	self->finishData = Stg_ObjectList_New();

	if ( context ) {
		EP_AppendClassHook( Context_GetEntryPoint( context, AbstractContext_EP_UpdateClass ), TimeIntegrator_UpdateClass, self );
	}
}
Ejemplo n.º 2
0
int main(int argc, char *argv[])
{
	int			rank;
	int			procCount;
	int			procToWatch;
	Stream*			stream;

	/* Initialise MPI, get world info */
	MPI_Init(&argc, &argv);
	MPI_Comm_size(MPI_COMM_WORLD, &procCount);
	MPI_Comm_rank(MPI_COMM_WORLD, &rank);

	BaseFoundation_Init( &argc, &argv );

	stream = Journal_Register( "info", "myStream" );
	
	if( argc >= 2 ) {
		procToWatch = atoi( argv[1] );
	}
	else {
		procToWatch = 0;
	}

	if ( rank == procToWatch ) {
		NamedObject_Register* reg = NamedObject_Register_New();
	
		NamedObject_Register_Add( reg, TestObject_New( "a" ) );
		NamedObject_Register_Add( reg, TestObject_New( "b" ) );
		NamedObject_Register_Add( reg, TestObject_New( "c" ) );
		NamedObject_Register_Add( reg, TestObject_New( "d" ) );
		NamedObject_Register_Add( reg, TestObject_New( "e" ) );
	
		Print( reg, stream );

		Journal_Printf( stream, "Index of \"b\": %d\n", NamedObject_Register_GetIndex( reg, "b" ) );
		Print( NamedObject_Register_GetByName( reg, "d" ), stream );
		Print( NamedObject_Register_GetByIndex( reg, 2 ), stream );
	}

	BaseFoundation_Finalise();
	
	/* Close off MPI */
	MPI_Finalize();
	
	return 0; /* success */
}