Ceed

bool CeedDebugFlag(const Ceed ceed)

Return value of CEED_DEBUG environment variable.

Backend Developer Functions

Parameters:
  • ceed[in] Ceed context

Returns:

Boolean value: true - debugging mode enabled false - debugging mode disabled

bool CeedDebugFlagEnv(void)

Return value of CEED_DEBUG environment variable.

Backend Developer Functions

Returns:

Boolean value: true - debugging mode enabled false - debugging mode disabled

void CeedDebugImpl256(const unsigned char color, const char *format, ...)

Print debugging information in color.

Backend Developer Functions

Parameters:
  • color[in] Color to print

  • format[in] Printing format

int CeedMallocArray(size_t n, size_t unit, void *p)

Allocate an array on the host; use CeedMalloc().

Memory usage can be tracked by the library. This ensures sufficient alignment for vectorization and should be used for large allocations.

Backend Developer Functions

See also

CeedFree()

Parameters:
  • n[in] Number of units to allocate

  • unit[in] Size of each unit

  • p[out] Address of pointer to hold the result

Returns:

An error code: 0 - success, otherwise - failure

int CeedCallocArray(size_t n, size_t unit, void *p)

Allocate a cleared (zeroed) array on the host; use CeedCalloc().

Memory usage can be tracked by the library.

Backend Developer Functions

See also

CeedFree()

Parameters:
  • n[in] Number of units to allocate

  • unit[in] Size of each unit

  • p[out] Address of pointer to hold the result

Returns:

An error code: 0 - success, otherwise - failure

int CeedReallocArray(size_t n, size_t unit, void *p)

Reallocate an array on the host; use CeedRealloc().

Memory usage can be tracked by the library.

Backend Developer Functions

See also

CeedFree()

Parameters:
  • n[in] Number of units to allocate

  • unit[in] Size of each unit

  • p[out] Address of pointer to hold the result

Returns:

An error code: 0 - success, otherwise - failure

int CeedStringAllocCopy(const char *source, char **copy)

Allocate a cleared string buffer on the host.

Memory usage can be tracked by the library.

Backend Developer Functions

See also

CeedFree()

Parameters:
  • source[in] Pointer to string to be copied

  • copy[out] Pointer to variable to hold newly allocated string copy

Returns:

An error code: 0 - success, otherwise - failure

int CeedFree(void *p)

Free memory allocated using CeedMalloc() or CeedCalloc()

Backend Developer Functions

Parameters:
  • p[inout] Address of pointer to memory. This argument is of type void* to avoid needing a cast, but is the address of the pointer (which is zeroed) rather than the pointer.

Returns:

An error code: 0 - success, otherwise - failure

static inline int CeedSetHostGenericArray(const void *source_array, CeedCopyMode copy_mode, size_t size_unit, CeedSize num_values, void *target_array_owned, void *target_array_borrowed, void *target_array)

Internal helper to manage handoff of user source_array to backend with proper CeedCopyMode behavior.

Backend Developer Functions

Parameters:
  • source_array[in] Source data provided by user

  • copy_mode[in] Copy mode for the data

  • num_values[in] Number of values to handle

  • size_unit[in] Size of array element in bytes

  • target_array_owned[inout] Pointer to location to allocated or hold owned data, may be freed if already allocated

  • target_array_borrowed[out] Pointer to location to hold borrowed data

  • target_array[out] Pointer to location for data

Returns:

An error code: 0 - success, otherwise - failure

int CeedSetHostBoolArray(const bool *source_array, CeedCopyMode copy_mode, CeedSize num_values, const bool **target_array_owned, const bool **target_array_borrowed, const bool **target_array)

Manage handoff of user bool source_array to backend with proper CeedCopyMode behavior.

Backend Developer Functions

Parameters:
  • source_array[in] Source data provided by user

  • copy_mode[in] Copy mode for the data

  • num_values[in] Number of values to handle

  • target_array_owned[inout] Pointer to location to allocated or hold owned data, may be freed if already allocated

  • target_array_borrowed[out] Pointer to location to hold borrowed data

  • target_array[out] Pointer to location for data

Returns:

An error code: 0 - success, otherwise - failure

int CeedSetHostCeedInt8Array(const CeedInt8 *source_array, CeedCopyMode copy_mode, CeedSize num_values, const CeedInt8 **target_array_owned, const CeedInt8 **target_array_borrowed, const CeedInt8 **target_array)

Manage handoff of user CeedInt8 source_array to backend with proper CeedCopyMode behavior.

Backend Developer Functions

