59#if defined(EON_RELAX_STATIC)
61#elif defined(EON_RELAX_ENGINE_BUILD)
62#define EON_RELAX_API __declspec(dllexport)
64#define EON_RELAX_API __declspec(dllimport)
67#define EON_RELAX_API __attribute__((visibility("default")))
72#define EON_RELAX_ABI_MAJOR 2u
73#define EON_RELAX_ABI_MINOR 1u
81#define EON_RELAX_VERSION_INIT {EON_RELAX_ABI_MAJOR, EON_RELAX_ABI_MINOR}
89#define EON_RELAX_KIND_IS_KNOWN(k) \
90 ((k) == EON_RELAX_KIND_NEB || (k) == EON_RELAX_KIND_SADDLE)
128#define EON_RELAX_IMAGE_NONE INT64_C(-1)
220 size_t config_len,
char *errbuf,
EON_RELAX_API uint64_t eon_relax_version_hash(void)
64-bit FNV-1a hash of eon_relax_version_hash_str().
EON_RELAX_API int eon_relax_set_surface_epoch(EonRelaxEngine *eng, uint64_t epoch)
EON_RELAX_API int eon_relax_available(void)
EON_RELAX_API int eon_relax_run(EonRelaxEngine *eng, eon_relax_band_t *band, eon_relax_surface_fn surface, void *user, eon_relax_outcome_t *out)
Run the bound engine to completion.
EON_RELAX_API int eon_relax_step(EonRelaxEngine *eng, eon_relax_band_t *band, eon_relax_surface_fn surface, void *user, eon_relax_outcome_t *out)
One band optimizer step (kind=NEB only).
eon_relax_neb_status_t
NudgedElasticBand::NEBStatus integers.
@ EON_RELAX_NEB_MAX_UNCERTAINTY
@ EON_RELAX_NEB_BAD_MAX_ITERATIONS
EON_RELAX_API int eon_relax_abi_stamp(eon_relax_version_t *out)
EON_RELAX_API EonRelaxEngine * eon_relax_create(const void *config, size_t config_len, char *errbuf, size_t errlen)
Create.
eon_relax_rc_t
Call rc: 0 success (read outcome), positive recoverable, negative a named fail.
@ EON_RELAX_SURFACE_FATAL
@ EON_RELAX_NULL_ATOMIC_NRS
@ EON_RELAX_NULL_POSITIONS
@ EON_RELAX_UNKNOWN_STATUS
@ EON_RELAX_SADDLE_NIMAGES
@ EON_RELAX_BAND_TOO_SHORT
@ EON_RELAX_INVALID_PARAMETER
EON_RELAX_API int eon_relax_abi_version(void)
(major << 16) | minor.
EON_RELAX_API const char * eon_relax_status_name(eon_relax_kind_t kind, int status)
NULL if kind or status is unknown.
EON_RELAX_API void eon_relax_destroy(EonRelaxEngine *eng)
int(* eon_relax_surface_fn)(void *user, eon_relax_surface_request_t *req)
Return 0 on success, positive recoverable, negative fatal.
EON_RELAX_API int eon_relax_last_error(const EonRelaxEngine *eng)
Last named create/run/step/reset/set_epoch rc on this handle.
EON_RELAX_API int eon_relax_reset(EonRelaxEngine *eng)
Drop the stepper's band state and optimizer history; the next eon_relax_step reinitializes from the c...
EON_RELAX_API const char * eon_relax_version_hash_str(void)
Immortal dest identity string.
eon_relax_version_t version
const int32_t * atomic_nrs
const int64_t * image_ids
eon_relax_version_t version
Host-surface request: one struct, engine-stamped version, so the callback contract grows behind the v...
const int32_t * atomic_nrs
const int64_t * image_ids
eon_relax_version_t version
Version head carried by every wire struct (dlpack DLPackVersion).