docs: public void EBEsElementsTopology(DoubleSolution solution) throws JMetalException{
      // asignaciÃƒÂ³n de las variables para cada grupo
      // y determinaciÃƒÂ³n de las caracterÃƒÂ­sticas mecÃƒÂ¡nicas
  
      double[] x = new double[solution.getNumberOfVariables()];
      for (int i = 0; i < solution.getNumberOfVariables(); i++) {
        x[i] = solution.getVariableValue(i) ;
      }
  
      double x1, x2, x3, x4;
  
      int var=0;
      for (int gr=0; gr<numberOfGroupElements_;gr++){
  
        var+=Groups_[gr][VARIABLES];
  
        if (Groups_[gr][SHAPE]==CIRCLE){
          x1=x[var-1]; // diameter
          EBEsTransversalSectionCircular(gr, x1);
        }
        else if (Groups_[gr][SHAPE]==HOLE_CIRCLE){
          x1=x[var-2]; // diameter
          x2=x[var-1]; // tickness plate
          EBEsTransversalSectionHoleCircular(gr, x1, x2);
        }
        else if (Groups_[gr][SHAPE]==RECTANGLE){
          x1=x[var-2]; // higth (y axis)
          x2=x[var-1]; // witdth (z axis)
          EBEsTransversalSectionRectangle(gr, x1, x2);
        }
        else if (Groups_[gr][SHAPE]==HOLE_RECTANGLE){
          x1=x[var-4]; // height (y axis)
          x2=x[var-3]; // width (z axis)
          x3=x[var-2]; // horizontal plate tickness (up and down)
          x4=x[var-1]; // vertical plate tickness (left and right)
          EBEsTransversalSectionHoleRectangle(gr, x1, x2, x3, x4);
        }
        else if (Groups_[gr][SHAPE]==I_SINGLE){
  
          //EbesMutation(gr, 0, x);
  
          x1=x[var-4]; // height (y axis)
          x2=x[var-3]; // width (Z axis)
          x3=x[var-2]; // plate tickness heigth and down
          x4=x[var-1]; // vertical plate tickness (centre)
          EBEsTransversalSection_I_Single(gr, x1, x2, x3, x4);
        }
        else if (Groups_[gr][SHAPE]==I_DOUBLE){
          x1=x[var-4]; // height (y axis)
          x2=x[var-3]; // width (Z axis)
          x3=x[var-2]; // tickness heigth plate
          x4=x[var-1]; // tickness width plate
          EBEsTransversalSection_I_Double(gr, x1, x2, x3, x4);
        }
        else if (Groups_[gr][SHAPE]==H_SINGLE){
          x1=x[var-4]; // height (y axis)
          x2=x[var-3]; // width (Z axis)
          x3=x[var-2]; // tickness heigth plate
          x4=x[var-1]; // tickness width plate
          EBEsTransversalSection_H_Single(gr, x1, x2, x3, x4);
        }
        else if (Groups_[gr][SHAPE]==H_DOUBLE){
          x1=x[var-4]; // height (y axis)
          x2=x[var-3]; // width (Z axis)
          x3=x[var-2]; // tickness heigth plate
          x4=x[var-1]; // tickness width plate
          EBEsTransversalSection_H_Double(gr, x1, x2, x3, x4);
        }
        else if (Groups_[gr][SHAPE]==L_SINGLE){
          x1=x[var-4]; // height (y axis)
          x2=x[var-3]; // width (Z axis)
          x3=x[var-2]; // tickness heigth plate
          x4=x[var-1]; // tickness width plate
          EBEsTransversalSection_L_Single(gr, x1, x2, x3, x4);
        }
        else if (Groups_[gr][SHAPE]==L_DOUBLE){
          x1=x[var-4]; // height (y axis)
          x2=x[var-3]; // width (Z axis)
          x3=x[var-2]; // tickness heigth plate
          x4=x[var-1]; // tickness width plate
          EBEsTransversalSection_L_Double(gr, x1, x2, x3, x4);
        }
        else if (Groups_[gr][SHAPE]==T_SINGLE){
          x1=x[var-4]; // height (y axis)
          x2=x[var-3]; // width (Z axis)
          x3=x[var-2]; // tickness heigth plate
          x4=x[var-1]; // tickness width plate
          EBEsTransversalSection_T_Single(gr, x1, x2, x3, x4);
        }
        else if (Groups_[gr][SHAPE]==T_DOUBLE){
          x1=x[var-4]; // height (y axis)
          x2=x[var-3]; // width (Z axis)
          x3=x[var-2]; // tickness heigth plate
          x4=x[var-1]; // tickness width plate
          EBEsTransversalSection_T_Double(gr, x1, x2, x3, x4);
        }
        else{
          System.out.println("Error in VARIABLES: transversal section not considerated for: " + gr + " group") ;
        }
      }// next gr
  
    }