Exemple #1
0
        /// <summary>
        /// Setup behavior
        /// </summary>
        /// <param name="context">Provider</param>
        public override void Bind(Simulation simulation, BindingContext context)
        {
            base.Bind(simulation, context);

            // Get parameter sets
            _mbp = context.GetParameterSet <ModelBaseParameters>("model");
            _bp  = context.GetParameterSet <BaseParameters>();

            // Get behaviors
            _load = context.GetBehavior <BiasingBehavior>();
            _temp = context.GetBehavior <TemperatureBehavior>();

            if (context is ComponentBindingContext cc)
            {
                _drainNode  = cc.Pins[0];
                _gateNode   = cc.Pins[1];
                _sourceNode = cc.Pins[2];
                _bulkNode   = cc.Pins[3];
            }

            _state = ((FrequencySimulation)simulation).ComplexState;
            var solver = _state.Solver;

            _drainNodePrime  = _load.DrainNodePrime;
            _sourceNodePrime = _load.SourceNodePrime;
            _qNode           = _load.QNode;

            DdPtr   = solver.GetMatrixElement(_drainNode, _drainNode);
            GgPtr   = solver.GetMatrixElement(_gateNode, _gateNode);
            SsPtr   = solver.GetMatrixElement(_sourceNode, _sourceNode);
            BbPtr   = solver.GetMatrixElement(_bulkNode, _bulkNode);
            DPdpPtr = solver.GetMatrixElement(_drainNodePrime, _drainNodePrime);
            SPspPtr = solver.GetMatrixElement(_sourceNodePrime, _sourceNodePrime);
            DdpPtr  = solver.GetMatrixElement(_drainNode, _drainNodePrime);
            GbPtr   = solver.GetMatrixElement(_gateNode, _bulkNode);
            GdpPtr  = solver.GetMatrixElement(_gateNode, _drainNodePrime);
            GspPtr  = solver.GetMatrixElement(_gateNode, _sourceNodePrime);
            SspPtr  = solver.GetMatrixElement(_sourceNode, _sourceNodePrime);
            BdpPtr  = solver.GetMatrixElement(_bulkNode, _drainNodePrime);
            BspPtr  = solver.GetMatrixElement(_bulkNode, _sourceNodePrime);
            DPspPtr = solver.GetMatrixElement(_drainNodePrime, _sourceNodePrime);
            DPdPtr  = solver.GetMatrixElement(_drainNodePrime, _drainNode);
            BgPtr   = solver.GetMatrixElement(_bulkNode, _gateNode);
            DPgPtr  = solver.GetMatrixElement(_drainNodePrime, _gateNode);
            SPgPtr  = solver.GetMatrixElement(_sourceNodePrime, _gateNode);
            SPsPtr  = solver.GetMatrixElement(_sourceNodePrime, _sourceNode);
            DPbPtr  = solver.GetMatrixElement(_drainNodePrime, _bulkNode);
            SPbPtr  = solver.GetMatrixElement(_sourceNodePrime, _bulkNode);
            SPdpPtr = solver.GetMatrixElement(_sourceNodePrime, _drainNodePrime);
            QqPtr   = solver.GetMatrixElement(_qNode, _qNode);
            QdpPtr  = solver.GetMatrixElement(_qNode, _drainNodePrime);
            QspPtr  = solver.GetMatrixElement(_qNode, _sourceNodePrime);
            QgPtr   = solver.GetMatrixElement(_qNode, _gateNode);
            QbPtr   = solver.GetMatrixElement(_qNode, _bulkNode);
            DPqPtr  = solver.GetMatrixElement(_drainNodePrime, _qNode);
            SPqPtr  = solver.GetMatrixElement(_sourceNodePrime, _qNode);
            GqPtr   = solver.GetMatrixElement(_gateNode, _qNode);
            BqPtr   = solver.GetMatrixElement(_bulkNode, _qNode);
        }
Exemple #2
0
        /// <summary>
        /// Setup the behavior
        /// </summary>
        public override void Bind(Simulation simulation, BindingContext context)
        {
            base.Bind(simulation, context);
            _load = context.GetBehavior <BiasingBehavior>();
            _load.TranBehavior = this;

            var method = ((TimeSimulation)simulation).Method;

            Qb = method.CreateDerivative();
            Qg = method.CreateDerivative();
            Qd = method.CreateDerivative();
        }
Exemple #3
0
        /// <summary>
        /// Setup behavior
        /// </summary>
        /// <param name="context"></param>
        public override void Bind(Simulation simulation, BindingContext context)
        {
            base.Bind(simulation, context);

            // Get parameter sets
            _bp  = context.GetParameterSet <BaseParameters>();
            _mbp = context.GetParameterSet <ModelBaseParameters>();

            // Get behaviors
            _temp = context.GetBehavior <TemperatureBehavior>();
            _load = context.GetBehavior <BiasingBehavior>();

            if (context is ComponentBindingContext cc)
            {
                _drainNode  = cc.Pins[0];
                _gateNode   = cc.Pins[1];
                _sourceNode = cc.Pins[2];
                _bulkNode   = cc.Pins[3];
            }
            _drainNodePrime  = _load.DrainNodePrime;
            _sourceNodePrime = _load.SourceNodePrime;
        }