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 ); } }
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 */ }