Example #1
0
void System::preinitialize()
{
    // no need to call subsystems' initialize() -- the Model does this
    if ( !theStepper )
    {
        theStepper = theModel->getStepper( theStepperID );
        theStepper->registerSystem( this );
    }

    //
    // Set Process::theStepper.
    // 
    for ( ProcessMap::const_iterator i( theProcessMap.begin() );
          i != theProcessMap.end() ; ++i )
    {
        Process* aProcess( i->second );

        if( !aProcess->getStepper() )
        {
            aProcess->setStepper( getStepper() );
        }
    }

    configureSizeVariable();
}
Example #2
0
BOOL CProcess::OnEnuming( DWORD dwPID )
{
	CProcess aProcess(dwPID);
	
	if (aProcess.CheckImageName(m_strFileName))
	{
		Attach(dwPID);
		return FALSE;
	}

	return TRUE;
}
void checkMainProcessInStepper()
{
    // pick up main system from SpatioStepper
    System* aRootSystem( stepperData->getModel()->getRootSystem() );

    // check value of Processes in main system
    Process* aProcess( aRootSystem->getProcess( "populate" ) );
    BOOST_CHECK( aProcess->getProcessName() == "MoleculePopulateProcess" );
    BOOST_CHECK( aProcess->getVariableReference( "___00" ).getVariable()->getValue() == SOURCE_SUBSYS );
    BOOST_CHECK( aProcess->getVariableReference( "___01" ).getVariable()->getValue() == A_SUBSYS );
    BOOST_CHECK( aProcess->getVariableReference( "___02" ).getVariable()->getValue() == B_SUBSYS );
    BOOST_CHECK( aProcess->getVariableReference( "___03" ).getVariable()->getValue() == C_SUBSYS );
    BOOST_CHECK( aProcess->getVariableReference( "___04" ).getVariable()->getValue() == SOURCE_SUBSYS2 );
    BOOST_CHECK( aProcess->getVariableReference( "___05" ).getVariable()->getValue() == A_SUBSYS2 );
    BOOST_CHECK( aProcess->getVariableReference( "___06" ).getVariable()->getValue() == B_SUBSYS2 );
    BOOST_CHECK( aProcess->getVariableReference( "___07" ).getVariable()->getValue() == C_SUBSYS2 );
}
void checkSubProcess2InStepper()
{
    // pick up main system from SpatioStepper
    System* aRootSystem( stepperData->getModel()->getRootSystem() );

    // pick up sub system from main system
    System* aSubSystem2( aRootSystem->getSystem( "/Cell1" ) );

    // check value of Processes in sub system
    Process* aProcess( aSubSystem2->getProcess( "diffusion_A" ) );
    BOOST_CHECK( aProcess->getProcessName() == "DiffusionProcess" );
    BOOST_CHECK( reinterpret_cast< DiffusionProcess* >( aProcess )->getD() == 1e-12 );
    BOOST_CHECK( aProcess->getVariableReference( "___00" ).getVariable()->getValue() == A_SUBSYS2 );

    aProcess = aSubSystem2->getProcess( "diffusion_B" );
    BOOST_CHECK( aProcess->getProcessName() == "DiffusionProcess" );
    BOOST_CHECK( reinterpret_cast< DiffusionProcess* >( aProcess )->getD() == 0.1e-12 );
    BOOST_CHECK( aProcess->getVariableReference( "___00" ).getVariable()->getValue() == B_SUBSYS2 );

    aProcess = aSubSystem2->getProcess( "degradation_A" );
    BOOST_CHECK( aProcess->getProcessName() == "SpatiocyteNextReactionProcess" );
    BOOST_CHECK( reinterpret_cast< SpatiocyteNextReactionProcess* >( aProcess )->getk() == 0.05 );
    BOOST_CHECK( aProcess->getVariableReference( "___00" ).getVariable()->getValue() == A_SUBSYS2 );
    BOOST_CHECK( aProcess->getVariableReference( "___01" ).getVariable()->getValue() == VACANT_SUBSYS2 );
    BOOST_CHECK( aProcess->getVariableReference( "___00" ).getCoefficient() == -1 );
    BOOST_CHECK( aProcess->getVariableReference( "___01" ).getCoefficient() == 1 );

    aProcess = aSubSystem2->getProcess( "degradation_B" );
    BOOST_CHECK( aProcess->getProcessName() == "SpatiocyteNextReactionProcess" );
    BOOST_CHECK( reinterpret_cast< SpatiocyteNextReactionProcess* >( aProcess )->getk() == 0.03 );
    BOOST_CHECK( aProcess->getVariableReference( "___00" ).getVariable()->getValue() == B_SUBSYS2 );
    BOOST_CHECK( aProcess->getVariableReference( "___01" ).getVariable()->getValue() == VACANT_SUBSYS2 );
    BOOST_CHECK( aProcess->getVariableReference( "___00" ).getCoefficient() == -1 );
    BOOST_CHECK( aProcess->getVariableReference( "___01" ).getCoefficient() == 1 );

    aProcess = aSubSystem2->getProcess( "reaction_AB" );
    BOOST_CHECK( aProcess->getProcessName() == "DiffusionInfluencedReactionProcess" );
    BOOST_CHECK( reinterpret_cast< DiffusionInfluencedReactionProcess* >( aProcess )->getk() == 1.5e-20 );
    BOOST_CHECK( aProcess->getVariableReference( "___00" ).getVariable()->getValue() == A_SUBSYS2 );
    BOOST_CHECK( aProcess->getVariableReference( "___01" ).getVariable()->getValue() == B_SUBSYS2 );
    BOOST_CHECK( aProcess->getVariableReference( "___02" ).getVariable()->getValue() == C_SUBSYS2 );
    BOOST_CHECK( aProcess->getVariableReference( "___00" ).getCoefficient() == -1 );
    BOOST_CHECK( aProcess->getVariableReference( "___01" ).getCoefficient() == -1 );
    BOOST_CHECK( aProcess->getVariableReference( "___02" ).getCoefficient() == 1 );

    aProcess = aSubSystem2->getProcess( "decay_C" );
    BOOST_CHECK( aProcess->getProcessName() == "SpatiocyteNextReactionProcess" );
    BOOST_CHECK( reinterpret_cast< SpatiocyteNextReactionProcess* >( aProcess )->getk() == 0.5 );
    BOOST_CHECK( aProcess->getVariableReference( "___00" ).getVariable()->getValue() == C_SUBSYS2 );
    BOOST_CHECK( aProcess->getVariableReference( "___01" ).getVariable()->getValue() == A_SUBSYS2 );
    BOOST_CHECK( aProcess->getVariableReference( "___02" ).getVariable()->getValue() == B_SUBSYS2 );
    BOOST_CHECK( aProcess->getVariableReference( "___00" ).getCoefficient() == -1 );
    BOOST_CHECK( aProcess->getVariableReference( "___01" ).getCoefficient() == 1 );
    BOOST_CHECK( aProcess->getVariableReference( "___02" ).getCoefficient() == 1 );

    aProcess = aSubSystem2->getProcess( "synthesis_B" );
    BOOST_CHECK( aProcess->getProcessName() == "SpatiocyteNextReactionProcess" );
    BOOST_CHECK( reinterpret_cast< SpatiocyteNextReactionProcess* >( aProcess )->getk() == 10.25 );
    BOOST_CHECK( aProcess->getVariableReference( "___00" ).getVariable()->getValue() == SOURCE_SUBSYS2 );
    BOOST_CHECK( aProcess->getVariableReference( "___01" ).getVariable()->getValue() == SOURCE_SUBSYS2 );
    BOOST_CHECK( aProcess->getVariableReference( "___02" ).getVariable()->getValue() == B_SUBSYS2 );
    BOOST_CHECK( aProcess->getVariableReference( "___00" ).getCoefficient() == -1 );
    BOOST_CHECK( aProcess->getVariableReference( "___01" ).getCoefficient() == 1 );
    BOOST_CHECK( aProcess->getVariableReference( "___02" ).getCoefficient() == 1 );

    aProcess = aSubSystem2->getProcess( "forward_A" );
    BOOST_CHECK( aProcess->getProcessName() == "SpatiocyteNextReactionProcess" );
    BOOST_CHECK( reinterpret_cast< SpatiocyteNextReactionProcess* >( aProcess )->getk() == 0.3 );
    BOOST_CHECK( aProcess->getVariableReference( "___00" ).getVariable()->getValue() == A_SUBSYS );
    BOOST_CHECK( aProcess->getVariableReference( "___01" ).getVariable()->getValue() == A_SUBSYS2 );
    BOOST_CHECK( aProcess->getVariableReference( "___00" ).getCoefficient() == -1 );
    BOOST_CHECK( aProcess->getVariableReference( "___01" ).getCoefficient() == 1 );

    aProcess = aSubSystem2->getProcess( "backward_A" );
    BOOST_CHECK( aProcess->getProcessName() == "SpatiocyteNextReactionProcess" );
    BOOST_CHECK( reinterpret_cast< SpatiocyteNextReactionProcess* >( aProcess )->getk() == 0.4 );
    BOOST_CHECK( aProcess->getVariableReference( "___00" ).getVariable()->getValue() == A_SUBSYS );
    BOOST_CHECK( aProcess->getVariableReference( "___01" ).getVariable()->getValue() == A_SUBSYS2 );
    BOOST_CHECK( aProcess->getVariableReference( "___00" ).getCoefficient() == 1 );
    BOOST_CHECK( aProcess->getVariableReference( "___01" ).getCoefficient() == -1 );

    aProcess = aSubSystem2->getProcess( "forward_B" );
    BOOST_CHECK( aProcess->getProcessName() == "SpatiocyteNextReactionProcess" );
    BOOST_CHECK( reinterpret_cast< SpatiocyteNextReactionProcess* >( aProcess )->getk() == 0.4 );
    BOOST_CHECK( aProcess->getVariableReference( "___00" ).getVariable()->getValue() == B_SUBSYS );
    BOOST_CHECK( aProcess->getVariableReference( "___01" ).getVariable()->getValue() == B_SUBSYS2 );
    BOOST_CHECK( aProcess->getVariableReference( "___00" ).getCoefficient() == -1 );
    BOOST_CHECK( aProcess->getVariableReference( "___01" ).getCoefficient() == 1 );

    aProcess = aSubSystem2->getProcess( "backward_B" );
    BOOST_CHECK( aProcess->getProcessName() == "SpatiocyteNextReactionProcess" );
    BOOST_CHECK( reinterpret_cast< SpatiocyteNextReactionProcess* >( aProcess )->getk() == 0.3 );
    BOOST_CHECK( aProcess->getVariableReference( "___00" ).getVariable()->getValue() == B_SUBSYS );
    BOOST_CHECK( aProcess->getVariableReference( "___01" ).getVariable()->getValue() == B_SUBSYS2 );
    BOOST_CHECK( aProcess->getVariableReference( "___00" ).getCoefficient() == 1 );
    BOOST_CHECK( aProcess->getVariableReference( "___01" ).getCoefficient() == -1 );
}