|
@@ -770,6 +770,7 @@ namespace Lemma {
|
770
|
770
|
}
|
771
|
771
|
|
772
|
772
|
void DipoleSource::UpdateFields( const int& ifreq, HankelTransform* Hankel, const Real& wavef) {
|
|
773
|
+
|
773
|
774
|
Vector3r Pol = Phat;
|
774
|
775
|
|
775
|
776
|
switch (Type) {
|
|
@@ -813,7 +814,7 @@ namespace Lemma {
|
813
|
814
|
0. );
|
814
|
815
|
} // Fields to calculate Z polarity Electric dipole
|
815
|
816
|
}
|
816
|
|
- if (std::abs(Pol[1]) > 0 || std::abs(Pol[0]) > 0) { // y dipole
|
|
817
|
+ if (std::abs(Pol[1]) > 0 || std::abs(Pol[0]) > 0) { // x or y dipole
|
817
|
818
|
switch(FieldsToCalculate) {
|
818
|
819
|
case E:
|
819
|
820
|
f(2) = Hankel->Zgauss(2, TE, 0, rho, wavef, KernelManager->GetRAWKernel(ik[2])) * KernelManager->GetRAWKernel(ik[2])->GetZs();
|
|
@@ -823,9 +824,9 @@ namespace Lemma {
|
823
|
824
|
f(4) = Hankel->Zgauss(4, TM, 1, rho, wavef, KernelManager->GetRAWKernel(ik[4])) / KernelManager->GetRAWKernel(ik[4])->GetYm();
|
824
|
825
|
if (std::abs(Pol[1]) > 0) {
|
825
|
826
|
this->Receivers->AppendEfield(ifreq, irec,
|
826
|
|
- Pol[1]*QPI*scp*((f(0)-(Real)(2.)*f(1)/rho)+(f(2)-(Real)(2.)*f(3)/rho))*Moment,
|
827
|
|
- Pol[1]*QPI*((sps*f(0)+c2p*f(1)/rho)-(cps*f(2)-c2p*f(3)/rho))*Moment,
|
828
|
|
- Pol[1]*QPI*sp*f(4)*Moment);
|
|
827
|
+ Pol[1]*Moment*QPI*scp*((f(0)-(Real)(2.)*f(1)/rho)+(f(2)-(Real)(2.)*f(3)/rho)),
|
|
828
|
+ Pol[1]*Moment*QPI*((sps*f(0)+c2p*f(1)/rho)-(cps*f(2)-c2p*f(3)/rho)),
|
|
829
|
+ Pol[1]*Moment*QPI*sp*f(4));
|
829
|
830
|
}
|
830
|
831
|
if (std::abs(Pol[0]) > 0) {
|
831
|
832
|
this->Receivers->AppendEfield(ifreq, irec,
|