Пример #1
0
        public void AddFlows(DialyzingFluidFlowCombinator flowCombinator)
        {
            // The order of the connections matters
            flowCombinator.ConnectOutWithIn(WaterSupply.MainFlow,
                                            WaterPreparation.MainFlow);
            flowCombinator.ConnectOutWithIn(ConcentrateSupply.Concentrate,
                                            DialyzingFluidPreparation.Concentrate);
            flowCombinator.ConnectOutWithIn(WaterPreparation.MainFlow,
                                            DialyzingFluidPreparation.DialyzingFluidFlow);
            flowCombinator.ConnectOutWithIn(DialyzingFluidPreparation.DialyzingFluidFlow,
                                            BalanceChamber.ProducedDialysingFluid);
            flowCombinator.ConnectOutWithIn(BalanceChamber.StoredProducedDialysingFluid,
                                            SafetyBypass.MainFlow);
            flowCombinator.ConnectOutWithIn(SafetyBypass.MainFlow,
                                            ToDialyzer);
            flowCombinator.ConnectOutWithIns(
                FromDialyzer,
                new IFlowComponentUniqueIncoming <DialyzingFluid, Suction>[] {
                DialyzingUltraFiltrationPump.MainFlow,
                PumpToBalanceChamber.MainFlow
            });
            flowCombinator.ConnectOutWithIn(PumpToBalanceChamber.MainFlow,
                                            BalanceChamber.UsedDialysingFluid);
            flowCombinator.ConnectOutsWithIn(
                new IFlowComponentUniqueOutgoing <DialyzingFluid, Suction>[] {
                SafetyBypass.DrainFlow,
                BalanceChamber.StoredUsedDialysingFluid,
                DialyzingUltraFiltrationPump.MainFlow
            },
                DialyzingFluidDrain.MainFlow);

            BalanceChamber.AddFlows(flowCombinator);
        }
		public void AddFlows(DialyzingFluidFlowCombinator flowCombinator)
		{//TODO: Check
			flowCombinator.ConnectOutWithIn(ProducedDialysingFluid, ForwardProducedFlowSegment);
			flowCombinator.ConnectOutWithIn(UsedDialysingFluid, ForwardUsedFlowSegment);
			flowCombinator.ConnectOutWithIn(ForwardProducedFlowSegment,StoredProducedDialysingFluid);
			flowCombinator.ConnectOutWithIn(ForwardUsedFlowSegment, StoredUsedDialysingFluid);
		}
Пример #3
0
		public void AddFlows(DialyzingFluidFlowCombinator flowCombinator)
		{//TODO: Check
			flowCombinator.ConnectOutWithIn(ProducedDialysingFluid, ForwardProducedFlowSegment);
			flowCombinator.ConnectOutWithIn(UsedDialysingFluid, ForwardUsedFlowSegment);
			flowCombinator.ConnectOutWithIn(ForwardProducedFlowSegment,StoredProducedDialysingFluid);
			flowCombinator.ConnectOutWithIn(ForwardUsedFlowSegment, StoredUsedDialysingFluid);
		}
		public void SimpleFlowArrives()
		{
var supply = new WaterSupply();
var pump = new Pump();
var drain = new Drain();
var combinator = new DialyzingFluidFlowCombinator();
pump.PumpSpeed = 7;
combinator.ConnectOutWithIn(supply.MainFlow,pump.MainFlow);
combinator.ConnectOutWithIn(pump.MainFlow, drain.MainFlow);
combinator.CommitFlow();

			var model = new DialyzingFluidFlowModel
			{
				FlowElements = new IComponent[] { supply, pump, drain, combinator }
			};
			
			var simulator = new Simulator(model); //Important: Call after all objects have been created
			simulator.SimulateStep();

			var modelAfterStep = (DialyzingFluidFlowModel) simulator.Model;
			var supplyAfterStep = (WaterSupply)modelAfterStep.Components[0];
			var pumpAfterStep = (Pump)modelAfterStep.Components[1];
			var drainAfterStep = (Drain)modelAfterStep.Components[2];
			pumpAfterStep.MainFlow.Incoming.Backward.CustomSuctionValue.Should().Be(7);
			supplyAfterStep.MainFlow.Outgoing.Forward.Quantity.Should().Be(7);
			drainAfterStep.MainFlow.Incoming.Forward.Quantity.Should().Be(7);
		}
