private static double GetAlphaEff( QQFreeState freeState ) { Potential potential = (Potential)(new PrivateObject(freeState)).GetField("Potential_fm"); return(potential.AlphaEff); }
private static double GetMaxDeviationFromCoulombWave( QQFreeState freeState ) { return(GetMaxDeviation( freeState.Radius_fm, freeState.WaveFunction_fm, GetCoulombWaveArray(freeState))); }
private static Complex[] GetCoulombWaveArray( QQFreeState freeState ) { return(GetCoulombWaveArray( freeState.Param.QuantumNumberL, GetAlphaEff(freeState), freeState.Param.QuarkMass_MeV, freeState.WaveVector_fm, freeState.Radius_fm)); }
public void CoulombWaveL2E1000() { QQStateParam param = GetCommonFreeStateParam(); param.QuantumNumberL = 2; QQFreeState freeState = new QQFreeState(param); freeState.SearchEigenfunction(); double maxDeviation = GetMaxDeviationFromCoulombWave(freeState); Assert.IsTrue(maxDeviation < 1e-4); }
public void CalculateFreeWaveFunction() { PrepareJob("CalculateFreeWaveFunction", FreeWaveStatusTitles); try { QQFreeState freeState = new QQFreeState(GetQQStateParam()) { CalculationCancelToken = JobCancelToken, StatusValues = StatusValues }; freeState.SearchEigenfunction(); // quit here if process has been aborted if (JobCancelToken.IsCancellationRequested) { LogMessages.Clear(); LogMessages.Append(LogHeader + LogFooter); return; } UpdateOutputParameters(freeState); LogMessages.Clear(); LogMessages.AppendLine(LogHeader + "#" + Environment.NewLine + "#"); LogMessages.AppendLine("Temperature DebyeMass SoftScale BoundMass Energy GammaDamp "); LogMessages.AppendLine("(MeV) (MeV) (MeV) (MeV) (MeV) (MeV) "); LogMessages.AppendLine(); LogMessages.AppendLine(string.Format("{0,-12}{1,-12}{2,-12}{3,-12}{4,-12}{5,-12}", Temperature_MeV.ToString("G6"), DebyeMass_MeV.ToString("G6"), SoftScale_MeV.ToString("G6"), BoundMass_MeV.ToString("G6"), Energy_MeV.ToString("G6"), GammaDamp_MeV.ToString("G6"))); LogMessages.AppendLine(LogFooter); List <string> dataList = new List <string>(); dataList.Add(LogHeader + "#" + Environment.NewLine + "#"); dataList.AddRange(CreateWaveFunctionDataList(freeState)); File.WriteAllLines(YburnConfigFile.OutputPath + DataFileName, dataList); } catch { throw; } }