    

 ## On this page

  

 

 # fmop\_solver.h File Reference

 Last update: 10.02.2025 

C-API to evaluate a Field Meta model of Optimal Prognosis (FMOP) [More...](#details)

`#include "<a class="el" href="sos__capi__common_8h_source.xhtml">sos_capi_common.h</a>"`  


[Go to the source code of this file.](fmop__solver_8h_source.xhtml)

## <a name="typedef-members"></a>Typedefs

typedef void \* [fmop\_db\_handle\_t](fmop__solver_8h.xhtml#a4f3b1f4672b1b913e04f95def14d3572) Contains all the data being required to post-process any FMOP. [More...](#a4f3b1f4672b1b913e04f95def14d3572)  
 typedef void \* [fmop\_handle\_t](fmop__solver_8h.xhtml#aed65d1ae14f8c298a702ad5b828a70ef) Contains one specific single or cross correlated FMOP. [More...](#aed65d1ae14f8c298a702ad5b828a70ef)  
 ## <a name="func-members"></a>Functions

Create / Initialize Data Objects

API handling data object life time



DYNARDO\_FMOP\_API [fmop\_error\_t](group__types.xhtml#ga4847f3fa2943ffd694eb6cbe169a8bec) [FMOP\_loadDbFile](group__data__handling.xhtml#gadf36057836bc12095f01665fa068ba4c) ([fmop\_db\_handle\_t](fmop__solver_8h.xhtml#a4f3b1f4672b1b913e04f95def14d3572) \*database, const char \*path) Initializes a fmop\_db\_handle\_t object from a previously saved Statistics on Structures (SoS) database. [More...](group__data__handling.xhtml#gadf36057836bc12095f01665fa068ba4c)  
 DYNARDO\_FMOP\_API [fmop\_error\_t](group__types.xhtml#ga4847f3fa2943ffd694eb6cbe169a8bec) [FMOP\_loadDbFileWMesh](group__data__handling.xhtml#gab3f6b6b4a84878f3c774a12a2b4cf958) ([fmop\_db\_handle\_t](fmop__solver_8h.xhtml#a4f3b1f4672b1b913e04f95def14d3572) \*database, const char \*path) Initializes a fmop\_db\_handle\_t object from a previously saved Statistics on Structures (SoS) database This function also builds up all internal data structures needed to represent FEM meshes. Hence it may need more CPU time and RAM. [More...](group__data__handling.xhtml#gab3f6b6b4a84878f3c774a12a2b4cf958)  
 DYNARDO\_FMOP\_API [fmop\_error\_t](group__types.xhtml#ga4847f3fa2943ffd694eb6cbe169a8bec) [FMOP\_getModel](group__data__handling.xhtml#gaae65fdf242dba6c37b9de818be7c9dcc) ([fmop\_db\_handle\_t](fmop__solver_8h.xhtml#a4f3b1f4672b1b913e04f95def14d3572) database, [fmop\_dataobject\_types](group__types.xhtml#ga69eb42c1b3b49f22b9e73c6c9869cb75) data\_type, const char \*const fmop\_ident, [fmop\_handle\_t](fmop__solver_8h.xhtml#aed65d1ae14f8c298a702ad5b828a70ef) \*fmop) Loads a fmop\_handle\_t data object from the database given. [More...](group__data__handling.xhtml#gaae65fdf242dba6c37b9de818be7c9dcc)  
 DYNARDO\_FMOP\_API [fmop\_error\_t](group__types.xhtml#ga4847f3fa2943ffd694eb6cbe169a8bec) [FMOP\_releaseModel](group__data__handling.xhtml#ga3ad01c460ed6e409b79e258a523d0bf9) ([fmop\_handle\_t](fmop__solver_8h.xhtml#aed65d1ae14f8c298a702ad5b828a70ef) \*fmop) Releases a fmop\_handle\_t object and dedicated memory. [More...](group__data__handling.xhtml#ga3ad01c460ed6e409b79e258a523d0bf9)  
 DYNARDO\_FMOP\_API [fmop\_error\_t](group__types.xhtml#ga4847f3fa2943ffd694eb6cbe169a8bec) [FMOP\_releaseDb](group__data__handling.xhtml#gaf36d28d4c5c718284a0f4236f2740e06) ([fmop\_db\_handle\_t](fmop__solver_8h.xhtml#a4f3b1f4672b1b913e04f95def14d3572) \*database) Releases a fmop\_db\_handle\_t object and dedicated memory. [More...](group__data__handling.xhtml#gaf36d28d4c5c718284a0f4236f2740e06)  
 DYNARDO\_FMOP\_API [fmop\_error\_t](group__types.xhtml#ga4847f3fa2943ffd694eb6cbe169a8bec) [FMOP\_releaseIdents](group__data__handling.xhtml#ga37bdee678571cd855ac0bb10675b1d8c) (char \*\*\*const idents, const size\_t \*num\_idents) An auxiliary function to releases an array of char arrays and dedicated memory. [More...](group__data__handling.xhtml#ga37bdee678571cd855ac0bb10675b1d8c)  
 Query properties

API to query idents and properties of a "Field Meta Model of Optimal Prognosis" (FMOP)



DYNARDO\_FMOP\_API [fmop\_error\_t](group__types.xhtml#ga4847f3fa2943ffd694eb6cbe169a8bec) [FMOP\_getModelIdents](group__queries.xhtml#ga22d6e807dc869fa28442d26e29ddbc27) (const [fmop\_db\_handle\_t](fmop__solver_8h.xhtml#a4f3b1f4672b1b913e04f95def14d3572) database, [fmop\_dataobject\_types](group__types.xhtml#ga69eb42c1b3b49f22b9e73c6c9869cb75) data\_type, char \*\*\*const fmop\_idents, size\_t \*num\_idents) Returns all known FMOP identifier from the fmop\_db\_handle\_t given. [More...](group__queries.xhtml#ga22d6e807dc869fa28442d26e29ddbc27)  
 DYNARDO\_FMOP\_API [fmop\_error\_t](group__types.xhtml#ga4847f3fa2943ffd694eb6cbe169a8bec) [FMOP\_getModelIdentsDim](group__queries.xhtml#ga600dca69efae1f2eafc63f9f6a0067fc) (const [fmop\_db\_handle\_t](fmop__solver_8h.xhtml#a4f3b1f4672b1b913e04f95def14d3572) database, [fmop\_dataobject\_types](group__types.xhtml#ga69eb42c1b3b49f22b9e73c6c9869cb75) data\_type, size\_t \*num\_idents) Returns the total number of known FMOP identifiers from the fmop\_db\_handle\_t given. [More...](group__queries.xhtml#ga600dca69efae1f2eafc63f9f6a0067fc)  
 DYNARDO\_FMOP\_API const char \* [FMOP\_getModelIdent](group__queries.xhtml#gade959f2a7f6866382b76e32204597220) (const [fmop\_db\_handle\_t](fmop__solver_8h.xhtml#a4f3b1f4672b1b913e04f95def14d3572) database, [fmop\_dataobject\_types](group__types.xhtml#ga69eb42c1b3b49f22b9e73c6c9869cb75) data\_type, size\_t num\_ident) Returns the n-th known FMOP identifier from the fmop\_db\_handle\_t given. [More...](group__queries.xhtml#gade959f2a7f6866382b76e32204597220)  
 DYNARDO\_FMOP\_API [fmop\_error\_t](group__types.xhtml#ga4847f3fa2943ffd694eb6cbe169a8bec) [FMOP\_getModelParamIdents](group__queries.xhtml#ga485827623b3d01cf3157c0a16559908f) (const [fmop\_handle\_t](fmop__solver_8h.xhtml#aed65d1ae14f8c298a702ad5b828a70ef) fmop, char \*\*\*const param\_idents, size\_t \*num\_params) Returns all active scalar inputer parameters for the fmop handle given. [More...](group__queries.xhtml#ga485827623b3d01cf3157c0a16559908f)  
 DYNARDO\_FMOP\_API [fmop\_error\_t](group__types.xhtml#ga4847f3fa2943ffd694eb6cbe169a8bec) [FMOP\_getModelParamIdentsDim](group__queries.xhtml#gadabef430a391d15eb077fe30e134f368) (const [fmop\_handle\_t](fmop__solver_8h.xhtml#aed65d1ae14f8c298a702ad5b828a70ef) fmop, size\_t \*num\_params) Returns the total number of active parameter identifiers from the fmop handle given. [More...](group__queries.xhtml#gadabef430a391d15eb077fe30e134f368)  
 DYNARDO\_FMOP\_API const char \* [FMOP\_getModelParamIdent](group__queries.xhtml#ga08f0951d2b7615c16e72341e13bad704) (const [fmop\_handle\_t](fmop__solver_8h.xhtml#aed65d1ae14f8c298a702ad5b828a70ef) fmop, size\_t num\_param) Returns the n-th active parameter identifier from the fmop handle given. [More...](group__queries.xhtml#ga08f0951d2b7615c16e72341e13bad704)  
 DYNARDO\_FMOP\_API [fmop\_error\_t](group__types.xhtml#ga4847f3fa2943ffd694eb6cbe169a8bec) [FMOP\_getParamLowerBounds](group__queries.xhtml#gabaed2ac2af6a304f8356e51b9cb98442) (const [fmop\_handle\_t](fmop__solver_8h.xhtml#aed65d1ae14f8c298a702ad5b828a70ef) fmop, double \*lower\_bounds) Returns lower bound values of input parameters used to train the FMOP, aka the lower bound values of Design of Experiment input parameters. [More...](group__queries.xhtml#gabaed2ac2af6a304f8356e51b9cb98442)  
 DYNARDO\_FMOP\_API [fmop\_error\_t](group__types.xhtml#ga4847f3fa2943ffd694eb6cbe169a8bec) [FMOP\_getParamUpperBounds](group__queries.xhtml#ga301cfcf26e28ec7ba4b2c730facb679c) (const [fmop\_handle\_t](fmop__solver_8h.xhtml#aed65d1ae14f8c298a702ad5b828a70ef) fmop, double \*upper\_bounds) Returns upper bound values of input parameters used to train the FMOP, aka the upper bound values of Design of Experiment input parameters. [More...](group__queries.xhtml#ga301cfcf26e28ec7ba4b2c730facb679c)  
 DYNARDO\_FMOP\_API [fmop\_error\_t](group__types.xhtml#ga4847f3fa2943ffd694eb6cbe169a8bec) [FMOP\_getModelTotalAvgFCoP](group__queries.xhtml#ga1ff6f33cf199015b78c5837e40d90f42) (const [fmop\_handle\_t](fmop__solver_8h.xhtml#aed65d1ae14f8c298a702ad5b828a70ef) fmop, double \*fcop) Returns the total average Field Coefficient of Prognosis for the fmop handle given. [More...](group__queries.xhtml#ga1ff6f33cf199015b78c5837e40d90f42)  
 DYNARDO\_FMOP\_API [fmop\_error\_t](group__types.xhtml#ga4847f3fa2943ffd694eb6cbe169a8bec) [FMOP\_getModelAvgFCoP](group__queries.xhtml#ga185c515c2fe8b0528ccb5f95f543a3be) (const [fmop\_handle\_t](fmop__solver_8h.xhtml#aed65d1ae14f8c298a702ad5b828a70ef) fmop, double \*fcops) Returns the Field Coefficients of Prognosis per active scalar input parameter. [More...](group__queries.xhtml#ga185c515c2fe8b0528ccb5f95f543a3be)  
 DYNARDO\_FMOP\_API [fmop\_error\_t](group__types.xhtml#ga4847f3fa2943ffd694eb6cbe169a8bec) [FMOP\_getModelDim](group__queries.xhtml#ga24e43563d67cc64bffb7bccddbaada65) (const [fmop\_handle\_t](fmop__solver_8h.xhtml#aed65d1ae14f8c298a702ad5b828a70ef) fmop, size\_t \*num\_mesh\_items) Returns the size of the FCoP vector, aka the number of mesh items. [More...](group__queries.xhtml#ga24e43563d67cc64bffb7bccddbaada65)  
 DYNARDO\_FMOP\_API [fmop\_error\_t](group__types.xhtml#ga4847f3fa2943ffd694eb6cbe169a8bec) [FMOP\_getDataDim](group__queries.xhtml#ga878106f886ca5f1ce112e6c5e238d80e) (const [fmop\_db\_handle\_t](fmop__solver_8h.xhtml#a4f3b1f4672b1b913e04f95def14d3572) database, [fmop\_dataobject\_types](group__types.xhtml#ga69eb42c1b3b49f22b9e73c6c9869cb75) data\_type, size\_t \*num\_mesh\_items) Returns the size of the FCoP vector, aka the number of mesh items. [More...](group__queries.xhtml#ga878106f886ca5f1ce112e6c5e238d80e)  
 DYNARDO\_FMOP\_API [fmop\_error\_t](group__types.xhtml#ga4847f3fa2943ffd694eb6cbe169a8bec) [FMOP\_getDataPointIndices](group__queries.xhtml#gadd2527ad2ad1bf1df141e5fa5b4c2e31) ([fmop\_handle\_t](fmop__solver_8h.xhtml#aed65d1ae14f8c298a702ad5b828a70ef) fmop, unsigned int \*part\_ids, unsigned int \*item\_ids) Maps internal node/element numbering to the external scheme consisting of part and item ID. [More...](group__queries.xhtml#gadd2527ad2ad1bf1df141e5fa5b4c2e31)  
 DYNARDO\_FMOP\_API [fmop\_error\_t](group__types.xhtml#ga4847f3fa2943ffd694eb6cbe169a8bec) [FMOP\_getDataPointCoors](group__queries.xhtml#ga535bee00c4d200d31fdf4118e49c1f05) ([fmop\_handle\_t](fmop__solver_8h.xhtml#aed65d1ae14f8c298a702ad5b828a70ef) fmop, char axis, double \*coors) Returns the cartesian data point coordinates for each data point. [More...](group__queries.xhtml#ga535bee00c4d200d31fdf4118e49c1f05)  
 DYNARDO\_FMOP\_API [fmop\_error\_t](group__types.xhtml#ga4847f3fa2943ffd694eb6cbe169a8bec) [FMOP\_getNumElementsAtNode](group__queries.xhtml#ga4413f3e2bc5f893b9030631aceb03c54) ([fmop\_handle\_t](fmop__solver_8h.xhtml#aed65d1ae14f8c298a702ad5b828a70ef) fmop, unsigned int node\_idx, unsigned int \*num\_elements) Identifies the elements connected to a given node. [More...](group__queries.xhtml#ga4413f3e2bc5f893b9030631aceb03c54)  
 DYNARDO\_FMOP\_API [fmop\_error\_t](group__types.xhtml#ga4847f3fa2943ffd694eb6cbe169a8bec) [FMOP\_getElementsAtNode](group__queries.xhtml#ga8ca72d6a865df21ce5a5180475c71cda) ([fmop\_handle\_t](fmop__solver_8h.xhtml#aed65d1ae14f8c298a702ad5b828a70ef) fmop, unsigned int node\_idx, unsigned int \*elements) Identifies the elements connected to a given node. [More...](group__queries.xhtml#ga8ca72d6a865df21ce5a5180475c71cda)  
 DYNARDO\_FMOP\_API [fmop\_error\_t](group__types.xhtml#ga4847f3fa2943ffd694eb6cbe169a8bec) [FMOP\_isNodePartOfBoundary](group__queries.xhtml#ga1ff1451cc5f1c6cefa7a67c6a906d653) ([fmop\_handle\_t](fmop__solver_8h.xhtml#aed65d1ae14f8c298a702ad5b828a70ef) fmop, unsigned int node\_idx, unsigned int \*is\_part\_of\_boundary) Identifies if the given node is on the surface. [More...](group__queries.xhtml#ga1ff1451cc5f1c6cefa7a67c6a906d653)  
 DYNARDO\_FMOP\_API [fmop\_error\_t](group__types.xhtml#ga4847f3fa2943ffd694eb6cbe169a8bec) [FMOP\_getNumNodesAtElement](group__queries.xhtml#ga031be0f125c4fbeb450f03bb960e207d) ([fmop\_handle\_t](fmop__solver_8h.xhtml#aed65d1ae14f8c298a702ad5b828a70ef) fmop, unsigned int element\_idx, unsigned int \*num\_nodes) Identifies the nodes connected to a given element. [More...](group__queries.xhtml#ga031be0f125c4fbeb450f03bb960e207d)  
 DYNARDO\_FMOP\_API [fmop\_error\_t](group__types.xhtml#ga4847f3fa2943ffd694eb6cbe169a8bec) [FMOP\_getNodesAtElement](group__queries.xhtml#ga03080c2458b8c03eb85ce9eb97926711) ([fmop\_handle\_t](fmop__solver_8h.xhtml#aed65d1ae14f8c298a702ad5b828a70ef) fmop, unsigned int element\_idx, unsigned int \*nodes) Identifies the nodes connected to a given element. [More...](group__queries.xhtml#ga03080c2458b8c03eb85ce9eb97926711)  
 DYNARDO\_FMOP\_API const char \* [FMOP\_getElementTypeIdent](group__queries.xhtml#gade1eac903ae657e448adf1f7c6aa463c) ([fmop\_handle\_t](fmop__solver_8h.xhtml#aed65d1ae14f8c298a702ad5b828a70ef) fmop, unsigned int element\_idx) Identifies the element type ident of a given element. [More...](group__queries.xhtml#gade1eac903ae657e448adf1f7c6aa463c)  
 Operations

API used to evalute a Field Meta Model of Optimal Prognosis (FMOP)



DYNARDO\_FMOP\_API [fmop\_error\_t](group__types.xhtml#ga4847f3fa2943ffd694eb6cbe169a8bec) [FMOP\_approxField](group__operations.xhtml#ga1bd5d62d9c5ba6d327b0368a8b4e2e31) (const [fmop\_handle\_t](fmop__solver_8h.xhtml#aed65d1ae14f8c298a702ad5b828a70ef) fmop, const double \*param\_values, double \*field) Approximates a field response based on a vector of given active scalar input parameters. [More...](group__operations.xhtml#ga1bd5d62d9c5ba6d327b0368a8b4e2e31)  
 DYNARDO\_FMOP\_API [fmop\_error\_t](group__types.xhtml#ga4847f3fa2943ffd694eb6cbe169a8bec) [FMOP\_approxFieldExtrapolate](group__operations.xhtml#ga4380a704857be093fc6444aa5b8fdadc) (const [fmop\_handle\_t](fmop__solver_8h.xhtml#aed65d1ae14f8c298a702ad5b828a70ef) fmop, const double \*param\_values, double \*field) Approximates a field response based on a vector of given active scalar input parameters. [More...](group__operations.xhtml#ga4380a704857be093fc6444aa5b8fdadc)  
 <a id="details" name="details"></a>## Detailed Description

C-API to evaluate a Field Meta model of Optimal Prognosis (FMOP)

CopyrightDYNARDO Austria GmbH- This API follows the *Basic* exception safety *rule*. If any of the operations fail, the original data, e.g. the fmop\_handle\*\_t, might have been overwritten, but there should be no resource leak.
- Return values are typically of type fmop\_error\_t. To get a human readalbe interpretation forward this value to [FMOP\_getErrnoString()](group__error__handling.xhtml#ga7e820b85d2ef2596b00bc82445dcf650 "Returns a string description for the error number given. ") or call [FMOP\_getLastErrorString()](group__error__handling.xhtml#ga5e19e7fe152759a80115e908c593245d "Returns internal log messages of level warning and above. "). More information can be found in the Error Handling section
- Log messages from the SoS kernel are all bufferd in an internal variable. Unless otherwise stated in a function description, this internal variable gets reset(!) right at the beginning of each function call. Therefore, the user is forced into fetching all log messages of interest before proceeding.

WarningConcurrent library calls are NOT supported Unless otherwise stated, every function call overwrites any log message of any previous function call 

## Typedef Documentation

<a id="a4f3b1f4672b1b913e04f95def14d3572"></a>## [◆ ](#a4f3b1f4672b1b913e04f95def14d3572)fmop\_db\_handle\_t

 typedef void\* [fmop\_db\_handle\_t](fmop__solver_8h.xhtml#a4f3b1f4672b1b913e04f95def14d3572)

Contains all the data being required to post-process any FMOP.

NoteSince we had some unresolved troubles in Matlab using the forward declaration typedef struct FMOP_Database* [fmop\_db\_handle\_t](fmop__solver_8h.xhtml#a4f3b1f4672b1b913e04f95def14d3572); 



 we now prefer to write for the public definition 'void\*' only 



<a id="aed65d1ae14f8c298a702ad5b828a70ef"></a>## [◆ ](#aed65d1ae14f8c298a702ad5b828a70ef)fmop\_handle\_t

 typedef void\* [fmop\_handle\_t](fmop__solver_8h.xhtml#aed65d1ae14f8c298a702ad5b828a70ef)

Contains one specific single or cross correlated FMOP.

NoteSince we had some unresolved troubles in Matlab using the forward declaration typedef struct FMOP* [fmop\_handle\_t](fmop__solver_8h.xhtml#aed65d1ae14f8c298a702ad5b828a70ef); 



 we now prefer to write for the public defintion 'void\*' only