Exemplo n.º 1
0
        /********************************************************************************************
        * Constructors
        ********************************************************************************************/

        protected PointChargeElectromagneticField(
            EMFCalculationMethod emfCalculationMethod,
            double pointChargeRapidity
            )
        {
            EMFCalculationMethod = emfCalculationMethod;

            PointChargeVelocity      = Math.Tanh(pointChargeRapidity);
            PointChargeLorentzFactor = Math.Cosh(pointChargeRapidity);
            PointChargeLorentzFactorTimesVelocity = Math.Sinh(pointChargeRapidity);
        }
        /********************************************************************************************
        * Constructors
        ********************************************************************************************/

        public NucleusElectromagneticField(
            EMFCalculationMethod emfCalculationMethod,
            double nucleusRapidity,
            Nucleus nucleus,
            int quadratureOrder
            )
        {
            PointChargeEMF = PointChargeElectromagneticField.Create(
                emfCalculationMethod, nucleusRapidity);

            Nucleus         = nucleus;
            NucleusVelocity = Math.Tanh(nucleusRapidity);
            QuadratureOrder = quadratureOrder;
        }
Exemplo n.º 3
0
        private double[,] CalculatePointChargeFields_NegativeRapidity(EMFCalculationMethod method)
        {
            PointChargeElectromagneticField emf = PointChargeElectromagneticField.Create(
                method, -PointChargeRapidity);

            double[,] fieldValues = new double[3, EffectiveTimes.Length];
            for (int i = 0; i < EffectiveTimes.Length; i++)
            {
                emf.CalculateElectromagneticField(
                    EffectiveTimes[i], RadialDistance, QGPConductivity,
                    out double azimuthalMagneticComponent,
                    out double longitudinalElectricComponent,
                    out double radialElectricComponent);

                fieldValues[0, i] = azimuthalMagneticComponent;
                fieldValues[1, i] = longitudinalElectricComponent;
                fieldValues[2, i] = radialElectricComponent;
            }

            return(fieldValues);
        }
Exemplo n.º 4
0
        /********************************************************************************************
        * Public static members, functions and properties
        ********************************************************************************************/

        public static PointChargeElectromagneticField Create(
            EMFCalculationMethod emfCalculationMethod,
            double pointChargeRapidity
            )
        {
            switch (emfCalculationMethod)
            {
            case EMFCalculationMethod.URLimitFourierSynthesis:
                return(new PointChargeElectromagneticField_URLimitFourierSynthesis(
                           emfCalculationMethod, pointChargeRapidity));

            case EMFCalculationMethod.DiffusionApproximation:
                return(new PointChargeElectromagneticField_DiffusionApproximation(
                           emfCalculationMethod, pointChargeRapidity));

            case EMFCalculationMethod.FreeSpace:
                return(new PointChargeElectromagneticField_FreeSpace(
                           emfCalculationMethod, pointChargeRapidity));

            default:
                throw new Exception("Invalid Calculation Method.");
            }
        }
Exemplo n.º 5
0
            /****************************************************************************************
            * Constructors
            ****************************************************************************************/

            public PointChargeElectromagneticField_FreeSpace(
                EMFCalculationMethod emfCalculationMethod,
                double pointChargeRapidity
                ) : base(emfCalculationMethod, pointChargeRapidity)
            {
            }
Exemplo n.º 6
0
            /****************************************************************************************
            * Constructors
            ****************************************************************************************/

            public PointChargeElectromagneticField_DiffusionApproximation(
                EMFCalculationMethod emfCalculationMethod,
                double pointChargeRapidity
                ) : base(emfCalculationMethod, pointChargeRapidity)
            {
            }
Exemplo n.º 7
0
            /****************************************************************************************
            * Constructors
            ****************************************************************************************/

            public PointChargeElectromagneticField_URLimitFourierSynthesis(
                EMFCalculationMethod emfCalculationMethod,
                double pointChargeRapidity
                ) : base(emfCalculationMethod, pointChargeRapidity)
            {
            }