示例#1
0
        //constructors
        public Task_CellBody(int id, TimeSpan runLength, CellBody body, DateTime start) //tested
        {
            Console.WriteLine("Task_CellBody " + id + " is created.");

            this.id        = id;
            this.runLength = runLength;
            this.body      = body;
            this.start     = start;
        }
示例#2
0
        //constructors
        public Neuron(int cellBodyDecayFrequency,
                      int cellBodyRestoreIncrement,
                      TimeSpan neuronSecondaryMessengerWindow,
                      int neuronFrequencyTrigger,
                      int numDendritesToAddInGrowthEvent,
                      int[] growthEventDendriteTypesList,

                      int dendriteDecayFrequency,
                      int dendriteProductionFrequency,
                      int dendriteRestoreIncrement,
                      int dendriteNumSynapsesToAddInGrowthEvent,
                      TimeSpan dendriteSecondaryMessengerWindow,
                      int dendriteSecondaryMessengerFrequencyTrigger,
                      int numStartingSynapsesPerDendrite,
                      int dendriteSignificantVoltageChange,

                      int numStartingDendrites,
                      int[] startingDendriteTypesList)
        {
            nextDendriteId = 0;
            state          = 0;
            dendrites      = new ConcurrentDictionary <int, Dendrite>();

            body      = new CellBody(DateTime.Now, cellBodyDecayFrequency, cellBodyRestoreIncrement);
            messenger = new SecondaryMessenger(DateTime.Now, neuronFrequencyTrigger, neuronSecondaryMessengerWindow);
            this.numDendritesToAddInGrowthEvent = numDendritesToAddInGrowthEvent;
            this.growthEventDendriteTypesList   = growthEventDendriteTypesList;

            //individual dendrite characteristics
            this.d_DecayFrequency                     = dendriteDecayFrequency;
            this.d_RestoreIncrement                   = dendriteRestoreIncrement;
            this.d_ProductionFrequency                = dendriteProductionFrequency;
            this.d_NumSynapsesToAddInGrowthEvent      = dendriteNumSynapsesToAddInGrowthEvent;
            this.d_SecondaryMessengerWindow           = dendriteSecondaryMessengerWindow;
            this.d_SecondaryMessengerFrequencyTrigger = dendriteSecondaryMessengerFrequencyTrigger;
            this.d_NumStartingSynapsesPerDendrite     = numStartingSynapsesPerDendrite;
            this.d_SignificantVoltageChange           = dendriteSignificantVoltageChange;


            //initialize dendrites
            AddDendrites(numStartingDendrites, startingDendriteTypesList);

            //add listener for ActionPotential event
            body.ActionPotentialEvent += ReceiveActionPotentialEvent;
        }