Basic properties of all models in DuMux More...
Basic properties of all models in DuMux
Files | |
file | grid.hh |
Defines a type tags and some fundamental grid-related properties. | |
file | common/properties/model.hh |
Defines a type tags and some fundamental properties for all models. | |
file | propertysystem.hh |
The Dumux property system, traits with inheritance. | |
file | propertysystemmacros.hh |
Provides the magic behind the DuMuX property system. | |
Macros | |
#define | DUMUX_GET_HEAD_(Arg1, ...) Arg1 |
Define a new type tag. More... | |
#define | INHERITS_FROM(...) __VA_ARGS__ |
Syntactic sugar for NEW_TYPE_TAG. More... | |
#define | NEW_PROP_TAG(PTagName) |
Define a property tag. More... | |
#define | SET_PROP(EffTypeTagName, PropTagName) |
Set a property for a specific type tag. More... | |
#define | SET_INT_PROP(EffTypeTagName, PropTagName, ...) |
Set a property to a simple constant integer value. More... | |
#define | SET_BOOL_PROP(EffTypeTagName, PropTagName, ...) |
Set a property to a simple constant boolean value. More... | |
#define | SET_TYPE_PROP(EffTypeTagName, PropTagName, ...) |
Set a property which defines a type. More... | |
#define | SET_SCALAR_PROP(EffTypeTagName, PropTagName, ...) |
Set a property to a simple constant scalar value. More... | |
#define | SET_STRING_PROP(EffTypeTagName, PropTagName, ...) |
Set a property to a simple constant string value. More... | |
#define DUMUX_GET_HEAD_ | ( | Arg1, | |
... | |||
) | Arg1 |
Define a new type tag.
A type tag can inherit the properties defined on up to five parent type tags. Examples:
#define INHERITS_FROM | ( | ... | ) | __VA_ARGS__ |
Syntactic sugar for NEW_TYPE_TAG.
See the documentation for NEW_TYPE_TAG.
#define NEW_PROP_TAG | ( | PTagName | ) |
Define a property tag.
A property tag is the unique identifier for a property. It may only be declared once in your program. There is also no hierarchy of property tags as for type tags.
Examples:
#define SET_BOOL_PROP | ( | EffTypeTagName, | |
PropTagName, | |||
... | |||
) |
Set a property to a simple constant boolean value.
The constant can be accessed by the 'value' attribute.
#define SET_INT_PROP | ( | EffTypeTagName, | |
PropTagName, | |||
... | |||
) |
Set a property to a simple constant integer value.
The constant can be accessed by the 'value' attribute.
#define SET_PROP | ( | EffTypeTagName, | |
PropTagName | |||
) |
Set a property for a specific type tag.
After this macro, you must to specify a complete body of a class template, including the trailing semicolon. If you need to retrieve another property within the class body, you can use TypeTag as the argument for the type tag for the GET_PROP macro.
Example:
};
#define SET_SCALAR_PROP | ( | EffTypeTagName, | |
PropTagName, | |||
... | |||
) |
Set a property to a simple constant scalar value.
The constant can be accessed by the 'value' attribute. In order to use this macro, the property tag "Scalar" needs to be defined for the real type tag.
#define SET_STRING_PROP | ( | EffTypeTagName, | |
PropTagName, | |||
... | |||
) |
Set a property to a simple constant string value.
The constant can be accessed by the 'value' attribute and is of type std::string.
#define SET_TYPE_PROP | ( | EffTypeTagName, | |
PropTagName, | |||
... | |||
) |
Set a property which defines a type.
The type can be accessed by the 'type' attribute.