From 83945b31e7ac3bbf2e09495062caaa2bebf84528 Mon Sep 17 00:00:00 2001 From: Zhang Xin Date: Fri, 30 Jun 2023 16:37:01 +0800 Subject: [PATCH] nan error: star straylight --- StrayLight.cpp | 33 ++++++++++++++++++++++++++++++++- libstraylight.dylib | Bin 112152 -> 112152 bytes 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/StrayLight.cpp b/StrayLight.cpp index 2fad908..8c7f0df 100755 --- a/StrayLight.cpp +++ b/StrayLight.cpp @@ -334,6 +334,12 @@ void PointSource(double ju, double sat[3], double ob[3], double py[3], double E[ double E1[7] = { 0, 0, 0, 0, 0, 0, 0 }; double pstsun, pstmoon; + if (isfinite(faisun) == false){ + faisun = 0; + } + if (isfinite(thetasun) == false){ + thetasun = 0; + } if (thetasun <= PI / 2) { pstsun = pow(10, PST(faisun, thetasun)); @@ -342,6 +348,12 @@ void PointSource(double ju, double sat[3], double ob[3], double py[3], double E[ { pstsun = 0; } + if (isfinite(faimoon) == false){ + faimoon = 0; + } + if (isfinite(thetamoon) == false){ + thetamoon = 0; + } if (thetamoon <= PI / 2 && thetamoon >= PI / 90) { pstmoon = pow(10, PST(faimoon, thetamoon)); @@ -359,7 +371,8 @@ void PointSource(double ju, double sat[3], double ob[3], double py[3], double E[ { E1[i] = Es_fil[i]*pstsun*Sheltersun*SunRatio[i] + Em_fil[i]*pstmoon*moonphase*Sheltermoon*MoonRatio[i]; } - + + for (int i = 0; i < 2; i++) { ephcom.getPosVel(Planets[i], ju, pos, vel); @@ -369,6 +382,12 @@ void PointSource(double ju, double sat[3], double ob[3], double py[3], double E[ continue; } double faip = OB.Azimuth(planet, PY); + if (isfinite(faip) == false){ + faip = 0; + } + if (isfinite(thetap) == false){ + thetap = 0; + } double pstp = pow(10, PST(faip, thetap)); double shelterp = ShelterEarth(SAT, planet)*ShelterPlate(planet, OB, PY, fai, op, sum); double planetphase = sun.Angle(planet) / PI; @@ -387,6 +406,12 @@ void PointSource(double ju, double sat[3], double ob[3], double py[3], double E[ continue; } double faip = OB.Azimuth(planet, PY); + if (isfinite(faip) == false){ + faip = 0; + } + if (isfinite(thetap) == false){ + thetap = 0; + } double pstp = pow(10, PST(faip, thetap)); double shelterp = ShelterEarth(SAT, planet)*ShelterPlate(planet, OB, PY, fai, op, sum); double proportion = pstp*shelterp/planet.Square(); @@ -418,6 +443,12 @@ void PointSource(double ju, double sat[3], double ob[3], double py[3], double E[ if (thetaPI / 90) { double faistar = OB.Azimuth(star, PY); + if (isfinite(faistar) == false){ + faistar = 0; + } + if (isfinite(theta) == false){ + theta = 0; + } double pst = pow(10, PST(faistar, theta)); double shelter = ShelterEarth(SAT, star)*ShelterPlate(star,OB,PY,fai,op,sum);//太费时间了 double proportion = pst*shelter; diff --git a/libstraylight.dylib b/libstraylight.dylib index cf21e89dd40060dae994ca6bc920eab150144e0d..a9e78e040ae0363a679b8cd9abe8f4ca3e3218f0 100755 GIT binary patch delta 5967 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 I0Ux0GA00)?kpKVy -- GitLab