warp.fem.ImplicitField#

class warp.fem.ImplicitField(
domain,
func,
values=None,
grad_func=None,
div_func=None,
degree=0,
)[source]#

Field defined from an arbitrary function over a domain. Does not support autodiff yet, so if gradient/divergence evaluation is required corresponding functions must be provided.

Parameters:
  • domain (GeometryDomain) – Domain over which the field is defined

  • func (Function) – Warp function evaluating the field at a given position. Must accept at least one argument, with the first argument being the evaluation position (wp.vec2 or wp.vec3).

  • values (dict[str, Any] | None) – Optional dictionary of additional argument values to be passed to the evaluation function.

  • grad_func (Function | None) – Optional gradient evaluation function; must take same arguments as func

  • div_func (Function | None) – Optional divergence evaluation function; must take same arguments as func

  • degree – Optional hint for automatic determination of quadrature orders when integrating this field

__init__(
domain,
func,
values=None,
grad_func=None,
div_func=None,
degree=0,
)[source]#
Parameters:

Methods

__init__(domain, func[, values, grad_func, ...])

divergence_valid()

eval_arg_value(device)

eval_degree(args)

Polynomial degree of the field is applicable, or hint for determination of interpolation order

eval_div_inner(args, s)

Device function evaluating the inner field divergence at a sample point

eval_div_outer(args, s)

Device function evaluating the outer field divergence at a sample point

eval_grad_inner(args, s)

Device function evaluating the inner field gradient at a sample point

eval_grad_outer(args, s)

Device function evaluating the outer field gradient at a sample point

eval_inner(args, s)

Device function evaluating the inner field value at a sample point

eval_outer(args, s)

Device function evaluating the outer field value at a sample point

eval_reference_grad_inner(args, s)

Device function evaluating the inner field gradient with respect to reference element coordinates at a sample point

eval_reference_grad_outer(args, s)

Device function evaluating the outer field gradient with respect to reference element coordinates at a sample point

fill_eval_arg(arg, device)

Fill the field-level arguments to be passed to device functions

gradient_valid()

make_deformed_geometry([relative])

Returns a deformed version of the underlying geometry, with positions displaced according to this field's values.

notify_operator_usage(ops)

Makes the Domain aware that the operators ops will be applied

trace()

Attributes

degree

divergence_dtype

Return type of the divergence operator.

dtype

element_kind

geometry

gradient_dtype

Return type of the (world space) gradient operator.

name

reference_gradient_dtype

Return type of the reference space gradient operator.

values

EvalArg

Structure containing field-level arguments passed to device functions for field evaluation

ElementEvalArg

Structure combining geometry-level and field-level arguments passed to device functions for field evaluation

property values[source]#
property geometry: Geometry[source]#
property element_kind: ElementKind[source]#
property dtype[source]#
eval_arg_value(device)[source]#
property degree: int[source]#
property name: str[source]#
gradient_valid()[source]#
Return type:

bool

divergence_valid()[source]#
Return type:

bool

trace()[source]#