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); }
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); };