Ejemplo n.º 1
0
        private List <List <double> > CreatePointChargeAndNucleusFieldComponentsRadialDistanceDataList()
        {
            List <List <double> > dataList = new List <List <double> >();

            List <double> radialDistanceValues = GetLogarithmicAbscissaList(0.1, 100, Samples);

            dataList.Add(radialDistanceValues);

            Nucleus.CreateNucleusPair(CreateFireballParam(), out Nucleus nucleusA, out Nucleus nucleusB);

            PointChargeElectromagneticField pcEMF = PointChargeElectromagneticField.Create(
                EMFCalculationMethod, ParticleRapidity);
            NucleusElectromagneticField nucEMF = new NucleusElectromagneticField(
                EMFCalculationMethod, ParticleRapidity, nucleusA, EMFQuadratureOrder);

            PlotFunction[] plotFunctions =
            {
                r => EMFNormalization * pcEMF.CalculateElectromagneticField(EMFComponent.AzimuthalMagneticComponent,    FixedTime, r,                    QGPConductivity_MeV),
                r => EMFNormalization * pcEMF.CalculateElectromagneticField(EMFComponent.LongitudinalElectricComponent, FixedTime, r,                    QGPConductivity_MeV),
                r => EMFNormalization * pcEMF.CalculateElectromagneticField(EMFComponent.RadialElectricComponent,       FixedTime, r,                    QGPConductivity_MeV),
                r => EMFNormalization * nucEMF.CalculateAzimuthalMagneticComponent(FixedTime,                           r,         QGPConductivity_MeV),
                r => EMFNormalization * nucEMF.CalculateLongitudinalElectricComponent(FixedTime,                        r,         QGPConductivity_MeV),
                r => EMFNormalization * nucEMF.CalculateRadialElectricComponent(FixedTime,                              r,         QGPConductivity_MeV)
            };

            foreach (PlotFunction function in plotFunctions)
            {
                AddPlotFunctionLists(dataList, radialDistanceValues, function);
            }

            return(dataList);
        }
        /********************************************************************************************
        * Private/protected members, functions and properties
        ********************************************************************************************/

        private SpatialVector[] CalculateElectricFieldValues()
        {
            FireballParam param = CreateFireballParam();

            Nucleus.CreateNucleusPair(param, out Nucleus nucleusA, out Nucleus nucleusB);

            NucleusElectromagneticField emf = new NucleusElectromagneticField(
                param.EMFCalculationMethod,
                param.BeamRapidity,
                nucleusA,
                param.EMFQuadratureOrder);

            SpatialVector[] fieldValues = new SpatialVector[Positions.Length];
            for (int i = 0; i < Positions.Length; i++)
            {
                fieldValues[i] = emf.CalculateElectricField(
                    Time, Positions[i].X, Positions[i].Y, Positions[i].Z, QGPConductivity);
            }

            return(fieldValues);
        }
Ejemplo n.º 3
0
        private List <List <double> > CreateNucleusElectricFieldStrengthInLCFDataList()
        {
            List <List <double> > dataList = new List <List <double> >();

            FireballParam param = CreateFireballParam();

            List <double> rapidityValues       = GetLinearAbscissaList(-8, 8, Samples);
            List <double> radialDistanceValues = GetLinearAbscissaList(0, 25, Samples);

            SurfacePlotFunction function = (rapidity, radialDistance) =>
            {
                Nucleus.CreateNucleusPair(param, out Nucleus nucleusA, out Nucleus nucleusB);

                NucleusElectromagneticField emf = new NucleusElectromagneticField(
                    param.EMFCalculationMethod,
                    ParticleRapidity,
                    nucleusA,
                    EMFQuadratureOrder);

                return(EMFNormalization * emf.CalculateElectricFieldInLCF(
                           FixedTime, radialDistance, 0, rapidity, QGPConductivity_MeV).Norm);
            };