public void Initialize(int num_layer)
        {
            Clear();
            float hk0    = (float)Math.Round(20.0f / num_layer, 0);
            float ss     = 0.0001f;
            float sy     = 0.1f;
            float wetdry = 0.1f;

            for (int i = 0; i < num_layer; i++)
            {
                LayerGroup layer = new LayerGroup()
                {
                    Name       = "Layer " + (i + 1),
                    CHANI      = CHANI.Define,
                    LAYAVG     = LAYAVG.Harmonic_Mean,
                    LayerIndex = i,
                    LAYTYP     = LAYTYP.Convertable,
                    LAYVKA     = LAYVKA.Ratio_of_horizontal_to_vertical_hydraulic_conductivity,
                    LAYWET     = LAYWET.Active,
                    HK         = 20 - i * hk0,
                    VKA        = 100,
                    SS         = ss,
                    SY         = sy,
                    WETDRY     = wetdry
                };
                _Layers.Add(layer);
            }
            Initialized = true;
        }
 public void OnItemChanged(LayerGroup lg, string prop)
 {
     if (LayerGroupChanged != null)
     {
         LayerGroupChanged(this, lg, prop);
     }
 }
        public void Add(int pre_index)
        {
            int        index = pre_index + 1;
            LayerGroup layer = new LayerGroup()
            {
                Name       = "Layer " + (index + 1),
                CHANI      = CHANI.Define,
                LAYAVG     = LAYAVG.Harmonic_Mean,
                LayerIndex = index,
                LAYTYP     = LAYTYP.Convertable,
                LAYVKA     = LAYVKA.Ratio_of_horizontal_to_vertical_hydraulic_conductivity,
                LAYWET     = LAYWET.Active
            };

            _Layers.Insert(index, layer);
            Refresh();
        }
 public void Remove(LayerGroup layer)
 {
     _Layers.Remove(layer);
     Refresh();
 }
Esempio n. 5
0
        private void LayerGroupManager_ItemChanged(object sender, LayerGroup e, string propname)
        {
            var grid  = this.Grid as RegularGrid;
            int layer = e.LayerIndex;
            int ncell = grid.ActiveCellCount;

            switch (propname)
            {
            case "LAYTYP":
                LAYTYP[layer] = (int)e.LAYTYP;
                if (LAYTYP[layer] == 1)
                {
                    LAYWET[layer] = 1;
                }
                else
                {
                    LAYWET[layer] = 0;
                }
                break;

            case "LAYAVG":
                LAYAVG[layer] = (int)e.LAYAVG;
                break;

            case "CHANI":
                CHANI[layer] = (int)e.CHANI;
                break;

            case "LAYVKA":
                LAYVKA[layer] = (int)e.LAYVKA;
                break;

            case "LAYWET":
                LAYWET[layer] = (int)e.LAYWET;
                break;

            case "HK":
                for (int i = 0; i < ncell; i++)
                {
                    HK[layer, 0, i]   = (float)e.HK;
                    HANI[layer, 0, i] = 1;
                }
                break;

            case "VKA":
                for (int i = 0; i < ncell; i++)
                {
                    VKA[layer, 0, i] = (float)e.VKA;
                }
                break;

            case "SS":
                for (int i = 0; i < ncell; i++)
                {
                    SS[layer, 0, i] = (float)e.SS;
                }
                break;

            case "SY":
                if (LAYTYP[layer] != 0)
                {
                    for (int i = 0; i < ncell; i++)
                    {
                        SY[layer, 0, i] = (float)e.SY;
                    }
                }
                break;

            case "WETDRY":
                if (LAYTYP[layer] != 0 && LAYWET[layer] != 0)
                {
                    for (int i = 0; i < ncell; i++)
                    {
                        WETDRY[layer, 0, i] = (float)e.WETDRY;
                    }
                }
                break;
            }
        }