public GenericCellGrower(IPlant plant, SimulationEnvironment environment, ICellBodySystemSolver systemSolver, IPlantSimulatorOptionsService optionsService)
 {
     this.plant          = plant;
     this.environment    = environment;
     this.systemSolver   = systemSolver;
     this.optionsService = optionsService;
 }
 public void Setup()
 {
     environment = new SimulationEnvironment {
         LightPosition = new Vertex(0, 10000, 0), Temperature = 22
     };
     plant                         = TestPlant.CreatePlant();
     cellFactory                   = new GenericCellFactory();
     optionsService                = PlantSimulatorOptionsHelper.CreateOptionsService();
     divider                       = new GenericCellDivider(cellFactory);
     helper                        = new GeometryHelper();
     cellSizer                     = new GenericCellSizer(helper, new LoggerAdapter <GenericCellSizer>(new NullLogger <GenericCellSizer>()));
     cellCollisionDetection        = new CellCollisionDetection(helper);
     bodySystemSolver              = new GenericCellBodySystemSolver(cellCollisionDetection, cellSizer);
     cellGrower                    = new GenericCellGrower(plant, environment, bodySystemSolver, optionsService);
     descriptorService             = new PlantDescriptorService();
     cellCreator                   = new HexagonCellCreator(cellFactory);
     gridCreator                   = new HexagonalCellGridFactory(cellCreator, CornCellTypeLocator.GetCornCellTypeLocator(), optionsService);
     plantPartCellCreator          = new PlantPartCellCreator(gridCreator);
     internodePartFactory          = new GenericInternodePartFactory(optionsService, gridCreator);
     stemPartFactory               = new GenericStemPartFactory(optionsService, internodePartFactory);
     petiolePartFactory            = new GenericPetiolePartFactory(cellFactory, optionsService);
     nodePartFactory               = new GenericNodePartFactory(optionsService, cellFactory, stemPartFactory, petiolePartFactory);
     internodePlantPartDevelopment = new InternodePartDevelopment(optionsService, nodePartFactory, cellGrower, descriptorService, internodePartFactory);
     rootFactory                   = new GenericRootPartFactory(optionsService, plantPartCellCreator);
     rootPlantPartDevelopment      = new RootPartDevelopment(optionsService, nodePartFactory, rootFactory, cellGrower, descriptorService);
     developer                     = new PlantPartDeveloper(internodePlantPartDevelopment, rootPlantPartDevelopment);
     sucroseCarrierCollection      =
         new SucroseCarrierCollection(
             new LoggerAdapter <SucroseCarrierCollection>(new NullLogger <SucroseCarrierCollection>()));
     sucroseTransporter     = new SucroseTransporter(cellCollisionDetection, helper, sucroseCarrierCollection, new LoggerAdapter <FluidTransporter <Sucrose> >(new NullLogger <FluidTransporter <Sucrose> >()));
     plantGrower            = new GenericPlantGrower(bodySystemSolver, developer, sucroseTransporter);
     runner                 = new GenericPlantRunner(plant, environment, plantGrower, new FluidsPlantCycle(plant, optionsService, sucroseCarrierCollection, new LoggerAdapter <FluidsPlantCycle>(new NullLogger <FluidsPlantCycle>())));
     RangeExtensions.Random = new Random(optionsService.Options.Simulation.RandomSeed);
 }
Exemplo n.º 3
0
 public FluidsPlantCycle(IPlant plant, IPlantSimulatorOptionsService optionsService,
                         ICarrierCollection <Sucrose> sucroseCarrierCollection, ILoggerAdapter <FluidsPlantCycle> logger)
 {
     this.plant                    = plant;
     this.optionsService           = optionsService;
     this.sucroseCarrierCollection = sucroseCarrierCollection;
     this.logger                   = logger;
     random = new Random(optionsService.Options.Simulation.RandomSeed);
 }
