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_rstr, mesh_basis, CeedVectorActive()),
(:w, ElemRestrictionNone(), mesh_basis, CeedVectorNone()),
(:qdata, sol_rstr_i, BasisNone(), 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 Operator
s 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 Operator
s with a single field are supported.