Пример #1
0
        private AbstractMutationStrategy DetachDepthMutationStrategy(Grid2DDomain domain)
        {
            double range      = MaxDetachDepth(domain) / 2.0;
            double resolution = 1.0;

            return(PowerLawMutationStrategy.Create(range, resolution));
        }
Пример #2
0
        private AbstractMutationStrategy MaxHeaveMutationStrategy(Grid2DDomain domain)
        {
            double range      = MaxMaxHeave(domain) / 2.0;
            double resolution = 1.0f;

            return(PowerLawMutationStrategy.Create(range, resolution));
        }
Пример #3
0
        private AbstractMutationStrategy YMutationStrategy(Grid2DDomain domain)
        {
            double range      = (domain.Max.Y - domain.Min.Y) / 2.0; // Half model width
            double resolution = 1.0;

            return(PowerLawMutationStrategy.Create(range, resolution));
        }
Пример #4
0
        private AbstractMutationStrategy RhoMutationStrategy(Grid2DDomain domain)
        {
            double r = (domain.Max - domain.Min).Magnitude / 2.0; // Half model diagonal
            double k = 9.0;                                       // ~ 1 metre

            return(PowerLawMutationStrategy.Create(r, k));
        }
Пример #5
0
        private AbstractMutationStrategy DipMutationStrategy(Grid2DDomain domain)
        {
            // Should have ~1° resolution
            double range      = (maxFaultDip - minFaultDip) / 2.0;
            double resolution = 1.0;

            return(PowerLawMutationStrategy.Create(range, resolution));
        }
Пример #6
0
        private double k;      // Mutation precision - related to smallest delta

        #region Construction

        // Memoizing constructor
        public static PowerLawMutationStrategy Create(double range, double resolution)
        {
            // TODO: This method may require synchronisation for the static instances
            Pair <double, double> key = new Pair <double, double>(range, resolution);

            if (instances.ContainsKey(key))
            {
                return(instances[key]);
            }
            PowerLawMutationStrategy instance = new PowerLawMutationStrategy(range, resolution);

            instances.Add(key, instance);
            return(instance);
        }
Пример #7
0
 private AbstractMutationStrategy PhiMutationStrategy(Grid2DDomain domain)
 {
     return(PowerLawMutationStrategy.Create(tipTangentAngle, 1.0));    // 1° resolution
 }
Пример #8
0
 private AbstractMutationStrategy ThrowMutationStrategy(Grid2DDomain domain)
 {
     return(PowerLawMutationStrategy.Create(50.0, 9.0));
 }
Пример #9
0
 private AbstractMutationStrategy ThetaMutationStrategy(Grid2DDomain domain)
 {
     // Half-circle range, with 1° resolution
     return(PowerLawMutationStrategy.Create(180.0, 7.49f));
 }