Skip to main content

SoS C API of FMOPSolver library 2023 R2

fmop_solver

Last update: 16.07.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 
7 
27 
28 #ifdef __cplusplus
29 extern "C" {
30 #endif
31 
39 #ifdef DYNARDO_FMOP_DLL_EXPORTS
40  typedef struct FMOP_Database* fmop_db_handle_t;
41 #else
42  typedef void* fmop_db_handle_t;
43 #endif
50 #ifdef DYNARDO_FMOP_DLL_EXPORTS
51  typedef struct FMOP* fmop_handle_t;
52 #else
53  typedef void* fmop_handle_t;
54 #endif
55 
57 
58 
59 /*********************************************/
65 
83 DYNARDO_FMOP_API fmop_error_t FMOP_loadDbFile ( fmop_db_handle_t * database, const char* path );
84 
103 DYNARDO_FMOP_API fmop_error_t FMOP_loadDbFileWMesh ( fmop_db_handle_t * database, const char* path );
104 
105 #ifndef DOXYGEN_IGNORE
125 DYNARDO_FMOP_API fmop_error_t FMOP_loadDbBuf
126  ( fmop_db_handle_t * database, const char* buffer, size_t length );
147 DYNARDO_FMOP_API fmop_error_t FMOP_loadDbBufWMesh
148  ( fmop_db_handle_t * database, const char* buffer, size_t length );
149 #endif
171 DYNARDO_FMOP_API fmop_error_t FMOP_getModel ( fmop_db_handle_t database, fmop_dataobject_types data_type,
172  const char * const fmop_ident, fmop_handle_t * fmop );
184 DYNARDO_FMOP_API fmop_error_t FMOP_releaseModel ( fmop_handle_t * fmop );
196 DYNARDO_FMOP_API fmop_error_t FMOP_releaseDb ( fmop_db_handle_t * database );
211 DYNARDO_FMOP_API fmop_error_t FMOP_releaseIdents ( char *** const idents, const size_t * num_idents );
212 
214 
215 /*********************************************/
221 
247  ( const fmop_db_handle_t database, fmop_dataobject_types data_type, char *** const fmop_idents, size_t * num_idents );
266  ( const fmop_db_handle_t database, fmop_dataobject_types data_type, size_t * num_idents );
289 DYNARDO_FMOP_API const char * FMOP_getModelIdent
290  ( const fmop_db_handle_t database, fmop_dataobject_types data_type, size_t num_ident );
316  ( const fmop_handle_t fmop, char *** const param_idents, size_t * num_params );
333 DYNARDO_FMOP_API fmop_error_t FMOP_getModelParamIdentsDim ( const fmop_handle_t fmop, size_t * num_params );
356 DYNARDO_FMOP_API const char * FMOP_getModelParamIdent ( const fmop_handle_t fmop, size_t num_param );
376 DYNARDO_FMOP_API fmop_error_t FMOP_getParamLowerBounds ( const fmop_handle_t fmop, double * lower_bounds );
396 DYNARDO_FMOP_API fmop_error_t FMOP_getParamUpperBounds ( const fmop_handle_t fmop, double * upper_bounds );
413 DYNARDO_FMOP_API fmop_error_t FMOP_getModelTotalAvgFCoP ( const fmop_handle_t fmop, double * fcop );
432 DYNARDO_FMOP_API fmop_error_t FMOP_getModelAvgFCoP ( const fmop_handle_t fmop, double * fcops );
449 DYNARDO_FMOP_API fmop_error_t FMOP_getModelDim ( const fmop_handle_t fmop, size_t * num_mesh_items );
467 DYNARDO_FMOP_API fmop_error_t FMOP_getDataDim ( const fmop_db_handle_t database, fmop_dataobject_types data_type, size_t * num_mesh_items );
493 DYNARDO_FMOP_API fmop_error_t FMOP_getDataPointIndices ( fmop_handle_t fmop, unsigned int * part_ids, unsigned int * item_ids );
523 DYNARDO_FMOP_API fmop_error_t FMOP_getDataPointCoors (fmop_handle_t fmop, char axis, double * coors );
524 
525 
543 DYNARDO_FMOP_API fmop_error_t FMOP_getNumElementsAtNode ( fmop_handle_t fmop, unsigned int node_idx, unsigned int * num_elements );
562 DYNARDO_FMOP_API fmop_error_t FMOP_getElementsAtNode ( fmop_handle_t fmop, unsigned int node_idx, unsigned int * elements );
581 DYNARDO_FMOP_API fmop_error_t FMOP_isNodePartOfBoundary (fmop_handle_t fmop, unsigned int node_idx, unsigned int * is_part_of_boundary);
599 DYNARDO_FMOP_API fmop_error_t FMOP_getNumNodesAtElement ( fmop_handle_t fmop, unsigned int element_idx, unsigned int * num_nodes );
618 DYNARDO_FMOP_API fmop_error_t FMOP_getNodesAtElement ( fmop_handle_t fmop, unsigned int element_idx, unsigned int * nodes );
638 DYNARDO_FMOP_API const char * FMOP_getElementTypeIdent ( fmop_handle_t fmop, unsigned int element_idx );
640 
641 /*********************************************/
647 
675  ( const fmop_handle_t fmop, const double * param_values, double * field );
676 
704  ( const fmop_handle_t fmop, const double * param_values, double * field );
705 
707 
708 
709 #ifdef __cplusplus
710 }
711 #endif
712 
713 #endif // DYNARDO_FMOP_H
714 
715 // (c) 2017, DYNARDO Austria GmbH (proprietary license)
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_getNumNodesAtElement(fmop_handle_t fmop, unsigned int element_idx, unsigned int *num_nodes)
Identifies the nodes connected to a given element.
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_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_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_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_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 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.
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_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_releaseModel(fmop_handle_t *fmop)
Releases a fmop_handle_t object and dedicated memory.
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_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_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.
void * fmop_db_handle_t
Contains all the data being required to post-process any FMOP.
Definition: fmop_solver.h:42
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.
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.
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 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_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_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_getModelParamIdentsDim(const fmop_handle_t fmop, size_t *num_params)
Returns the total number of active parameter identifiers from the fmop handle given.
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.
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 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.
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...
void * fmop_handle_t
Contains one specific single or cross correlated FMOP.
Definition: fmop_solver.h:53
DYNARDO_FMOP_API fmop_error_t FMOP_releaseDb(fmop_db_handle_t *database)
Releases a fmop_db_handle_t object and dedicated memory.
C-API for utility functions (load/unload library, license management, error handling)
fmop_error_t
Error code definitions.
Definition: sos_capi_common.h:80
fmop_dataobject_types
Data type definitions.
Definition: sos_capi_common.h:112

Connect with Ansys