public QQStateParam Clone()
        {
            QQStateParam param = new QQStateParam
            {
                Nullable_AccuracyAlpha            = Nullable_AccuracyAlpha,
                Nullable_AccuracyWaveFunction     = Nullable_AccuracyWaveFunction,
                Nullable_AggressivenessAlpha      = Nullable_AggressivenessAlpha,
                Nullable_AggressivenessEnergy     = Nullable_AggressivenessEnergy,
                Nullable_ColorState               = Nullable_ColorState,
                Nullable_Energy_MeV               = Nullable_Energy_MeV,
                Nullable_GammaDamp_MeV            = Nullable_GammaDamp_MeV,
                Nullable_MaxRadius_fm             = Nullable_MaxRadius_fm,
                Nullable_MaxShootingTrials        = Nullable_MaxShootingTrials,
                Nullable_PotentialType            = Nullable_PotentialType,
                Nullable_QuantumNumberL           = Nullable_QuantumNumberL,
                Nullable_QuarkMass_MeV            = Nullable_QuarkMass_MeV,
                Nullable_RunningCouplingType      = Nullable_RunningCouplingType,
                Nullable_Sigma_MeV                = Nullable_Sigma_MeV,
                Nullable_SoftScale_MeV            = Nullable_SoftScale_MeV,
                Nullable_SpinCouplingStrength_MeV = Nullable_SpinCouplingStrength_MeV,
                Nullable_SpinCouplingRange_fm     = Nullable_SpinCouplingRange_fm,
                Nullable_SpinState                = Nullable_SpinState,
                Nullable_StepNumber               = Nullable_StepNumber,
                Nullable_Tchem_MeV                = Nullable_Tchem_MeV,
                Nullable_Tcrit_MeV                = Nullable_Tcrit_MeV,
                Nullable_Temperature_MeV          = Nullable_Temperature_MeV
            };

            return(param);
        }
Exemple #2
0
        private QQStateParam GetQQStateParam()
        {
            QQStateParam param = new QQStateParam
            {
                AccuracyAlpha            = AccuracyAlpha,
                AccuracyWaveFunction     = AccuracyWaveFunction,
                AggressivenessAlpha      = AggressivenessAlpha,
                AggressivenessEnergy     = AggressivenessEnergy,
                ColorState               = ColorState,
                Energy_MeV               = Energy_MeV,
                GammaDamp_MeV            = GammaDamp_MeV,
                MaxRadius_fm             = MaxRadius_fm,
                MaxShootingTrials        = MaxShootingTrials,
                PotentialType            = PotentialType,
                QuantumNumberL           = QuantumNumberL,
                QuarkMass_MeV            = QuarkMass_MeV,
                RunningCouplingType      = RunningCouplingType,
                Sigma_MeV                = Sigma_MeV2,
                SoftScale_MeV            = SoftScale_MeV,
                SpinCouplingRange_fm     = SpinCouplingRange_fm,
                SpinCouplingStrength_MeV = SpinCouplingStrength_MeV,
                SpinState                = SpinState,
                StepNumber               = StepNumber,
                Tchem_MeV                = Tchem_MeV,
                Tcrit_MeV                = Tcrit_MeV,
                Temperature_MeV          = Temperature_MeV
            };

            return(param);
        }
        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);
        }
        private static QQBoundState CreateBoundState_HydrogenN2L1()
        {
            QQStateParam param = GetCommonBoundStateParam();

            param.AccuracyWaveFunction = 1e-8;
            param.AggressivenessAlpha  = 0.7;
            param.AggressivenessEnergy = 0.02;
            param.Energy_MeV           = -341.205311278384;
            param.PotentialType        = PotentialType.Tzero_NoString;
            param.QuantumNumberL       = 1;
            param.SoftScale_MeV        = 639.940673158918;
            param.StepNumber           = 16000;

            return(new QQBoundState(param, 2));
        }
        private static QQBoundState CreateBoundState_HydrogenN1L0()
        {
            QQStateParam param = GetCommonBoundStateParam();

            param.AccuracyWaveFunction = 1e-9;
            param.AggressivenessAlpha  = 0.7;
            param.AggressivenessEnergy = 40;
            param.Energy_MeV           = -390.02077042504118;
            param.PotentialType        = PotentialType.Tzero_NoString;
            param.QuantumNumberL       = 0;
            param.SoftScale_MeV        = 1368.3765139843001;
            param.StepNumber           = 30000;

            return(new QQBoundState(param, 1));
        }
        private static QQStateParam GetCommonBoundStateParam()
        {
            QQStateParam param = new QQStateParam
            {
                AccuracyAlpha       = 1e-6,
                ColorState          = ColorState.Singlet,
                GammaDamp_MeV       = 0,
                MaxRadius_fm        = 10,
                MaxShootingTrials   = 5000,
                QuarkMass_MeV       = 4800.90885593666,
                RunningCouplingType = RunningCouplingType.LOperturbative_Cutoff3,
                Tchem_MeV           = 120,
                Tcrit_MeV           = 160,
                Temperature_MeV     = 0
            };

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

        private static QQStateParam GetCommonFreeStateParam()
        {
            QQStateParam param = new QQStateParam
            {
                AccuracyAlpha        = 1e-6,
                AccuracyWaveFunction = 1e-9,
                AggressivenessAlpha  = 0.5,
                ColorState           = ColorState.Octet,
                Energy_MeV           = 1000,
                GammaDamp_MeV        = 0,
                MaxRadius_fm         = 10,
                PotentialType        = PotentialType.Tzero_NoString,
                QuarkMass_MeV        = 4800.90885593666,
                RunningCouplingType  = RunningCouplingType.LOperturbative_Cutoff3,
                SoftScale_MeV        = 1420,
                StepNumber           = 20000,
                Tchem_MeV            = 120,
                Tcrit_MeV            = 160,
                Temperature_MeV      = 0
            };

            return(param);
        }
        public void FindQuarkMass()
        {
            QQStateParam param = GetCommonBoundStateParam();

            param.AccuracyWaveFunction = 1e-9;
            param.AggressivenessAlpha  = 0.5;
            param.AggressivenessEnergy = 40;
            param.Energy_MeV           = -141.517335648066;
            param.PotentialType        = PotentialType.Tzero;
            param.QuantumNumberL       = 0;
            param.Sigma_MeV            = 192000;
            param.SoftScale_MeV        = 1542.07788957569;
            param.StepNumber           = 20000;

            QQBoundState boundState = new QQBoundState(param, 1);

            double MassY1S_MeV = 9460.3;

            boundState.SearchQuarkMass(MassY1S_MeV);

            Assert.IsTrue(
                Math.Abs(boundState.Param.QuarkMass_MeV / param.QuarkMass_MeV - 1.0) < 1e-6);
            Assert.IsTrue(Math.Abs(boundState.BoundMass_MeV / MassY1S_MeV - 1.0) < 1e-6);
        }