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
CeedOperatorBackend Developer Functions
- Parameters:
op – [in]
CeedOperatornum_args – [out] Variable to store vector number of arguments
- Returns:
An error code: 0 - success, otherwise - failure
-
int CeedOperatorHasTensorBases(CeedOperator op, bool *has_tensor_bases)
Get the tensor product status of all bases for a
CeedOperator.has_tensor_basesis only set totrueif every field uses a tensor-product basis.Backend Developer Functions
- Parameters:
op – [in]
CeedOperatorhas_tensor_bases – [out] Variable to store tensor bases status
- Returns:
An error code: 0 - success, otherwise - failure
-
int CeedOperatorIsImmutable(CeedOperator op, bool *is_immutable)
Get a boolean value indicating if the
CeedOperatoris immutable.Backend Developer Functions
- Parameters:
op – [in]
CeedOperatoris_immutable – [out] Variable to store immutability status
- Returns:
An error code: 0 - success, otherwise - failure
-
int CeedOperatorIsSetupDone(CeedOperator op, bool *is_setup_done)
Get the setup status of a
CeedOperatorBackend Developer Functions
- Parameters:
op – [in]
CeedOperatoris_setup_done – [out] Variable to store setup status
- Returns:
An error code: 0 - success, otherwise - failure
-
int CeedOperatorGetQFunction(CeedOperator op, CeedQFunction *qf)
Get the
CeedQFunctionassociated with aCeedOperatorBackend Developer Functions
- Parameters:
op – [in]
CeedOperatorqf – [out] Variable to store
CeedQFunction
- Returns:
An error code: 0 - success, otherwise - failure
-
int CeedOperatorIsComposite(CeedOperator op, bool *is_composite)
Get a boolean value indicating if the
CeedOperatoris composite.Backend Developer Functions
- Parameters:
op – [in]
CeedOperatoris_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
CeedOperatorBackend Developer Functions
- Parameters:
op – [in]
CeedOperatordata – [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
CeedOperatorBackend Developer Functions
- Parameters:
op – [inout]
CeedOperatordata – [in] Data to set
- Returns:
An error code: 0 - success, otherwise - failure
-
int CeedOperatorReference(CeedOperator op)
Increment the reference counter for a
CeedOperatorBackend Developer Functions
- Parameters:
op – [inout]
CeedOperatorto increment the reference counter
- Returns:
An error code: 0 - success, otherwise - failure
-
int CeedOperatorSetSetupDone(CeedOperator op)
Set the setup flag of a
CeedOperatortotrueBackend Developer Functions
- Parameters:
op – [inout]
CeedOperator
- Returns:
An error code: 0 - success, otherwise - failure
-
int CeedOperatorGetBasisPointer(CeedBasis basis, CeedEvalMode eval_mode, const CeedScalar *identity, const CeedScalar **basis_ptr)
Select correct basis matrix pointer based on CeedEvalMode.
Backend Developer Functions
- Parameters:
basis – [in]
CeedBasisfrom which to get the basis matrixeval_mode – [in] Current basis evaluation mode
identity – [in] Pointer to identity matrix
basis_ptr – [out]
CeedBasispointer to set
-
int CeedOperatorCreateActivePointBlockRestriction(CeedElemRestriction rstr, CeedElemRestriction *point_block_rstr)
Create point block restriction for active
CeedOperatorFieldBackend Developer Functions
- Parameters:
rstr – [in] Original
CeedElemRestrictionfor active fieldpoint_block_rstr – [out] Address of the variable where the newly created
CeedElemRestrictionwill be stored
- Returns:
An error code: 0 - success, otherwise - failure
-
int CeedOperatorGetQFunctionAssemblyData(CeedOperator op, CeedQFunctionAssemblyData *data)
Get
CeedQFunctionAssemblyDataBackend Developer Functions
- Parameters:
op – [in]
CeedOperatorto assembledata – [out]
CeedQFunctionAssemblyData
- Returns:
An error code: 0 - success, otherwise - failure
-
int CeedQFunctionAssemblyDataCreate(Ceed ceed, CeedQFunctionAssemblyData *data)
Create object holding
CeedQFunctionassembly data forCeedOperatorBackend Developer Functions
- Parameters:
ceed – [in]
Ceedobject used to create theCeedQFunctionAssemblyDatadata – [out] Address of the variable where the newly created
CeedQFunctionAssemblyDatawill be stored
- Returns:
An error code: 0 - success, otherwise - failure
-
int CeedQFunctionAssemblyDataReference(CeedQFunctionAssemblyData data)
Increment the reference counter for a
CeedQFunctionAssemblyDataBackend Developer Functions
- Parameters:
data – [inout]
CeedQFunctionAssemblyDatato increment the reference counter
- Returns:
An error code: 0 - success, otherwise - failure
-
int CeedQFunctionAssemblyDataSetReuse(CeedQFunctionAssemblyData data, bool reuse_data)
Set re-use of
CeedQFunctionAssemblyDataBackend Developer Functions
- Parameters:
data – [inout]
CeedQFunctionAssemblyDatato mark for reusereuse_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
CeedQFunctionAssemblyDataas stale.Backend Developer Functions
- Parameters:
data – [inout]
CeedQFunctionAssemblyDatato mark as staleneeds_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
CeedQFunctionAssemblyDataneeds update.Backend Developer Functions
- Parameters:
data – [in]
CeedQFunctionAssemblyDatato mark as staleis_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 CeedQFunctionAssemblyDataDestroy().
Note: If the value of
*data_copypassed to this function is non-NULL, then it is assumed that*data_copyis a pointer to aCeedQFunctionAssemblyData. ThisCeedQFunctionAssemblyDatawill be destroyed if*data_copyis the only reference to thisCeedQFunctionAssemblyData.Backend Developer Functions
- Parameters:
data – [in]
CeedQFunctionAssemblyDatato copy reference todata_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
CeedQFunctionAssemblyDataBackend Developer Functions
- Parameters:
data – [in]
CeedQFunctionAssemblyDatato retrieve statusis_setup – [out] Boolean flag for setup status
- Returns:
An error code: 0 - success, otherwise - failure
-
int CeedQFunctionAssemblyDataSetBlockAssembling(CeedQFunctionAssemblyData data, bool is_block_assembling)
Mark
CeedQFunctionAssemblyDataas being between block assembly, preventing recomputing for each block.Backend Developer Functions
- Parameters:
data – [inout]
CeedQFunctionAssemblyDatato markis_block_assembling – [in] Boolean flag indicating if the data is being used for multiple blocks
- Returns:
An error code: 0 - success, otherwise - failure
-
int CeedQFunctionAssemblyDataSetObjects(CeedQFunctionAssemblyData data, CeedVector vec, CeedElemRestriction rstr)
Set internal objects for
CeedQFunctionAssemblyDataBackend Developer Functions
- Parameters:
data – [inout]
CeedQFunctionAssemblyDatato set objectsvec – [in]
CeedVectorto store assembledCeedQFunctionat quadrature pointsrstr – [in]
CeedElemRestrictionforCeedVectorcontaining assembledCeedQFunction
- Returns:
An error code: 0 - success, otherwise - failure
-
int CeedQFunctionAssemblyDataGetObjects(CeedQFunctionAssemblyData data, CeedVector *vec, CeedElemRestriction *rstr)
Get internal objects for
CeedQFunctionAssemblyDataBackend Developer Functions
- Parameters:
data – [inout]
CeedQFunctionAssemblyDatato set objectsvec – [out]
CeedVectorto store assembledCeedQFunctionat quadrature pointsrstr – [out]
CeedElemRestrictionforCeedVectorcontaining assembledCeedQFunction
- Returns:
An error code: 0 - success, otherwise - failure
-
int CeedQFunctionAssemblyDataDestroy(CeedQFunctionAssemblyData *data)
Destroy
CeedQFunctionAssemblyDataBackend Developer Functions
- Parameters:
data – [inout]
CeedQFunctionAssemblyDatato destroy
- Returns:
An error code: 0 - success, otherwise - failure
-
int CeedOperatorGetOperatorAssemblyData(CeedOperator op, CeedOperatorAssemblyData *data)
Get
CeedOperatorAssemblyDataBackend Developer Functions
- Parameters:
op – [in]
CeedOperatorto assembledata – [out]
CeedOperatorAssemblyData
- Returns:
An error code: 0 - success, otherwise - failure
-
int CeedOperatorAssemblyDataCreate(Ceed ceed, CeedOperator op, CeedOperatorAssemblyData *data)
Create object holding
CeedOperatorassembly data.The
CeedOperatorAssemblyDataholds an array with references to every activeCeedBasisused in theCeedOperator. An array with references to the corresponding activeCeedElemRestrictionis also stored. For each activeCeedBasis, theCeedOperatorAssemblyDataholds an array of all input and output CeedEvalMode for thisCeedBasis. TheCeedOperatorAssemblyDataholds an array of offsets for indexing into the assembledCeedQFunctionarrays to the row representing each CeedEvalMode. The number of input columns across all active bases for the assembledCeedQFunctionis also stored. Lastly, theCeedOperatorAssemblydata holds assembled matrices representing the full action of theCeedBasisfor all CeedEvalMode.Backend Developer Functions
- Parameters:
ceed – [in]
Ceedobject used to create theCeedOperatorAssemblyDataop – [in]
CeedOperatorto be assembleddata – [out] Address of the variable where the newly created
CeedOperatorAssemblyDatawill be stored
- Returns:
An error code: 0 - success, otherwise - failure
-
int CeedOperatorAssemblyDataGetEvalModes(CeedOperatorAssemblyData data, CeedInt *num_active_bases_in, CeedInt **num_eval_modes_in, const CeedEvalMode ***eval_modes_in, CeedSize ***eval_mode_offsets_in, CeedInt *num_active_bases_out, CeedInt **num_eval_modes_out, const CeedEvalMode ***eval_modes_out, CeedSize ***eval_mode_offsets_out, CeedSize *num_output_components)
Get
CeedOperatorCeedEvalMode for assembly.Note: See CeedOperatorAssemblyDataCreate() for a full description of the data stored in this object.
Backend Developer Functions
- Parameters:
data – [in]
CeedOperatorAssemblyDatanum_active_bases_in – [out] Total number of active bases for input
num_eval_modes_in – [out] Pointer to hold array of numbers of input CeedEvalMode, or
NULL.eval_modes_in[0]holds an array of eval modes for the first activeCeedBasis.eval_modes_in – [out] Pointer to hold arrays of input CeedEvalMode, or
NULLeval_mode_offsets_in – [out] Pointer to hold arrays of input offsets at each quadrature point
num_active_bases_out – [out] Total number of active bases for output
num_eval_modes_out – [out] Pointer to hold array of numbers of output CeedEvalMode, or
NULLeval_modes_out – [out] Pointer to hold arrays of output CeedEvalMode, or
NULLeval_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
CeedQFunctionmatrix 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_in, CeedBasis **active_bases_in, const CeedScalar ***assembled_bases_in, CeedInt *num_active_bases_out, CeedBasis **active_bases_out, const CeedScalar ***assembled_bases_out)
Get
CeedOperatorCeedBasisdata for assembly.Note: See CeedOperatorAssemblyDataCreate() for a full description of the data stored in this object.
Backend Developer Functions
- Parameters:
data – [in]
CeedOperatorAssemblyDatanum_active_bases_in – [out] Number of active input bases, or
NULLactive_bases_in – [out] Pointer to hold active input
CeedBasis, orNULLassembled_bases_in – [out] Pointer to hold assembled active input
B, orNULLnum_active_bases_out – [out] Number of active output bases, or
NULLactive_bases_out – [out] Pointer to hold active output
CeedBasis, orNULLassembled_bases_out – [out] Pointer to hold assembled active output
B, orNULL
- Returns:
An error code: 0 - success, otherwise - failure
-
int CeedOperatorAssemblyDataGetElemRestrictions(CeedOperatorAssemblyData data, CeedInt *num_active_elem_rstrs_in, CeedElemRestriction **active_elem_rstrs_in, CeedInt *num_active_elem_rstrs_out, CeedElemRestriction **active_elem_rstrs_out)
Get
CeedOperatorCeedBasisdata for assembly.Note: See CeedOperatorAssemblyDataCreate() for a full description of the data stored in this object.
Backend Developer Functions
- Parameters:
data – [in]
CeedOperatorAssemblyDatanum_active_elem_rstrs_in – [out] Number of active input element restrictions, or
NULLactive_elem_rstrs_in – [out] Pointer to hold active input
CeedElemRestriction, orNULLnum_active_elem_rstrs_out – [out] Number of active output element restrictions, or
NULLactive_elem_rstrs_out – [out] Pointer to hold active output
CeedElemRestriction, orNULL
- Returns:
An error code: 0 - success, otherwise - failure
-
int CeedOperatorAssemblyDataDestroy(CeedOperatorAssemblyData *data)
Destroy
CeedOperatorAssemblyDataBackend Developer Functions
- Parameters:
data – [inout]
CeedOperatorAssemblyDatato destroy
- Returns:
An error code: 0 - success, otherwise - failure
-
int CeedOperatorGetFallback(CeedOperator op, CeedOperator *op_fallback)
Retrieve fallback
CeedOperatorwith a referenceCeedfor advancedCeedOperatorfunctionality.Backend Developer Functions
- Parameters:
op – [in]
CeedOperatorto retrieve fallback forop_fallback – [out] Fallback
CeedOperator
- Returns:
An error code: 0 - success, otherwise - failure
-
int CeedOperatorGetFallbackParent(CeedOperator op, CeedOperator *parent)
Get the parent
CeedOperatorfor a fallbackCeedOperatorBackend Developer Functions
- Parameters:
op – [in]
CeedOperatorcontextparent – [out] Variable to store parent
CeedOperatorcontext
- Returns:
An error code: 0 - success, otherwise - failure
-
int CeedOperatorGetFallbackParentCeed(CeedOperator op, Ceed *parent)
Get the
Ceedcontext of the parentCeedOperatorfor a fallbackCeedOperatorBackend Developer Functions
- Parameters:
op – [in]
CeedOperatorcontextparent – [out] Variable to store parent
Ceedcontext
- Returns:
An error code: 0 - success, otherwise - failure