Exemplo n.º 1
0
        public PressureOutletRCR(BoundaryCondition BC, GetBetaFunction getElsticBeta, double _R1, double _R2, double _C)
            : base(BC.core_node, BC.current_time)
        {
            // Windkessel params, R2 is parallel to C //
            R1 = _R1;
            R2 = _R2;
            C  = _C;
            ////////////////////////////////////////////

            //tx_ij - i - time moment, j - space point, 1 - current moment (core node), 0 -previous moment (previus point)/
            U_tx_10 = 0;
            U_tx_01 = 0;
            P_tx_10 = GlobalDefs.DIASTOLIC_PRESSURE;
            P_tx_01 = GlobalDefs.DIASTOLIC_PRESSURE;
            P_tx_11 = GlobalDefs.DIASTOLIC_PRESSURE;
            A_tx_01 = core_node.lumen_sq_0;
            A_tx_10 = core_node.lumen_sq_0;
            Q_t_1   = 0;
            Q_t_0   = 0;
            ///////////////////////////////////////////

            beta_1        = GlobalDefs.getBoileauBeta(core_node.radius, core_node.elasticity) / core_node.lumen_sq_0;
            chrt_function = delegate(double A_tx_11)
            {
                double chrt_frw_right = Q_t_1 / A_tx_11 + 4 * Math.Pow(A_tx_11, 0.25f) * Math.Sqrt(beta_1 / 2.0f / GlobalDefs.BLOOD_DENSITY);
                return(chrt_frw_left - chrt_frw_right);
            };

            DefineSign();
        }
Exemplo n.º 2
0
        public void setRad(float _rad, float _elasticity)
        {
            lumen_sq_0 = (double)Math.PI * _rad * _rad;
            radius     = _rad;
            double beta = GlobalDefs.getBoileauBeta(_rad, _elasticity);

            lumen_sq = lumen_sq_0;
        }
Exemplo n.º 3
0
        public VascularNode(int _id, Vector1 _position, double _rad, double _elasticity, int _nodetype)
        {
            radius     = (float)_rad;
            id         = _id;
            position   = _position;
            neighbours = new List <VascularNode>();
            lumen_sq_0 = (double)Math.PI * _rad * _rad;

            double beta = GlobalDefs.getBoileauBeta(_rad, _elasticity);

            lumen_sq   = lumen_sq_0;
            pressure   = GlobalDefs.DIASTOLIC_PRESSURE;
            velocity   = 0;
            elasticity = _elasticity;
            nodetype   = _nodetype;
        }
Exemplo n.º 4
0
        public WaveTransmissive(BoundaryCondition BC, GetBetaFunction getElsticBeta)
            : base(BC.core_node, BC.current_time)
        {
            //tx_ij - i - time moment, j - space point, 1 - current moment (core node), 0 -previous moment (previus point)/
            Q_tx_10 = 0;
            Q_tx_01 = 0;
            P_tx_10 = GlobalDefs.DIASTOLIC_PRESSURE;
            P_tx_01 = GlobalDefs.DIASTOLIC_PRESSURE;
            P_tx_11 = GlobalDefs.DIASTOLIC_PRESSURE;
            Q_t_1   = 0;
            Q_t_1   = 0;
            ///////////////////////////////////////////

            beta_1 = GlobalDefs.getBoileauBeta(core_node.radius, core_node.elasticity) / core_node.lumen_sq_0;

            chrt_function = delegate(double A_tx_11)
            {
                double chrt_frw_right = Q_t_1 / A_tx_11 + 4 * Math.Pow(A_tx_11, 0.25f) * Math.Sqrt(beta_1 / 2.0f / GlobalDefs.BLOOD_DENSITY);
                return(chrt_frw_left - chrt_frw_right);
            };


            DefineSign();
        }