192 return diagonalizer->source()->integrateField(field, layer, TE, TH,
193 [
z1,
z2, d, gamma, E0, Ed, H0, Hd](
size_t i,
size_t j) -> std::pair<dcomplex,dcomplex> {
194 const dcomplex
igm =
I * (gamma[i] -
conj(gamma[j])),
igp =
I * (gamma[i] +
conj(gamma[j]));
195 const dcomplex
igid =
I * gamma[i] * d,
igjd =
I *
conj(gamma[j]) * d;
200 E += E0[i] *
conj(E0[j]) * val; H += H0[i] *
conj(H0[j]) * val;
204 E += E0[i] *
conj(Ed[j]) * val; H += H0[i] *
conj(Hd[j]) * val;
208 E += Ed[i] *
conj(E0[j]) * val; H += Hd[i] *
conj(H0[j]) * val;
212 E += Ed[i] *
conj(Ed[j]) * val; H += Hd[i] *
conj(Hd[j]) * val;
215 return std::make_pair(f *
E, f * H);