CeedOperator

typedef struct CeedOperatorField_private *CeedOperatorField

Handle for object describing CeedOperator fields.

int CeedOperatorGetNumArgs(CeedOperator op, CeedInt *num_args)

Get the number of arguments associated with a CeedOperator.

Backend Developer Functions

Parameters
  • op[in] CeedOperator

  • num_args[out] Variable to store vector number of arguments

Returns

An error code: 0 - success, otherwise - failure

int CeedOperatorIsSetupDone(CeedOperator op, bool *is_setup_done)

Get the setup status of a CeedOperator.

Backend Developer Functions

Parameters
  • op[in] CeedOperator

  • is_setup_done[out] Variable to store setup status

Returns

An error code: 0 - success, otherwise - failure

int CeedOperatorGetQFunction(CeedOperator op, CeedQFunction *qf)

Get the QFunction associated with a CeedOperator.

Backend Developer Functions

Parameters
  • op[in] CeedOperator

  • qf[out] Variable to store QFunction

Returns

An error code: 0 - success, otherwise - failure

int CeedOperatorIsComposite(CeedOperator op, bool *is_composite)

Get a boolean value indicating if the CeedOperator is composite.

Backend Developer Functions

Parameters
  • op[in] CeedOperator

  • is_composite[out] Variable to store composite status

Returns

An error code: 0 - success, otherwise - failure

int CeedOperatorGetData(CeedOperator op, void *data)

Get the backend data of a CeedOperator.

Backend Developer Functions

Parameters
  • op[in] CeedOperator

  • data[out] Variable to store data

Returns

An error code: 0 - success, otherwise - failure

int CeedOperatorSetData(CeedOperator op, void *data)

Set the backend data of a CeedOperator.

Backend Developer Functions

Parameters
  • op[inout] CeedOperator

  • data[in] Data to set

Returns

An error code: 0 - success, otherwise - failure

int CeedOperatorReference(CeedOperator op)

Increment the reference counter for a CeedOperator.

Backend Developer Functions

Parameters
  • op[inout] CeedOperator to increment the reference counter

Returns

An error code: 0 - success, otherwise - failure

int CeedOperatorSetSetupDone(CeedOperator op)

Set the setup flag of a CeedOperator to True.

Backend Developer Functions

Parameters
  • op[inout] CeedOperator

Returns

An error code: 0 - success, otherwise - failure

int CeedQFunctionAssemblyDataCreate(Ceed ceed, CeedQFunctionAssemblyData *data)

Create object holding CeedQFunction assembly data for CeedOperator.

Backend Developer Functions

Parameters
  • ceed[in] A Ceed object where the CeedQFunctionAssemblyData will be created

  • data[out] Address of the variable where the newly created CeedQFunctionAssemblyData will be stored

Returns

An error code: 0 - success, otherwise - failure

int CeedQFunctionAssemblyDataReference(CeedQFunctionAssemblyData data)

Increment the reference counter for a CeedQFunctionAssemblyData.

Backend Developer Functions

Parameters
  • data[inout] CeedQFunctionAssemblyData to increment the reference counter

Returns

An error code: 0 - success, otherwise - failure

int CeedQFunctionAssemblyDataSetReuse(CeedQFunctionAssemblyData data, bool reuse_data)

Set re-use of CeedQFunctionAssemblyData.

Backend Developer Functions

Parameters
  • data[inout] CeedQFunctionAssemblyData to mark for reuse

  • reuse_data[in] Boolean flag indicating data re-use

Returns

An error code: 0 - success, otherwise - failure

int CeedQFunctionAssemblyDataSetUpdateNeeded(CeedQFunctionAssemblyData data, bool needs_data_update)

Mark QFunctionAssemblyData as stale.

Backend Developer Functions

Parameters
  • data[inout] CeedQFunctionAssemblyData to mark as stale

  • needs_data_update[in] Boolean flag indicating if update is needed or completed

Returns

An error code: 0 - success, otherwise - failure

int CeedQFunctionAssemblyDataIsUpdateNeeded(CeedQFunctionAssemblyData data, bool *is_update_needed)

Determine if QFunctionAssemblyData needs update.

Backend Developer Functions

Parameters
  • data[in] CeedQFunctionAssemblyData to mark as stale

  • is_update_needed[out] Boolean flag indicating if re-assembly is required

Returns

An error code: 0 - success, otherwise - failure

int CeedQFunctionAssemblyDataReferenceCopy(CeedQFunctionAssemblyData data, CeedQFunctionAssemblyData *data_copy)

Copy the pointer to a CeedQFunctionAssemblyData.

Both pointers should be destroyed with CeedCeedQFunctionAssemblyDataDestroy().

Note: If the value of data_copy passed to this function is non-NULL, then it is assumed that *data_copy is a pointer to a CeedQFunctionAssemblyData. This CeedQFunctionAssemblyData will be destroyed if data_copy is the only reference to this CeedQFunctionAssemblyData.

Backend Developer Functions

Parameters
  • data[in] CeedQFunctionAssemblyData to copy reference to

  • data_copy[inout] Variable to store copied reference

Returns

An error code: 0 - success, otherwise - failure

int CeedQFunctionAssemblyDataIsSetup(CeedQFunctionAssemblyData data, bool *is_setup)

Get setup status for internal objects for CeedQFunctionAssemblyData.

Backend Developer Functions

Parameters
  • data[in] CeedQFunctionAssemblyData to retrieve status

  • is_setup[out] Boolean flag for setup status

Returns

An error code: 0 - success, otherwise - failure

int CeedQFunctionAssemblyDataSetObjects(CeedQFunctionAssemblyData data, CeedVector vec, CeedElemRestriction rstr)

