コード例 #1
0
        private static double GetAlphaEff(
            QQFreeState freeState
            )
        {
            Potential potential = (Potential)(new PrivateObject(freeState)).GetField("Potential_fm");

            return(potential.AlphaEff);
        }
コード例 #2
0
 private static double GetMaxDeviationFromCoulombWave(
     QQFreeState freeState
     )
 {
     return(GetMaxDeviation(
                freeState.Radius_fm, freeState.WaveFunction_fm,
                GetCoulombWaveArray(freeState)));
 }
コード例 #3
0
 private static Complex[] GetCoulombWaveArray(
     QQFreeState freeState
     )
 {
     return(GetCoulombWaveArray(
                freeState.Param.QuantumNumberL, GetAlphaEff(freeState),
                freeState.Param.QuarkMass_MeV, freeState.WaveVector_fm, freeState.Radius_fm));
 }
コード例 #4
0
        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);
        }
コード例 #5
0
        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;
            }
        }