void BasalGravitationalWaterPotential<EvalT, Traits>::
evaluateFields (typename Traits::EvalData workset)
{
  if (stokes)
  {
    const Albany::SideSetList& ssList = *(workset.sideSets);
    Albany::SideSetList::const_iterator it_ss = ssList.find(basalSideName);

    if (it_ss==ssList.end())
      return;

    const std::vector<Albany::SideStruct>& sideSet = it_ss->second;
    std::vector<Albany::SideStruct>::const_iterator iter_s;

    for (const auto& it : sideSet)
    {
      // Get the local data of side and cell
      const int cell = it.elem_LID;
      const int side = it.side_local_id;

      for (int node=0; node<numNodes; ++node)
      {
        phi_0 (cell,side,node) = rho_w*g*(z_s(cell,side,node) - H(cell,side,node));
      }
    }
  }
  else
  {
    for (int cell=0; cell<workset.numCells; ++cell)
    {
      for (int node=0; node<numNodes; ++node)
      {
        phi_0 (cell,node) = rho_w*g*(z_s(cell,node) - H(cell,node));
      }
    }
  }
}
void EffectivePressure<EvalT, Traits>::evaluateFields (typename Traits::EvalData workset)
{
  if (has_phi)
  {
    for (int cell=0; cell < workset.numCells; ++cell)
    {
      for (int node=0; node < numNodes; ++node)
      {
        N (cell,node) = rho_w*g*(z_s(cell,node)-H(cell,node)) + rho_i*g*H(cell,node) - phi(cell,node);
      }
    }
  }
  else
  {
  }
}