protected override ComplexVector CalculateNormalFieldE(ObservationSite site) { var impedance = PlaneWaveCalculator.CalculateFieldE(Model, site.Z); if (CurrentSource == Polarization.X) { return(new ComplexVector(impedance, 0, 0)); } if (CurrentSource == Polarization.Y) { return(new ComplexVector(0, impedance, 0)); } throw new InvalidOperationException(); }
protected override AnomalyCurrent CalculateNormalFieldE(ObservationLevel level) { var normalField = AnomalyCurrent.AllocateNewOneLayer(MemoryProvider, Model); Clear(normalField); var mtImpedanceOnObs = PlaneWaveCalculator.CalculateFieldE(Model, level.Z); if (CurrentSource == Polarization.X) { var la = GetLayerAccessorX(normalField, 0); SetValue(la, mtImpedanceOnObs); } if (CurrentSource == Polarization.Y) { var la = GetLayerAccessorY(normalField, 0); SetValue(la, mtImpedanceOnObs); } return(normalField); }
private static Complex CalculateEFieldForPlaneWaveOnAnomalies(OmegaModel model, IAnomalyLayer layer) { var reciever = Receiver.NewVolumetric(layer.Depth, layer.Thickness); return(PlaneWaveCalculator.CalculateFieldE(model, reciever.GetWorkingDepth(), layer.Thickness)); }