Skip to main content

optiSLang C API of FMOPSolver Library 2025 R1

fmop_solver

Last update: 10.02.2025
Go to the documentation of this file.
1 
2 #ifndef DYNARDO_FMOP_H
3  #define DYNARDO_FMOP_H
4 
5 #include "sos_capi_common.h"
6 
10 
30 
31 #ifdef __cplusplus
32 extern "C" {
33 #endif
34 
42 #ifdef DYNARDO_FMOP_DLL_EXPORTS
43  typedef struct FMOP_Database* fmop_db_handle_t;
44 #else
45  typedef void* fmop_db_handle_t;
46 #endif
47 #ifdef DYNARDO_FMOP_DLL_EXPORTS
54  typedef struct FMOP* fmop_handle_t;
55 #else
56  typedef void* fmop_handle_t;
57 #endif
58 
60 
61 
62 /*********************************************/
68 
70 
88 DYNARDO_FMOP_API fmop_error_t FMOP_loadDbFile ( fmop_db_handle_t * database, const char* path );
89 
108 DYNARDO_FMOP_API fmop_error_t FMOP_loadDbFileWMesh ( fmop_db_handle_t * database, const char* path );
109 
110 #ifndef DOXYGEN_IGNORE
111 DYNARDO_FMOP_API fmop_error_t FMOP_loadDbBuf
131  ( fmop_db_handle_t * database, const char* buffer, size_t length );
152 DYNARDO_FMOP_API fmop_error_t FMOP_loadDbBufWMesh
153  ( fmop_db_handle_t * database, const char* buffer, size_t length );
154 #endif
155 DYNARDO_FMOP_API fmop_error_t FMOP_getModel ( fmop_db_handle_t database, fmop_dataobject_types data_type,
177  const char * const fmop_ident, fmop_handle_t * fmop );
189 DYNARDO_FMOP_API fmop_error_t FMOP_releaseModel ( fmop_handle_t * fmop );
201 DYNARDO_FMOP_API fmop_error_t FMOP_releaseDb ( fmop_db_handle_t * database );
216 DYNARDO_FMOP_API fmop_error_t FMOP_releaseIdents ( char *** const idents, const size_t * num_idents );
217 
219 
220 /*********************************************/
226 
228 
253 DYNARDO_FMOP_API fmop_error_t FMOP_getModelIdents
254  ( const fmop_db_handle_t database, fmop_dataobject_types data_type, char *** const fmop_idents, size_t * num_idents );
272 DYNARDO_FMOP_API fmop_error_t FMOP_getModelIdentsDim
273  ( const fmop_db_handle_t database, fmop_dataobject_types data_type, size_t * num_idents );
296 DYNARDO_FMOP_API const char * FMOP_getModelIdent
297  ( const fmop_db_handle_t database, fmop_dataobject_types data_type, size_t num_ident );
322 DYNARDO_FMOP_API fmop_error_t FMOP_getModelParamIdents
323  ( const fmop_handle_t fmop, char *** const param_idents, size_t * num_params );
340 DYNARDO_FMOP_API fmop_error_t FMOP_getModelParamIdentsDim ( const fmop_handle_t fmop, size_t * num_params );
363 DYNARDO_FMOP_API const char * FMOP_getModelParamIdent ( const fmop_handle_t fmop, size_t num_param );
383 DYNARDO_FMOP_API fmop_error_t FMOP_getParamLowerBounds ( const fmop_handle_t fmop, double * lower_bounds );
403 DYNARDO_FMOP_API fmop_error_t FMOP_getParamUpperBounds ( const fmop_handle_t fmop, double * upper_bounds );
420 DYNARDO_FMOP_API fmop_error_t FMOP_getModelTotalAvgFCoP ( const fmop_handle_t fmop, double * fcop );
439 DYNARDO_FMOP_API fmop_error_t FMOP_getModelAvgFCoP ( const fmop_handle_t fmop, double * fcops );
456 DYNARDO_FMOP_API fmop_error_t FMOP_getModelDim ( const fmop_handle_t fmop, size_t * num_mesh_items );
474 DYNARDO_FMOP_API fmop_error_t FMOP_getDataDim ( const fmop_db_handle_t database, fmop_dataobject_types data_type, size_t * num_mesh_items );
500 DYNARDO_FMOP_API fmop_error_t FMOP_getDataPointIndices ( fmop_handle_t fmop, unsigned int * part_ids, unsigned int * item_ids );
530 DYNARDO_FMOP_API fmop_error_t FMOP_getDataPointCoors (fmop_handle_t fmop, char axis, double * coors );
531 
532 
550 DYNARDO_FMOP_API fmop_error_t FMOP_getNumElementsAtNode ( fmop_handle_t fmop, unsigned int node_idx, unsigned int * num_elements );
569 DYNARDO_FMOP_API fmop_error_t FMOP_getElementsAtNode ( fmop_handle_t fmop, unsigned int node_idx, unsigned int * elements );
588 DYNARDO_FMOP_API fmop_error_t FMOP_isNodePartOfBoundary (fmop_handle_t fmop, unsigned int node_idx, unsigned int * is_part_of_boundary);
606 DYNARDO_FMOP_API fmop_error_t FMOP_getNumNodesAtElement ( fmop_handle_t fmop, unsigned int element_idx, unsigned int * num_nodes );
625 DYNARDO_FMOP_API fmop_error_t FMOP_getNodesAtElement ( fmop_handle_t fmop, unsigned int element_idx, unsigned int * nodes );
645 DYNARDO_FMOP_API const char * FMOP_getElementTypeIdent ( fmop_handle_t fmop, unsigned int element_idx );
647 
648 /*********************************************/
654 
656 
683 DYNARDO_FMOP_API fmop_error_t FMOP_approxField
684  ( const fmop_handle_t fmop, const double * param_values, double * field );
685 
713  ( const fmop_handle_t fmop, const double * param_values, double * field );
714 
716 
717 
718 #ifdef __cplusplus
719 }
720 #endif
721 
722 #endif // DYNARDO_FMOP_H
723 
724 // (c) 2017, DYNARDO Austria GmbH (proprietary license)
DYNARDO_FMOP_API fmop_error_t FMOP_approxFieldExtrapolate(const fmop_handle_t fmop, const double *param_values, double *field)
Approximates a field response based on a vector of given active scalar input parameters.
DYNARDO_FMOP_API fmop_error_t FMOP_getNumNodesAtElement(fmop_handle_t fmop, unsigned int element_idx, unsigned int *num_nodes)
Identifies the nodes connected to a given element.
DYNARDO_FMOP_API fmop_error_t FMOP_releaseIdents(char ***const idents, const size_t *num_idents)
An auxiliary function to releases an array of char arrays and dedicated memory.
DYNARDO_FMOP_API fmop_error_t FMOP_getDataPointIndices(fmop_handle_t fmop, unsigned int *part_ids, unsigned int *item_ids)
Maps internal node/element numbering to the external scheme consisting of part and item ID...
C-API for utility functions (load/unload library, license management, error handling) ...
DYNARDO_FMOP_API fmop_error_t FMOP_getParamLowerBounds(const fmop_handle_t fmop, double *lower_bounds)
Returns lower bound values of input parameters used to train the FMOP, aka the lower bound values of ...
DYNARDO_FMOP_API fmop_error_t FMOP_getModelIdentsDim(const fmop_db_handle_t database, fmop_dataobject_types data_type, size_t *num_idents)
Returns the total number of known FMOP identifiers from the fmop_db_handle_t given.
void * fmop_handle_t
Contains one specific single or cross correlated FMOP.
Definition: fmop_solver.h:56
DYNARDO_FMOP_API fmop_error_t FMOP_isNodePartOfBoundary(fmop_handle_t fmop, unsigned int node_idx, unsigned int *is_part_of_boundary)
Identifies if the given node is on the surface.
DYNARDO_FMOP_API fmop_error_t FMOP_getModelTotalAvgFCoP(const fmop_handle_t fmop, double *fcop)
Returns the total average Field Coefficient of Prognosis for the fmop handle given.
DYNARDO_FMOP_API fmop_error_t FMOP_getElementsAtNode(fmop_handle_t fmop, unsigned int node_idx, unsigned int *elements)
Identifies the elements connected to a given node.
DYNARDO_FMOP_API fmop_error_t FMOP_getModel(fmop_db_handle_t database, fmop_dataobject_types data_type, const char *const fmop_ident, fmop_handle_t *fmop)
Loads a fmop_handle_t data object from the database given.
DYNARDO_FMOP_API fmop_error_t FMOP_getModelAvgFCoP(const fmop_handle_t fmop, double *fcops)
Returns the Field Coefficients of Prognosis per active scalar input parameter.
DYNARDO_FMOP_API fmop_error_t FMOP_getNodesAtElement(fmop_handle_t fmop, unsigned int element_idx, unsigned int *nodes)
Identifies the nodes connected to a given element.
DYNARDO_FMOP_API fmop_error_t FMOP_releaseModel(fmop_handle_t *fmop)
Releases a fmop_handle_t object and dedicated memory.
DYNARDO_FMOP_API fmop_error_t FMOP_getModelParamIdents(const fmop_handle_t fmop, char ***const param_idents, size_t *num_params)
Returns all active scalar inputer parameters for the fmop handle given.
DYNARDO_FMOP_API fmop_error_t FMOP_getDataDim(const fmop_db_handle_t database, fmop_dataobject_types data_type, size_t *num_mesh_items)
Returns the size of the FCoP vector, aka the number of mesh items.
DYNARDO_FMOP_API const char * FMOP_getModelIdent(const fmop_db_handle_t database, fmop_dataobject_types data_type, size_t num_ident)
Returns the n-th known FMOP identifier from the fmop_db_handle_t given.
void * fmop_db_handle_t
Contains all the data being required to post-process any FMOP.
Definition: fmop_solver.h:45
DYNARDO_FMOP_API fmop_error_t FMOP_loadDbFileWMesh(fmop_db_handle_t *database, const char *path)
Initializes a fmop_db_handle_t object from a previously saved Statistics on Structures (SoS) database...
DYNARDO_FMOP_API fmop_error_t FMOP_getModelParamIdentsDim(const fmop_handle_t fmop, size_t *num_params)
Returns the total number of active parameter identifiers from the fmop handle given.
fmop_error_t
Error code definitions.
Definition: sos_capi_common.h:80
DYNARDO_FMOP_API fmop_error_t FMOP_getNumElementsAtNode(fmop_handle_t fmop, unsigned int node_idx, unsigned int *num_elements)
Identifies the elements connected to a given node.
DYNARDO_FMOP_API fmop_error_t FMOP_loadDbFile(fmop_db_handle_t *database, const char *path)
Initializes a fmop_db_handle_t object from a previously saved Statistics on Structures (SoS) database...
DYNARDO_FMOP_API fmop_error_t FMOP_getParamUpperBounds(const fmop_handle_t fmop, double *upper_bounds)
Returns upper bound values of input parameters used to train the FMOP, aka the upper bound values of ...
DYNARDO_FMOP_API fmop_error_t FMOP_approxField(const fmop_handle_t fmop, const double *param_values, double *field)
Approximates a field response based on a vector of given active scalar input parameters.
DYNARDO_FMOP_API fmop_error_t FMOP_releaseDb(fmop_db_handle_t *database)
Releases a fmop_db_handle_t object and dedicated memory.
DYNARDO_FMOP_API fmop_error_t FMOP_getModelIdents(const fmop_db_handle_t database, fmop_dataobject_types data_type, char ***const fmop_idents, size_t *num_idents)
Returns all known FMOP identifier from the fmop_db_handle_t given.
DYNARDO_FMOP_API const char * FMOP_getModelParamIdent(const fmop_handle_t fmop, size_t num_param)
Returns the n-th active parameter identifier from the fmop handle given.
DYNARDO_FMOP_API fmop_error_t FMOP_getModelDim(const fmop_handle_t fmop, size_t *num_mesh_items)
Returns the size of the FCoP vector, aka the number of mesh items.
fmop_dataobject_types
Data type definitions.
Definition: sos_capi_common.h:112
DYNARDO_FMOP_API const char * FMOP_getElementTypeIdent(fmop_handle_t fmop, unsigned int element_idx)
Identifies the element type ident of a given element.
DYNARDO_FMOP_API fmop_error_t FMOP_getDataPointCoors(fmop_handle_t fmop, char axis, double *coors)
Returns the cartesian data point coordinates for each data point.

Connect with Ansys