Skip to content

Support additional CeedContextFieldType values #2004

Description

@zatkins-dev

Summary

Add new enum values to CeedContextFieldType for single-precision floating point, 64-bit integer, byte, and CeedInt and CeedScalar types.

Possible Implementation

  • Expand the CeedContextFieldType interface to include:
typedef enum {
  /// Byte value, C type of char
  CEED_CONTEXT_FIELD_BYTE = 1,
  /// CeedScalar value
  CEED_CONTEXT_FIELD_SCALAR = 2,
  /// Single precision value
  CEED_CONTEXT_FIELD_FLOAT = 3,
  /// Double precision value
  CEED_CONTEXT_FIELD_DOUBLE = 4,
  /// CeedInt value
  CEED_CONTEXT_FIELD_INT = 5,
  /// 32 bit integer value
  CEED_CONTEXT_FIELD_INT32 = 6,
  /// 64 bit integer value
  CEED_CONTEXT_FIELD_INT64 = 7,
  /// Boolean value
  CEED_CONTEXT_FIELD_BOOL = 8,
} CeedContextFieldType;
  • Add strings/update indices in CeedContextFieldTypes.

  • Add associated public registration functions:

int CeedQFunctionContextRegisterByte(CeedQFunctionContext ctx, const char *field_name, size_t field_offset, size_t num_values, const char *field_description);
int CeedQFunctionContextRegisterScalar(CeedQFunctionContext ctx, const char *field_name, size_t field_offset, size_t num_values, const char *field_description);
int CeedQFunctionContextRegisterFloat(CeedQFunctionContext ctx, const char *field_name, size_t field_offset, size_t num_values, const char *field_description);
int CeedQFunctionContextRegisterInt(CeedQFunctionContext ctx, const char *field_name, size_t field_offset, size_t num_values, const char *field_description);
int CeedQFunctionContextRegisterInt64(CeedQFunctionContext ctx, const char *field_name, size_t field_offset, size_t num_values, const char *field_description);
  • Add the associated public Get[TYPE]Read/Restore[TYPE]Read/Set[TYPE] functions (byte used as an example):
int CeedOperatorGetContextByteRead(CeedOperator op, CeedContextFieldLabel field_label, size_t *num_values, const char **values);
int CeedOperatorRestoreContextByteRead(CeedOperator op, CeedContextFieldLabel field_label, size_t *num_values, const char **values);
int CeedOperatorSetContextByte(CeedOperator op, CeedContextFieldLabel field_label, char *values);
int CeedQFunctionContextGetByteRead(CeedQFunctionContext ctx, CeedContextFieldLabel field_label, size_t *num_values, const char **values);
int CeedQFunctionContextRestoreByteRead(CeedQFunctionContext ctx, CeedContextFieldLabel field_label, const char **values);
int CeedQFunctionContextSetByte(CeedQFunctionContext ctx, CeedContextFieldLabel field_label, char *values);
  • Update CeedQFunctionContextRegisterGeneric, CeedQFunctionContextGetGenericRead.

  • Regenerate Julia bindings.

  • Add new values to tests/t407-qfunction.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions