|
@@ -275,6 +275,7 @@ namespace Lemma {
|
275
|
275
|
lays = Earth->GetLayerAtThisDepth(Location[2]);
|
276
|
276
|
layr = Earth->GetLayerAtThisDepth(Receivers->GetLocation(irec)[2]);
|
277
|
277
|
|
|
278
|
+ // TODO, avoid smart pointer here maybe?
|
278
|
279
|
KernelManager = KernelEM1DManager::NewSP();
|
279
|
280
|
|
280
|
281
|
KernelManager->SetEarth(Earth);
|
|
@@ -955,8 +956,9 @@ namespace Lemma {
|
955
|
956
|
}
|
956
|
957
|
break;
|
957
|
958
|
case H:
|
958
|
|
- f(5) = Hankel->Zgauss(5, TM, 0, rho, wavef, KernelManager->GetRAWKernel(ik[5]));
|
959
|
|
- f(6) = Hankel->Zgauss(6, TM, 1, rho, wavef, KernelManager->GetRAWKernel(ik[6]));
|
|
959
|
+ // TI - Comparisons with Amira show slight better agreement when neglecting these grounding terms
|
|
960
|
+ f(5) = 0; //Hankel->Zgauss(5, TM, 0, rho, wavef, KernelManager->GetRAWKernel(ik[5]));
|
|
961
|
+ f(6) = 0; //Hankel->Zgauss(6, TM, 1, rho, wavef, KernelManager->GetRAWKernel(ik[6]));
|
960
|
962
|
f(7) = Hankel->Zgauss(7, TE, 0, rho, wavef, KernelManager->GetRAWKernel(ik[7]))*KernelManager->GetRAWKernel(ik[7])->GetZs()/KernelManager->GetRAWKernel(ik[7])->GetZm();
|
961
|
963
|
f(8) = Hankel->Zgauss(8, TE, 1, rho, wavef, KernelManager->GetRAWKernel(ik[8]))*KernelManager->GetRAWKernel(ik[8])->GetZs()/KernelManager->GetRAWKernel(ik[8])->GetZm();
|
962
|
964
|
f(9) = Hankel->Zgauss(9, TE, 1, rho, wavef, KernelManager->GetRAWKernel(ik[9]))*KernelManager->GetRAWKernel(ik[9])->GetZs()/KernelManager->GetRAWKernel(ik[9])->GetZm();
|
|
@@ -965,14 +967,12 @@ namespace Lemma {
|
965
|
967
|
Pol[1]*QPI*(sps*f(5)+c2p*f(6)/rho-cps*f(7)+c2p*f(8)/rho)*Moment,
|
966
|
968
|
Pol[1]*QPI*scp*(-f(5)+(Real)(2.)*f(6)/rho-f(7)+(Real)(2.)*f(8)/rho)*Moment,
|
967
|
969
|
-Pol[1]*QPI*cp*f(9)*Moment );
|
968
|
|
- // Analytic whole space solution could go here
|
969
|
970
|
}
|
970
|
971
|
if (std::abs(Pol[0]) > 0) {
|
971
|
972
|
this->Receivers->AppendHfield(ifreq, irec,
|
972
|
973
|
Pol[0]*Moment*QPI*scp*(f(5)-(Real)(2.)*f(6)/rho+f(7)-(Real)(2.)*f(8)/rho),
|
973
|
974
|
Pol[0]*Moment*QPI*(-cps*f(5)+c2p*f(6)/rho+sps*f(7)+c2p*f(8)/rho),
|
974
|
975
|
Pol[0]*Moment*QPI*sp*f(9) );
|
975
|
|
- // Analytic whole space solution
|
976
|
976
|
}
|
977
|
977
|
break;
|
978
|
978
|
|
|
@@ -982,8 +982,8 @@ namespace Lemma {
|
982
|
982
|
f(4) = 0;
|
983
|
983
|
f(2) = Hankel->Zgauss(2, TE, 0, rho, wavef, KernelManager->GetRAWKernel(ik[2])) * KernelManager->GetRAWKernel(0)->GetZs();
|
984
|
984
|
f(3) = Hankel->Zgauss(3, TE, 1, rho, wavef, KernelManager->GetRAWKernel(ik[3])) * KernelManager->GetRAWKernel(1)->GetZs();
|
985
|
|
- f(5) = Hankel->Zgauss(5, TM, 0, rho, wavef, KernelManager->GetRAWKernel(ik[5]));
|
986
|
|
- f(6) = Hankel->Zgauss(6, TM, 1, rho, wavef, KernelManager->GetRAWKernel(ik[6]));
|
|
985
|
+ f(5) = 0;//Hankel->Zgauss(5, TM, 0, rho, wavef, KernelManager->GetRAWKernel(ik[5]));
|
|
986
|
+ f(6) = 0;//Hankel->Zgauss(6, TM, 1, rho, wavef, KernelManager->GetRAWKernel(ik[6]));
|
987
|
987
|
f(7) = Hankel->Zgauss(7, TE, 0, rho, wavef, KernelManager->GetRAWKernel(ik[7]))*KernelManager->GetRAWKernel(ik[7])->GetZs()/KernelManager->GetRAWKernel(ik[7])->GetZm();
|
988
|
988
|
f(8) = Hankel->Zgauss(8, TE, 1, rho, wavef, KernelManager->GetRAWKernel(ik[8]))*KernelManager->GetRAWKernel(ik[8])->GetZs()/KernelManager->GetRAWKernel(ik[8])->GetZm();
|
989
|
989
|
f(9) = Hankel->Zgauss(9, TE, 1, rho, wavef, KernelManager->GetRAWKernel(ik[9]))*KernelManager->GetRAWKernel(ik[9])->GetZs()/KernelManager->GetRAWKernel(ik[9])->GetZm();
|