Exemplo n.º 4
0
 public SimulationRuntimeBroker(ILoggerAdapter <SimulationRuntimeBroker> logger,
                                ISimulatorEventHandler eventHandler,
                                IPlantSimulatorOptionsService optionsService,
                                IServiceProvider provider)
 {
     this.logger         = logger;
     this.eventHandler   = eventHandler;
     this.optionsService = optionsService;
     this.provider       = provider;
 }
 public GenericNodePartFactory(IPlantSimulatorOptionsService optionsService,
                               ICellFactory cellFactory,
                               IStemPartFactory stemFactory,
                               IPetiolePartFactory petioleFactory)
 {
     this.optionsService = optionsService;
     this.cellFactory    = cellFactory;
     this.stemFactory    = stemFactory;
     this.petioleFactory = petioleFactory;
     random = new Random(Options.Simulation.RandomSeed);
 }
 public InternodePartDevelopment(IPlantSimulatorOptionsService optionsService,
                                 INodePartFactory nodePartFactory,
                                 ICellGrower cellGrower,
                                 IPlantDescriptorService plantDescriptorService,
                                 IInternodePartFactory internodeFactory)
 {
     this.optionsService         = optionsService;
     this.nodePartFactory        = nodePartFactory;
     this.cellGrower             = cellGrower;
     this.plantDescriptorService = plantDescriptorService;
     this.internodeFactory       = internodeFactory;
 }
Exemplo n.º 7
0
 public RootPartDevelopment(IPlantSimulatorOptionsService optionsService,
                            INodePartFactory nodePartFactory,
                            IRootPartFactory rootFactory,
                            ICellGrower cellGrower,
                            IPlantDescriptorService plantDescriptorService)
 {
     this.optionsService         = optionsService;
     this.nodePartFactory        = nodePartFactory;
     this.rootFactory            = rootFactory;
     this.cellGrower             = cellGrower;
     this.plantDescriptorService = plantDescriptorService;
     random = new Random(optionsService.Options.Simulation.RandomSeed);
 }
 public GenericInterNodeCycle(IPlantPartCellCreator cellCreator, IPlantSimulatorOptionsService optionsService)
 {
     this.cellCreator    = cellCreator;
     this.optionsService = optionsService;
 }
Exemplo n.º 9
0
 public GenericInternodePartFactory(IPlantSimulatorOptionsService optionsService, ICellGridFactory cellGridFactory)
 {
     this.optionsService  = optionsService;
     this.cellGridFactory = cellGridFactory;
 }
 public GenericRootPartFactory(IPlantSimulatorOptionsService optionsService, IPlantPartCellCreator cellCreator)
 {
     this.optionsService = optionsService;
     this.cellCreator    = cellCreator;
 }
Exemplo n.º 11
0
 public HexagonalCellGridFactory(ISingularCellCreator cellCreator, ICellTypeLocator cellTypeLocator, IPlantSimulatorOptionsService optionsService)
 {
     this.cellCreator     = cellCreator;
     this.cellTypeLocator = cellTypeLocator;
     this.optionsService  = optionsService;
 }
Exemplo n.º 12
0
 public PlantSimulator(ILoggerAdapter <PlantSimulator> logger, IPlantSimulatorOptionsService optionsService, IPlantRunner plantRunner)
 {
     this.logger         = logger;
     this.optionsService = optionsService;
     this.plantRunner    = plantRunner;
 }
 public FluidsGenericCellGrower(IPlant plant, SimulationEnvironment environment,
                                ICellBodySystemSolver systemSolver, IPlantSimulatorOptionsService optionsService) : base(plant, environment,
                                                                                                                         systemSolver, optionsService)
 {
 }
Exemplo n.º 14
0
 public GenericPetiolePartFactory(ICellFactory cellCreator, IPlantSimulatorOptionsService optionsService)
 {
     this.cellCreator    = cellCreator;
     this.optionsService = optionsService;
 }
 public GenericStemPartFactory(IPlantSimulatorOptionsService optionsService, IInternodePartFactory internodePartFactory)
 {
     this.optionsService       = optionsService;
     this.internodePartFactory = internodePartFactory;
 }