KellyTypeAdapt::KellyTypeAdapt(Hermes::vector< Space* > spaces_,
                               Hermes::vector< ProjNormType > norms_,
                               bool ignore_visited_segments_,
                               Hermes::vector<interface_estimator_scaling_fn_t> interface_scaling_fns_)
  : Adapt(spaces_, norms_)
{
  error_estimators_surf.reserve(num);
  error_estimators_vol.reserve(num);

  if (interface_scaling_fns_.size() == 0)
  {
    interface_scaling_fns_.reserve(num);
    for (int i = 0; i < num; i++)
      interface_scaling_fns_.push_back(scale_by_element_diameter);
  }
  use_aposteriori_interface_scaling = true;
  interface_scaling_fns = interface_scaling_fns_;
  interface_scaling_const = boundary_scaling_const = volumetric_scaling_const = 1.0;
  ignore_visited_segments = ignore_visited_segments_;

  element_markers_conversion = spaces_[0]->get_mesh()->element_markers_conversion;
  boundary_markers_conversion = spaces_[0]->get_mesh()->boundary_markers_conversion;
}