Operator
LibCEED.Operator — TypeOperator(ceed::Ceed; qf, dqf=QFunctionNone(), dqfT=QFunctionNone(), fields)Creates a libCEED CeedOperator object using the given Q-function qf, and optionally its derivative and derivative transpose.
An array of fields must be provided, where each element of the array is a tuple containing the name of the field (as a string or symbol), the corresponding element restriction, basis, and vector.
Examples
Create the operator that builds the Q-data associated with the mass matrix.
build_oper = Operator(
ceed,
qf=build_qfunc,
fields=[
(:J, mesh_restr, mesh_basis, CeedVectorActive()),
(:w, ElemRestrictionNone(), mesh_basis, CeedVectorNone()),
(:qdata, sol_restr_i, BasisCollocated(), CeedVectorActive())
]
)LibCEED.create_composite_operator — Functioncreate_composite_operator(c::Ceed, ops)Create an Operator whose action represents the sum of the operators in the collection ops.
LibCEED.apply! — Methodapply!(op::Operator, vin, vout; request=RequestImmediate())Apply the action of the operator op to the input vector vin, and store the result in the output vector vout.
For non-blocking application, the user can specify a request object. By default, immediate (synchronous) completion is requested.
LibCEED.apply_add! — Functionapply_add!(op::Operator, vin, vout; request=RequestImmediate())Apply the action of the operator op to the input vector vin, and add the result to the output vector vout.
For non-blocking application, the user can specify a request object. By default, immediate (synchronous) completion is requested.
LibCEED.assemble_diagonal! — Functionassemble_diagonal!(op::Operator, diag::CeedVector; request=RequestImmediate())Overwrites a CeedVector with the diagonal of a linear Operator.
Currently only Operators with a single field are supported.
LibCEED.assemble_add_diagonal! — Functionassemble_diagonal!(op::Operator, diag::CeedVector; request=RequestImmediate())Adds the diagonal of a linear Operator to the given CeedVector.
Currently only Operators with a single field are supported.