![]() |
Modules | |
Arrays | |
Arrays are simple multi-dimensional indexable data containers. | |
Engines | |
Engine related classes/files. | |
Evaluator | |
The evaluators present different ways to operate on Arrays and Fields. | |
Fields | |
Fields as opposed to Arrays are compound objects out of possibly multiple sub-fields spreading data over multiple centering points per cell and/or to multiple materials. | |
Particles | |
Particle support concentrates on PIC (Particle In Cell) like operation which means particle interaction is done via Fields. | |
Primitive objects (Vector, Matrix, Tensor) | |
Tiny classes - Vector, TinyMatrix and Tensor. |
Note that for complex objects like Fields and Arrays placed inside structures the compiler will generate default copy constructors and assignment operators that usually violate the principle of least surprise in that they will invoke the objects assignment operator which will cause a PETE expression to be evaluated and this may lead to cryptic compiler error messages for for example IndexFunction engine objects. To work around this you need to explicitly provide copy constructors and assignment operators that use obj.initialize() instead of an assignment. This will catch you if you are using IndexFunction like objects, such as Stencils and FieldStencils. For writable objects be prepared to get assertion failures because of uninitialized objects created by a default constructors are later initialized by default copy/assignment.