private static Complex[] GetBackgroundZeta(IAnomaly anomaly, ISection1D <IsotropyLayer> section1D)
        {
            var zeta0 = new Complex[anomaly.Layers.Count];

            for (int k = 0; k < anomaly.Layers.Count; k++)
            {
                zeta0[k] = ModelUtils.FindCorrespondingBackgroundLayer(section1D, anomaly.Layers[k]).Zeta;
            }

            return(zeta0);
        }
Exemple #2
0
        private static Receiver[] CreateAnomalyReceivers(IAnomaly anomaly)
        {
            var receivers = new List <Receiver>();

            for (int i = 0; i < anomaly.Layers.Count; i++)
            {
                var al = anomaly.Layers[i];
                receivers.Add(Receiver.NewVolumetric(al.Depth, al.Thickness, i));
            }

            return(receivers.ToArray());
        }
Exemple #3
0
        private static Transmitter[] CreateAnomalyTransmitters(IAnomaly anomaly)
        {
            var transmitters = new List <Transmitter>();

            for (int i = 0; i < anomaly.Layers.Count; i++)
            {
                var al = anomaly.Layers[i];
                transmitters.Add(Transmitter.NewVolumetric(al.Depth, al.Thickness, i));
            }

            return(transmitters.ToArray());
        }
Exemple #4
0
        private static IEnumerable <Transceiver> CreateAnomalyToLevels(IAnomaly anomaly, decimal[] levels)
        {
            var receivers = new List <Receiver>();

            for (int i = 0; i < levels.Length; i++)
            {
                receivers.Add(Receiver.NewFlat(levels[i], i));
            }

            var transmitters = CreateAnomalyTransmitters(anomaly);

            var result =
                from rc in receivers
                from tr in transmitters
                select new Transceiver(tr, rc);

            return(result);
        }
Exemple #5
0
 public static Transceiver[] CreateAnomalyToAnomaly(IAnomaly anomaly)
 => Combine(CreateAnomalyReceivers(anomaly),
            CreateAnomalyTransmitters(anomaly));
Exemple #6
0
 public static Transceiver[] CreateAnomalyToObservation(IAnomaly anomaly, params ObservationSite[] obsSites)
 => Combine(CreateObservationReceivers(obsSites),
            CreateAnomalyTransmitters(anomaly));
Exemple #7
0
 public static Transceiver[] CreateSourceToAnomaly(IAnomaly anomaly, decimal thickness,
                                                   params SourceLayer[] srcLayers)
 => Combine(CreateAnomalyReceivers(anomaly),
            CreateSourceTransmitters(thickness, srcLayers));