93#include "b2ppconfig.h"
97typedef struct _object PyObject;
104inline std::ostream& operator<<(std::ostream& o,
const Module& m);
111 Module(
const std::string& name_, Module* parent_,
const char* doc_ =
nullptr);
114 std::string get_name()
const;
119 std::string get_full_name(
char separator =
'.')
const;
135 void set_object_type(
136 ObjectType* object_type,
const std::string& name_,
137 const StringList& aliases = StringList(),
const std::string& suffix =
"");
149 ObjectType* get_object_type(
const std::string& name_)
const;
157 Module* get_module(
const std::string& name_)
const;
159 PyObject* init_python_module();
161 void print_list(std::ostream& out,
const std::string& prefix =
"")
const;
163 const std::map<std::string, ObjectType*>& get_object_types_list()
const {
164 return object_types_list;
168 const std::string name;
170 typedef std::map<std::string, ObjectType*> object_types_list_t;
171 object_types_list_t object_types_list;
172 typedef std::map<std::string, Module*> modules_list_t;
173 modules_list_t modules_list;
175 PyObject* python_module;
182 Link() : initialised(false) {}
184 object_types_list_t object_types_list;
185 modules_list_t modules_list;
187 typedef std::map<Module*, Link> module_link_t;
188 static module_link_t* module_link_p;
190 static std::string get_python_name(
const std::string& name_);
193inline std::ostream& operator<<(std::ostream& o,
const Module& m) {
return o << m.get_full_name(); }
195extern Module b2000_module;
Contains the base classes for implementing Finite Elements.
Definition b2boundary_condition.H:32