Discretizations¶
QBX discretization¶
To compute a layer potential as an an end user, create a
meshmode.discretization.Discretization
with a InterpolatoryQuadratureSimplexGroupFactory
as a discretization for the density.
Then create pytential.qbx.QBXLayerPotentialSource
,
pytential.bind()
a layer potential operator to it,
and you can start computing.

class
pytential.qbx.
QBXLayerPotentialSource
(density_discr, fine_order, qbx_order=None, fmm_order=None, fmm_level_to_order=None, to_refined_connection=None, expansion_factory=None, target_association_tolerance=<class 'pytential.qbx._not_provided'>, debug=True, _refined_for_global_qbx=False, _expansions_in_tree_have_extent=True, _expansion_stick_out_factor=0.5, _well_sep_is_n_away=2, _max_leaf_refine_weight=None, _box_extent_norm=None, _from_sep_smaller_crit=None, _from_sep_smaller_min_nsources_cumul=None, _tree_kind='adaptive', geometry_data_inspector=None, fmm_backend='sumpy', target_stick_out_factor=<class 'pytential.qbx._not_provided'>)[source]¶ A source discretization for a QBX layer potential.

qbx_order
¶

fmm_order
¶
See QBX internals for some information on the inner workings of this.
Parameters:  fine_order – The total degree to which the (upsampled) underlying quadrature is exact.
 to_refined_connection – A connection used for resampling from density_discr the fine density discretization. It is assumed that the fine density discretization given by to_refined_connection.to_discr is not already upsampled. May be None.
 fmm_order – False for direct calculation. May not be given if fmm_level_to_order is given.
 fmm_level_to_order – A function that takes arguments of
(kernel, kernel_args, tree, level) and returns the expansion
order to be used on a given level of tree with kernel, where
kernel is the
sumpy.kernel.Kernel
being evaluated, and kernel_args is a set of (key, value) tuples with evaluated kernel arguments. May not be given if fmm_order is given.

Unregularized discretization¶

class
pytential.unregularized.
UnregularizedLayerPotentialSource
(density_discr, fmm_order=False, fmm_level_to_order=None, expansion_factory=None, debug=True)[source]¶ A source discretization for a layer potential discretized with a Nyström method that uses panelbased quadrature and does not modify the kernel.

fmm_level_to_order
¶
Parameters: fmm_order – False for direct calculation. 
Sources¶

class
pytential.source.
PotentialSource
[source]¶ 

op_group_features
(expr)¶ Return a characteristic tuple by which operators that can be executed together can be grouped.
expr is a subclass of
pytential.symbolic.primitives.IntG
.


class
pytential.source.
LayerPotentialSourceBase
[source]¶ A discretization of a layer potential using panelbased geometry, with support for refinement and upsampling.
Discretizations

density_discr
¶

stage2_density_discr
¶

quad_stage2_density_discr
¶

resampler
¶

with_refinement
()¶
Discretization data

cl_context
¶

ambient_dim
¶

dim
¶

real_dtype
¶

complex_dtype
¶

h_max
¶
Execution

weights_and_area_elements
()¶

exec_compute_potential_insn
()¶

Targets¶
Target discretizations are a simpler version of the full
pytential.discretization.Discretization
interface.
They do not provide any evaluation of integrals, norms, or
layer potentials, but are instead only geared towards being
used as evaluation targets.