7
UMLSequenceAllInOne
175
0
1001
1309
obj=Integrated model~a
obj=Lifeline Iterative1D2dCoupler~b
obj=Lifeline DFlow1d~c
obj=Lifeline DFlowFM~d
a->>>b : Oninitialize(); on=b
b->>>c : ModelInitialize()
b->>>c : ModelInitialize()
off=b
on=b
a->>>b : OnExecute()
b->b + : newTime += userTimeStep
on=b
off=b
b->>>c : InitializeUserTimeStep()
b->>>d : InitializeUserTimeStep()
combinedFragment=loop~loop1 a d; b: currentTime < newTime
b->>>c : InitializeComputationalTimeStep();on=c
c->b : Timestep1D;off=c
b->>>d : InitializeComputationalTimeStep();on=d
d->b : Timestep1D;off=d
c->d : Timestep1D
combinedFragment=loop~loop2 a d; b: not converged
b->>>c
b->b + :timeStep = min (timeStep1D, timeStep2D)
on=b
off=b;
b->>>c : GetVar(water_level)
b->>>d : SetVar(water_level)
b->>>d : RunComputaionalTimeStep(); on=d
d->d + : compute 1d2d coefficients
on=d
off=d
d->b : success, timeStep2D;off=d
b->>>d : GetVar(qzeta1d2d)
b->>>d : GetVar(qlat1d2d)
b->>>c : SetVar(qzeta1d2d)
b->>>c : SetVar(qlat1d2d)
b->>>c : RunComputaionalTimeStep(); on=c
c->b : success, timeStep1D;off=c
b->b + :Check convergence
on=b
off=b;
--=loop2
b->b + :CurrentTime += timeStep
on=b
off=b;
b->>>c : FinalizeComputationalTimeStep()
b->>>d : FinalizeComputationalTimeStep()
--=loop1
b->>>c : FinalizeUserTimeStep()
b->>>d : FinalizeUserTimeStep()
off=b;