Esempio n. 1
0
        protected override ComplexVector CalculateNormalFieldH(ObservationSite site)
        {
            var admitance = PlaneWaveCalculator.CalculateFieldH(Model, site.Z);

            if (CurrentSource == Polarization.X)
            {
                return(new ComplexVector(0, admitance, 0));
            }
            if (CurrentSource == Polarization.Y)
            {
                return(new ComplexVector(-admitance, 0, 0));
            }
            throw new InvalidOperationException();
        }
Esempio n. 2
0
        protected override AnomalyCurrent CalculateNormalFieldH(ObservationLevel level)
        {
            var normalField = AnomalyCurrent.AllocateNewOneLayer(MemoryProvider, Model);

            Clear(normalField);
            var mtAdmitanceOnObs = PlaneWaveCalculator.CalculateFieldH(Model, level.Z);

            if (CurrentSource == Polarization.X)
            {
                var la = GetLayerAccessorY(normalField, 0);
                SetValue(la, mtAdmitanceOnObs);
            }

            if (CurrentSource == Polarization.Y)
            {
                var la = GetLayerAccessorX(normalField, 0);
                SetValue(la, -mtAdmitanceOnObs);
            }

            return(normalField);
        }