Пример #5
0
        public void SimpleFlowArrives()
        {
            var supply     = new WaterSupply();
            var pump       = new Pump();
            var drain      = new Drain();
            var combinator = new DialyzingFluidFlowCombinator();

            pump.PumpSpeed = 7;
            combinator.ConnectOutWithIn(supply.MainFlow, pump.MainFlow);
            combinator.ConnectOutWithIn(pump.MainFlow, drain.MainFlow);
            combinator.CommitFlow();

            var model = new DialyzingFluidFlowModel
            {
                FlowElements = new IComponent[] { supply, pump, drain, combinator }
            };

            var simulator = new SafetySharpSimulator(model);             //Important: Call after all objects have been created

            simulator.SimulateStep();

            var modelAfterStep  = (DialyzingFluidFlowModel)simulator.Model;
            var supplyAfterStep = (WaterSupply)modelAfterStep.Components[0];
            var pumpAfterStep   = (Pump)modelAfterStep.Components[1];
            var drainAfterStep  = (Drain)modelAfterStep.Components[2];

            pumpAfterStep.MainFlow.Incoming.Backward.CustomSuctionValue.Should().Be(7);
            supplyAfterStep.MainFlow.Outgoing.Forward.Quantity.Should().Be(7);
            drainAfterStep.MainFlow.Incoming.Forward.Quantity.Should().Be(7);
        }
		public void AddFlows(DialyzingFluidFlowCombinator flowCombinator)
		{
			// The order of the connections matters
			flowCombinator.ConnectOutWithIn(WaterSupply.MainFlow,
				WaterPreparation.MainFlow);
			flowCombinator.ConnectOutWithIn(ConcentrateSupply.Concentrate,
				DialyzingFluidPreparation.Concentrate);
			flowCombinator.ConnectOutWithIn(WaterPreparation.MainFlow,
				DialyzingFluidPreparation.DialyzingFluidFlow);
			flowCombinator.ConnectOutWithIn(DialyzingFluidPreparation.DialyzingFluidFlow,
				BalanceChamber.ProducedDialysingFluid);
			flowCombinator.ConnectOutWithIn(BalanceChamber.StoredProducedDialysingFluid,
				SafetyBypass.MainFlow);
			flowCombinator.ConnectOutWithIn(SafetyBypass.MainFlow,
				ToDialyzer);
			flowCombinator.ConnectOutWithIns(
				FromDialyzer,
				new IFlowComponentUniqueIncoming<DialyzingFluid, Suction>[] {
					DialyzingUltraFiltrationPump.MainFlow,
					PumpToBalanceChamber.MainFlow
				});
			flowCombinator.ConnectOutWithIn(PumpToBalanceChamber.MainFlow,
				BalanceChamber.UsedDialysingFluid);
			flowCombinator.ConnectOutsWithIn(
				new IFlowComponentUniqueOutgoing<DialyzingFluid, Suction>[] {
					SafetyBypass.DrainFlow,
					BalanceChamber.StoredUsedDialysingFluid,
					DialyzingUltraFiltrationPump.MainFlow
				},
				DialyzingFluidDrain.MainFlow);

			BalanceChamber.AddFlows(flowCombinator);
		}
Пример #7
0
		public void AddFlows(DialyzingFluidFlowCombinator dialysingFluidFlowCombinator, BloodFlowCombinator bloodFlowCombinator)
		{
			//Dialysate
			DialyzingFluidDeliverySystem.AddFlows(dialysingFluidFlowCombinator);
			//Blood
			bloodFlowCombinator.ConnectOutWithIn(FromPatientArtery,
				ExtracorporealBloodCircuit.FromPatientArtery);
			ExtracorporealBloodCircuit.AddFlows(bloodFlowCombinator);
			bloodFlowCombinator.ConnectOutWithIn(ExtracorporealBloodCircuit.ToPatientVein,
				ToPatientVein);
			//Insert Stubs
			bloodFlowCombinator.ConnectOutWithIn(ExtracorporealBloodCircuit.ToDialyzer,
				Dialyzer.BloodFlow);
			bloodFlowCombinator.ConnectOutWithIn(Dialyzer.BloodFlow,
				ExtracorporealBloodCircuit.FromDialyzer);
			dialysingFluidFlowCombinator.ConnectOutWithIn(DialyzingFluidDeliverySystem.ToDialyzer,
				Dialyzer.DialyzingFluidFlow);
			dialysingFluidFlowCombinator.ConnectOutWithIn(Dialyzer.DialyzingFluidFlow,
				DialyzingFluidDeliverySystem.FromDialyzer);
		}
Пример #8
0
		public Model()
		{
			_dialysingFluidFlowCombinator = new DialyzingFluidFlowCombinator();
			_bloodFlowCombinator = new BloodFlowCombinator();

			HdMachine = new HdMachine
			{
			};

			Patient = new Patient
			{
			};

			HdMachine.AddFlows(_dialysingFluidFlowCombinator, _bloodFlowCombinator);

			_bloodFlowCombinator.ConnectOutWithIn(HdMachine.ToPatientVein, Patient.VeinFlow);
			_bloodFlowCombinator.ConnectOutWithIn(Patient.ArteryFlow,HdMachine.FromPatientArtery);
			_bloodFlowCombinator.CommitFlow();
			_dialysingFluidFlowCombinator.CommitFlow();
		}