//================================================================
        //the following function generates diffusivity rechtangles(Elements)
        public List <FRechtangle> DsGenerator(float[] domain, int nx, int nz)
        {
            List <FRechtangle> List = new List <FRechtangle>();

            if (domain.GetLength(0) != 4 || nx < 1 || nz < 1)
            {
                MessageBox.Show("Parameter error in DsGenerator");
            }
            else
            {
                int   elementcount  = nx * nz;
                float elementlength = (domain[1] - domain[0]) / nx;
                float elementhigh   = (domain[3] - domain[2]) / nz;
                //MessageBox.Show(elementlength.ToString() + "\r\n" + elementhigh.ToString());
                //string str=null;
                for (int i = 0; i < elementcount; i++)
                {
                    int row = i / nx; //show the row where D(i) in;
                    int col = i % nx; //show the column where D(i) in;

                    FRechtangle fr = new FRechtangle(domain[0] + col * elementlength, domain[0] + (col + 1) * elementlength,
                                                     domain[3] - (row + 1) * elementhigh, domain[3] - row * elementhigh);
                    fr.Name = i.ToString();
                    List.Add(fr);
                }
                //MessageBox.Show(str);
            }
            return(List);
        }
        public List <FRechtangle> DsGenerator(float[] domain, int nx, int nz)
        {
            List <FRechtangle> List = new List <FRechtangle>();
            int   elementcount      = nx * nz;
            float elementlength     = (domain[1] - domain[0]) / nx;
            float elementheight     = (domain[3] - domain[2]) / nz;

            for (int i = 0; i < elementcount; i++)
            {
                int         row = i / nx; //show the row where D(i) in;
                int         col = i % nx; //show the column where D(i) in;
                FRechtangle fr  = new FRechtangle(domain[0] + col * elementlength, domain[0] + (col + 1) * elementlength,
                                                  domain[3] - (row + 1) * elementheight, domain[3] - row * elementheight);
                fr.Name = i.ToString();
                List.Add(fr);
            }
            return(List);
        }