00001 /* boundary conditions 00002 */ 00003 00004 #ifndef boundaryConditions_hh 00005 #define boundaryConditions_hh 00006 00007 #include <map> 00008 #include "semantics.hh" 00009 00010 namespace concepts { 00011 00012 // forward declarations 00013 class Attribute; // defined in geometry/connector.hh 00014 class Boundary; // defined in formula/boundary.hh 00015 00016 // **************************************************** BoundaryConditions ** 00017 00036 class BoundaryConditions : public Semantics<Boundary> { 00037 00038 public: 00041 BoundaryConditions(); 00042 00044 BoundaryConditions(const BoundaryConditions& bnd); 00045 00051 virtual ~BoundaryConditions(); 00052 00061 virtual Boundary operator() (Attribute attrib) const; 00062 00072 void add(const Attribute& attrib, const Boundary& bcObject); 00073 protected: 00074 virtual std::ostream& info(std::ostream& os) const; 00075 private: 00079 mutable std::map<uint, Boundary> boundaries_; 00080 }; 00081 00082 } // namespace concepts 00083 00084 #endif // boundaryConditions_hh