void
SetupMeshCompleteAction::act()
{
  if (!_mesh)
    mooseError("No mesh file was supplied and no generation block was provided");

  if (_current_task == "execute_mesh_modifiers")
  {
    _app.executeMeshModifiers();
  }
  else if (_current_task == "uniform_refine_mesh")
  {
    /**
     * If possible we'd like to refine the mesh here before the equation systems
     * are setup to avoid doing expensive projections. If however we are doing a
     * file based restart and we need uniform refinements, we'll have to postpone
     * those refinements until after the solution has been read in.
     */
    if (_app.setFileRestart() == false && _app.isRecovering() == false)
    {
      Adaptivity::uniformRefine(_mesh.get());

      if (_displaced_mesh)
        Adaptivity::uniformRefine(_displaced_mesh.get());
    }
  }
  else
  {
    // Prepare the mesh (may occur multiple times)
    completeSetup(_mesh.get());

    if (_displaced_mesh)
      completeSetup(_displaced_mesh.get());
  }
}
StoreCentralAtomsVessel::StoreCentralAtomsVessel( const vesselbase::VesselOptions& da ):
StoreDataVessel(da),
tmpdf(3)
{
  mycolv=dynamic_cast<MultiColvarBase*>( getAction() );
  plumed_assert( mycolv ); completeSetup( mycolv->getCentralAtomElementIndex(), 3 );
}
StoreValueAndWeightVessel::StoreValueAndWeightVessel( const VesselOptions& da):
StoreDataVessel(da)
{
  completeSetup( 0, 2 );
}