Set internal objects for CeedQFunctionAssemblyData.

Backend Developer Functions

Parameters
  • data[inout] CeedQFunctionAssemblyData to set objects

  • vec[in] CeedVector to store assembled CeedQFunction at quadrature points

  • rstr[in] CeedElemRestriction for CeedVector containing assembled CeedQFunction

Returns

An error code: 0 - success, otherwise - failure

int CeedQFunctionAssemblyDataGetObjects(CeedQFunctionAssemblyData data, CeedVector *vec, CeedElemRestriction *rstr)
int CeedQFunctionAssemblyDataDestroy(CeedQFunctionAssemblyData *data)

Destroy CeedQFunctionAssemblyData.

Backend Developer Functions

Parameters
  • data[inout] CeedQFunctionAssemblyData to destroy

Returns

An error code: 0 - success, otherwise - failure

int CeedOperatorGetOperatorAssemblyData(CeedOperator op, CeedOperatorAssemblyData *data)

Get CeedOperatorAssemblyData.

Backend Developer Functions

Parameters
  • op[in] CeedOperator to assemble

  • data[out] CeedQFunctionAssemblyData

Returns

An error code: 0 - success, otherwise - failure

int CeedOperatorAssemblyDataCreate(Ceed ceed, CeedOperator op, CeedOperatorAssemblyData *data)

Create object holding CeedOperator assembly data.

The CeedOperatorAssemblyData holds an array with references to every active CeedBasis used in the CeedOperator. An array with references to the corresponding active CeedElemRestrictions is also stored. For each active CeedBasis, the CeedOperatorAssemblyData holds an array of all input and output CeedEvalModes for this CeedBasis. The CeedOperatorAssemblyData holds an array of offsets for indexing into the assembled CeedQFunction arrays to the row representing each CeedEvalMode. The number of input columns across all active bases for the assembled CeedQFunction is also stored. Lastly, the CeedOperatorAssembly data holds assembled matrices representing the full action of the CeedBasis for all CeedEvalModes.

Backend Developer Functions

Parameters
  • ceed[in] Ceed object where the CeedOperatorAssemblyData will be created

  • op[in] CeedOperator to be assembled

  • data[out] Address of the variable where the newly created CeedOperatorAssemblyData will be stored

Returns

An error code: 0 - success, otherwise - failure

int CeedOperatorAssemblyDataGetEvalModes(CeedOperatorAssemblyData data, CeedInt *num_active_bases, CeedInt **num_eval_modes_in, const CeedEvalMode ***eval_modes_in, CeedSize ***eval_mode_offsets_in, CeedInt **num_eval_modes_out, const CeedEvalMode ***eval_modes_out, CeedSize ***eval_mode_offsets_out, CeedSize *num_output_components)

Get CeedOperator CeedEvalModes for assembly.

Note: See CeedOperatorAssemblyDataCreate for a full description of the data stored in this object.

Backend Developer Functions

Parameters
  • data[in] CeedOperatorAssemblyData

  • num_active_bases[out] Total number of active bases

  • num_eval_modes_in[out] Pointer to hold array of numbers of input CeedEvalModes, or NULL. eval_modes_in[0] holds an array of eval modes for the first active basis.

  • eval_modes_in[out] Pointer to hold arrays of input CeedEvalModes, or NULL.

  • eval_mode_offsets_in[out] Pointer to hold arrays of input offsets at each quadrature point.

  • num_eval_modes_out[out] Pointer to hold array of numbers of output CeedEvalModes, or NULL

  • eval_modes_out[out] Pointer to hold arrays of output CeedEvalModes, or NULL.

  • eval_mode_offsets_out[out] Pointer to hold arrays of output offsets at each quadrature point

  • num_output_components[out] The number of columns in the assembled CeedQFunction matrix for each quadrature point, including contributions of all active bases

Returns

An error code: 0 - success, otherwise - failure

int CeedOperatorAssemblyDataGetBases(CeedOperatorAssemblyData data, CeedInt *num_active_bases, CeedBasis **active_bases, const CeedScalar ***assembled_bases_in, const CeedScalar ***assembled_bases_out)

Get CeedOperator CeedBasis data for assembly.

Note: See CeedOperatorAssemblyDataCreate for a full description of the data stored in this object.

Backend Developer Functions

Parameters
  • data[in] CeedOperatorAssemblyData

  • num_active_bases[out] Number of active bases, or NULL

  • active_bases[out] Pointer to hold active CeedBasis, or NULL

  • assembled_bases_in[out] Pointer to hold assembled active input B, or NULL

  • assembled_bases_out[out] Pointer to hold assembled active output B, or NULL

Returns

An error code: 0 - success, otherwise - failure

int CeedOperatorAssemblyDataGetElemRestrictions(CeedOperatorAssemblyData data, CeedInt *num_active_elem_rstrs, CeedElemRestriction **active_elem_rstrs)

Get CeedOperator CeedBasis data for assembly.

Note: See CeedOperatorAssemblyDataCreate for a full description of the data stored in this object.

Backend Developer Functions

Parameters
  • data[in] CeedOperatorAssemblyData

  • num_active_elem_rstrs[out] Number of active element restrictions, or NULL

  • active_elem_rstrs[out] Pointer to hold active CeedElemRestrictions, or NULL

Returns

An error code: 0 - success, otherwise - failure

int CeedOperatorAssemblyDataDestroy(CeedOperatorAssemblyData *data)

Destroy CeedOperatorAssemblyData.

Backend Developer Functions

Parameters
  • data[inout] CeedOperatorAssemblyData to destroy

Returns

An error code: 0 - success, otherwise - failure