158    virtual void set_model(
Model& model) = 0;
 
  160    virtual size_t get_number_of_case() 
const = 0;
 
  164        virtual ~CaseIterator() {}
 
  165        virtual Case* next() = 0;
 
  166        virtual size_t get_number_of_case() 
const = 0;
 
  169    using case_iterator = std::unique_ptr<CaseIterator>;
 
  171    virtual case_iterator get_case_iterator() = 0;
 
  173    class CaseListIterator {
 
  175        virtual ~CaseListIterator() {}
 
  177        virtual size_t get_number_of_case_list() 
const = 0;
 
  180    using case_list_iterator = std::unique_ptr<CaseListIterator>;
 
  190        case_iterator i = get_case_iterator();
 
  192        while ((c = i->next()) != 
nullptr) {
 
  193            if (c->
get_id() == case_id) { 
return c; }
 
 
  199        value_constant_at_null_dof,
 
  200        d_value_d_dof_constant_at_null_dof,
 
  201        value_and_d_value_d_dof_constant_at_null_dof
 
  204    virtual case_list_iterator get_case_sublist_iterator(
const Domain* domain, SortType st) = 0;
 
  206    virtual case_list_iterator get_case_sublist_iterator(
 
  207          const NaturalBoundaryCondition* nbc, SortType st) = 0;
 
  209    virtual case_list_iterator get_case_sublist_iterator(
 
  210          const EssentialBoundaryCondition* ebc, SortType st) = 0;
 
  212    virtual case_list_iterator get_case_sublist_iterator(
 
  213          const ModelReductionBoundaryCondition* mrbc, SortType st) = 0;
 
  215    virtual case_list_iterator get_case_sublist_iterator(
 
  216          const InitialCondition* ic, SortType st) = 0;
 
  218    using type_t = ObjectTypeIncomplete<CaseList>;