#include <stdarg.h>
#include "resultlib.h"
#include "results.h"
#include "rf_mesh_interface.h"
#include "StorageBuffer.h"
Go to the source code of this file.
Compounds | |
| class | rf_file_descriptor |
| class | RFFileSet |
| struct | rf_node_neighbors |
| struct | rf_node_neighborhood |
| class | rf_backend_impl |
| class | rf_backend_interface |
Typedefs | |
| typedef type_allocator<rf_file_descriptor, 1> | __RFFileSet |
| List of file descriptors is a set of files. | |
| typedef type_allocator<StorageBuffer, 1> | RFFileList |
| List of strings to make an expandable file list. | |
| typedef type_allocator<RFFileSet, 1> | RFFileSetList |
| List of file sets is a FileSetList. | |
| typedef type_allocator<RFEntityType, 6> | RFAvailList |
| List of entity types. More... | |
|
typedef collection<RF_SIGNED_LONG, less<RF_SIGNED_LONG>, 100> | RFIdList_ord |
| Ordered list of node/element identifiers. | |
|
typedef collection<int, less< int>, 15> | node_neighbors_t |
| Ordered list of vertex neighbors. | |
| typedef type_allocator<rf_node_neighbors, 15> | node_neighbor_list |
| List of all node neighborhoods. | |
| typedef RFDoubleList | rf_node_weights |
| List of node weights. More... | |
| typedef sharable_pointer<rf_backend_impl> | rf_backend_handle |
| Keep track of the implementation's so that ownership of the implementation can be shared between interfaces. | |
| typedef sharable_pointer<rf_backend_interface> | rf_interface_handle |
| Keep track of the implementation's so that ownership of the interface can be shared. | |
Functions | |
| template<classT> void | extract_datum (T& nextValue, RFPrecType prec, const void *values, size_t idx) |
| Template function to create to set the value given the void * list of return values, the precision of the values, and the index in the array to extract. More... | |
| template<classT> void | extract_datum (T& nextValue, RFPrecType prec, const void *values, int idx) |
| Invokes extract_datum(T&, RFPrecType, const void *, size_t). More... | |
| int | load_datum (RFPrecType t_prec, void *to_p, int t_idx, RFPrecType f_prec, const void *from_p, int f_idx) |
| Utility routine to load a destination array of specified precision at a specified index to a value from a source array of potentially different specified precision and index. More... | |
| template<classT> rf_backend_interface* | rfinterface_create (T *new_impl) |
| Template function to create an interface for an instance of rf_backend_impl and any of its subclasses. More... | |
Do not subclass rf_backend_interface. rf_backend_interface are all of the methods that must be implemented for standard result implementations. Subclass rfinfo_base (or its subclasses) to change the implementation of how mesh stored or operated on. Subclass rf_backend (or any of its subclasses) to create a new backend. Can also create a backend out of a subclass of rfinfo_base, but users should take in doing so.
Applications can either use rf_backend_interface::open() to read a result file, or create an empty domain or start from an empty implementation by calling rfmi_empty_impl() and operating on the interface.
A reader consists of up to total of eleven methods. The Five methods that are required are
o rf_backend_interface::user_external_close() to close file list.
o rf_backend_interface::user_parse_inputinit() to handle an input line from backend for external backends. It's job to parse the inputinit line and set any parameters required in the info structure or local object.
o rf_backend_interface::user_external_load() to open file list,
o rf_backend_interface::user_fileset_load() to open list of file sets.
o rf_backend_interface::user_external_grid() to load the nodes of the result,
o rf_backend_interface::user_external_scalar() to load a result.
The following two methods are used to define unstructured elements and families. If users are creating an unstructured mesh, the must define
o rf_backend_interface::user_external_elements() to load the unstructured elements.
Users can assign elements to families in this method. If that is the case, the default implementation of user_external_groups will suffice. The default implementation is a NOP routine that returns 1.
Alternatively, a user can choose to define families of elements by reimplementing
o rf_backend_interface::user_external_groups()
There are four additional optional methods
o rf_backend_interface::user_file_descriptor() to simply determine the information in the result file. Cannot truly implement until all readers converted because it means returning less information in inputinit Mostly to avoid creating the mesh. But might simply bypass by having Mom3D implement the interface to build mesh/elements and then nothing gained by not building the mesh.
o rf_backend_interface::user_external_postmesh() to do any post mesh creation reading of file. This might be the logical place to define results for the result library depending on your solver
o rf_backend_interface::user_external_iblank()
o rf_backend_interface::user_free_local() to free any local data that the user has defined.
Copyright (c) 2001-2002, ICEMCFD Engineering a subsidary of ANSYS INC all rights reserved.
|
|
List of entity types. Reserved for future use. |
|
|
List of node weights. Indexing by rf_node_neighbors. |
|
||||||||||
|
Template function to create to set the value given the void * list of return values, the precision of the values, and the index in the array to extract. Used mainly with results.
|
|
||||||||||
|
Invokes extract_datum(T&, RFPrecType, const void *, size_t). This version simply allows integers to be specified as indices. |
|
|
Utility routine to load a destination array of specified precision at a specified index to a value from a source array of potentially different specified precision and index.
|
|
||||
|
Template function to create an interface for an instance of rf_backend_impl and any of its subclasses.
|
1.2.0 written by Dimitri van Heesch,
© 1997-2000