Parameters:
  • source_array[in] Source data provided by user

  • copy_mode[in] Copy mode for the data

  • num_values[in] Number of values to handle

  • target_array_owned[inout] Pointer to location to allocated or hold owned data, may be freed if already allocated

  • target_array_borrowed[out] Pointer to location to hold borrowed data

  • target_array[out] Pointer to location for data

Returns:

An error code: 0 - success, otherwise - failure

int CeedSetHostCeedIntArray(const CeedInt *source_array, CeedCopyMode copy_mode, CeedSize num_values, const CeedInt **target_array_owned, const CeedInt **target_array_borrowed, const CeedInt **target_array)

Manage handoff of user CeedInt source_array to backend with proper CeedCopyMode behavior.

Backend Developer Functions

Parameters:
  • source_array[in] Source data provided by user

  • copy_mode[in] Copy mode for the data

  • num_values[in] Number of values to handle

  • target_array_owned[inout] Pointer to location to allocated or hold owned data, may be freed if already allocated

  • target_array_borrowed[out] Pointer to location to hold borrowed data

  • target_array[out] Pointer to location for data

Returns:

An error code: 0 - success, otherwise - failure

int CeedSetHostCeedScalarArray(const CeedScalar *source_array, CeedCopyMode copy_mode, CeedSize num_values, const CeedScalar **target_array_owned, const CeedScalar **target_array_borrowed, const CeedScalar **target_array)

Manage handoff of user CeedScalar source_array to backend with proper CeedCopyMode behavior.

Backend Developer Functions

Parameters:
  • source_array[in] Source data provided by user

  • copy_mode[in] Copy mode for the data

  • num_values[in] Number of values to handle

  • target_array_owned[inout] Pointer to location to allocated or hold owned data, may be freed if already allocated

  • target_array_borrowed[out] Pointer to location to hold borrowed data

  • target_array[out] Pointer to location for data

Returns:

An error code: 0 - success, otherwise - failure

int CeedRegister(const char *prefix, int (*init)(const char*, Ceed), unsigned int priority)

Register a Ceed backend.

Backend Developer Functions

Parameters:
  • prefix[in] Prefix of resources for this backend to respond to. For example, the reference backend responds to “/cpu/self”.

  • init[in] Initialization function called by CeedInit() when the backend is selected to drive the requested resource

  • priority[in] Integer priority. Lower values are preferred in case the resource requested by CeedInit() has non-unique best prefix match.

Returns:

An error code: 0 - success, otherwise - failure

int CeedIsDebug(Ceed ceed, bool *is_debug)

Return debugging status flag.

Backend Developer Functions

Parameters:
  • ceed[in] Ceed context to get debugging flag

  • is_debug[out] Variable to store debugging flag

Returns:

An error code: 0 - success, otherwise - failure

int CeedGetResourceRoot(Ceed ceed, const char *resource, const char *delineator, char **resource_root)

Get the root of the requested resource.

Backend Developer Functions

Parameters:
  • ceed[in] Ceed context to get resource name of

  • resource[in] Full user specified resource

  • delineator[in] Delineator to break resource_root and resource_spec

  • resource_root[out] Variable to store resource root

Returns:

An error code: 0 - success, otherwise - failure

int CeedGetParent(Ceed ceed, Ceed *parent)

Retrieve a parent Ceed context.

Backend Developer Functions

Parameters:
  • ceed[in] Ceed context to retrieve parent of

  • parent[out] Address to save the parent to

Returns:

An error code: 0 - success, otherwise - failure

int CeedGetDelegate(Ceed ceed, Ceed *delegate)

Retrieve a delegate Ceed context.

Backend Developer Functions

Parameters:
  • ceed[in] Ceed context to retrieve delegate of

  • delegate[out] Address to save the delegate to

Returns:

An error code: 0 - success, otherwise - failure

int CeedSetDelegate(Ceed ceed, Ceed delegate)

Set a delegate Ceed context.

This function allows a Ceed context to set a delegate Ceed context. All backend implementations default to the delegate Ceed context, unless overridden.

Backend Developer Functions

Parameters:
  • ceed[in] Ceed context to set delegate of

  • delegate[out] Address to set the delegate to

Returns:

An error code: 0 - success, otherwise - failure

int CeedGetObjectDelegate(Ceed ceed, Ceed *delegate, const char *obj_name)

Retrieve a delegate Ceed context for a specific object type.

Backend Developer Functions

Parameters:
  • ceed[in] Ceed context to retrieve delegate of

  • delegate[out] Address to save the delegate to

  • obj_name[in] Name of the object type to retrieve delegate for

Returns:

An error code: 0 - success, otherwise - failure

int CeedSetObjectDelegate(Ceed ceed, Ceed delegate, const char *obj_name)

Set a delegate Ceed context for a specific object type.

