示例#1
0
        protected static void AddSurfacePlotFunctionLists(
            List <List <double> > dataList,
            List <double> abscissaeX,
            List <double> abscissaeY,
            SurfacePlotFunction function
            )
        {
            foreach (double valueX in abscissaeX)
            {
                PlotFunction functionY = valueY => function(valueX, valueY);

                List <double> fieldValues = GetPlotFunctionValueList(abscissaeY, functionY);
                fieldValues.Insert(0, valueX);
                dataList.Add(fieldValues);
            }

            dataList.Insert(0, abscissaeY);
            dataList[0].Insert(0, double.NaN);
        }
示例#2
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);
            };