// **************************************************************************
 // Clone methods (begin)
 // **************************************************************************
 @Override
 public Object clone() {
   ObjectiveFunction clone = (ObjectiveFunction) super.clone();
   clone.values = new DoubleArrayList1D(this.values.toArray());
   clone.wellDynamicData = new ArrayList<ObjectiveFunctionData>(this.wellDynamicData.size());
   for (Iterator iter = wellDynamicData.iterator(); iter.hasNext(); ) {
     ObjectiveFunctionData element = (ObjectiveFunctionData) iter.next();
     clone.wellDynamicData.add((ObjectiveFunctionData) element.clone());
   }
   return clone;
 }
 @Override
 public Object cloneForCopy() {
   ObjectiveFunction clone = (ObjectiveFunction) this.clone();
   clone.setName("CopyOf" + this.getName());
   return clone;
 }