This function allows a Ceed context to set a delegate Ceed context for a given type of Ceed object. All backend implementations default to the delegate Ceed context for this object. For example, CeedSetObjectDelegate(ceed, delegate, "Basis") uses delegate implementations for all CeedBasis backend functions.

Backend Developer Functions

Parameters:
  • ceed[inout] Ceed context to set delegate of

  • delegate[in] Ceed context to use for delegation

  • obj_name[in] Name of the object type to set delegate for

Returns:

An error code: 0 - success, otherwise - failure

int CeedGetOperatorFallbackResource(Ceed ceed, const char **resource)

Get the fallback resource for CeedOperator

Backend Developer Functions

Parameters:
  • ceed[in] Ceed context

  • resource[out] Variable to store fallback resource

Returns:

An error code: 0 - success, otherwise - failure

int CeedGetOperatorFallbackCeed(Ceed ceed, Ceed *fallback_ceed)

Get the fallback Ceed for CeedOperator

Backend Developer Functions

Parameters:
  • ceed[in] Ceed context

  • fallback_ceed[out] Variable to store fallback Ceed

Returns:

An error code: 0 - success, otherwise - failure

int CeedSetOperatorFallbackResource(Ceed ceed, const char *resource)

Set the fallback resource for CeedOperator.

The current resource, if any, is freed by calling this function. This string is freed upon the destruction of the Ceed context.

Backend Developer Functions

Parameters:
  • ceed[inout] Ceed context

  • resource[in] Fallback resource to set

Returns:

An error code: 0 - success, otherwise - failure

int CeedSetDeterministic(Ceed ceed, bool is_deterministic)

Flag Ceed context as deterministic.

Backend Developer Functions

Parameters:
  • ceed[in] Ceed to flag as deterministic

  • is_deterministic[out] Deterministic status to set

Returns:

An error code: 0 - success, otherwise - failure

int CeedSetBackendFunctionImpl(Ceed ceed, const char *type, void *object, const char *func_name, void (*f)(void))

Set a backend function.

This function is used for a backend to set the function associated with the Ceed objects. For example, CeedSetBackendFunction(ceed, "Ceed", ceed, "VectorCreate", BackendVectorCreate) sets the backend implementation of CeedVectorCreate() and CeedSetBackendFunction(ceed, "Basis", basis, "Apply", BackendBasisApply) sets the backend implementation of CeedBasisApply(). Note, the prefix ‘Ceed’ is not required for the object type (“Basis” vs “CeedBasis”).

Backend Developer Functions

Parameters:
  • ceed[in] Ceed context for error handling

  • type[in] Type of Ceed object to set function for

  • object[out] Ceed object to set function for

  • func_name[in] Name of function to set

  • f[in] Function to set

Returns:

An error code: 0 - success, otherwise - failure

int CeedGetData(Ceed ceed, void *data)

Retrieve backend data for a Ceed context.

Backend Developer Functions

Parameters:
  • ceed[in] Ceed context to retrieve data of

  • data[out] Address to save data to

Returns:

An error code: 0 - success, otherwise - failure

int CeedSetData(Ceed ceed, void *data)

Set backend data for a Ceed context.

Backend Developer Functions

Parameters:
  • ceed[inout] Ceed context to set data of

  • data[in] Address of data to set

Returns:

An error code: 0 - success, otherwise - failure

int CeedReference(Ceed ceed)

Increment the reference counter for a Ceed context.

Backend Developer Functions

Parameters:
  • ceed[inout] Ceed context to increment the reference counter

Returns:

An error code: 0 - success, otherwise - failure

Macros

CeedDebug256(ceed, color, ...)

Print debugging information in color.

Backend Developer Functions

Parameters:
  • ceed[in] Ceed

  • color[in] Color to print with

CeedDebug(ceed, ...)

Print debugging information to terminal.

Backend Developer Functions

Parameters:
  • ceed[in] Ceed

CeedDebugEnv256(color, ...)

Print debugging information in color without Ceed to reference.

Backend Developer Functions

Parameters:
  • color[in] Color to print with

CeedDebugEnv(...)

Print debugging information to terminal without Ceed to reference.

Backend Developer Functions

Typedefs and Enumerations

enum CeedDebugColor

This enum supples common colors for CeedDebug256 debugging output.

Set the environment variable CEED_DEBUG = 1 to activate debugging output.

Backend Developer Functions

Values:

enumerator CEED_DEBUG_COLOR_SUCCESS

Success color.

enumerator CEED_DEBUG_COLOR_WARNING

Warning color.

enumerator CEED_DEBUG_COLOR_ERROR

Error color.

enumerator CEED_DEBUG_COLOR_NONE

Use native terminal coloring.