dedalus.core.subsystems ======================= .. py:module:: dedalus.core.subsystems .. autoapi-nested-parse:: Classes for manipulating pencils. Module Contents --------------- .. py:class:: Subproblem(solver, subsystems, group) Object representing one coupled subsystem of a problem. Subproblems are identified by their group multi-index, which identifies the corresponding group of each separable dimension of the problem. This is the generalization of 'pencils' from a problem with exactly one coupled dimension. .. py:method:: build_matrices(names) Build problem matrices. .. py:method:: check_condition(eqn) .. py:method:: coeff_shape(domain) .. py:method:: coeff_size(domain) .. py:method:: coeff_slices(domain) .. py:method:: expand_matrices(matrices) .. py:method:: field_shape(field) .. py:method:: field_size(field) .. py:method:: field_slices(field) .. py:method:: gather_inputs(fields, out=None) Gather and precondition subproblem data from input-like field list. .. py:method:: gather_outputs(fields, out=None) Gather and precondition subproblem data from output-like field list. .. py:method:: inclusion_matrices(bases) List of inclusion matrices. .. py:method:: scatter_inputs(data, fields) Precondition and scatter subproblem data out to input-like field list. .. py:method:: scatter_outputs(data, fields) Precondition and scatter subproblem data out to output-like field list. .. py:method:: shape() .. py:method:: size() .. py:method:: valid_modes(field, valid_modes) .. py:attribute:: dist .. py:attribute:: domain .. py:attribute:: dtype .. py:attribute:: group .. py:attribute:: group_dict .. py:attribute:: solver .. py:attribute:: subsystems .. py:class:: Subsystem(solver, group) Class representing a subset of the global coefficient space. I.e. the multidimensional generalization of a pencil. Each subsystem is described by a "group" tuple containing a group index (for each separable axis) or None (for each coupled axis). .. py:method:: coeff_shape(domain) .. py:method:: coeff_size(domain) .. py:method:: coeff_slices(domain) .. py:method:: field_shape(field) .. py:method:: field_size(field) .. py:method:: field_slices(field) .. py:method:: gather(fields) Gather and concatenate subsystem data in from multiple fields. .. py:method:: scatter(data_input, fields) Scatter concatenated subsystem data out to multiple fields. .. py:attribute:: dist .. py:attribute:: dtype .. py:attribute:: group .. py:attribute:: matrix_group .. py:attribute:: solver .. py:function:: build_subproblem_matrices(solver, subproblems, matrices) .. py:function:: build_subproblems(solver, subsystems, build_matrices=None) Build subproblem matrices with progress logger. .. py:function:: build_subsystems(solver) Build local subsystem objects. .. py:function:: left_permutation(subproblem, equations, bc_top, interleave_components) Left permutation acting on equations. bc_top determines if lower-dimensional equations are placed at the top or bottom of the matrix. Input ordering: Equations > Components > Modes Output ordering with interleave_components=True: Modes > Components > Equations Output ordering with interleave_components=False: Modes > Equations > Components .. py:function:: right_permutation(subproblem, variables, tau_left, interleave_components) Right permutation acting on variables. tau_left determines if lower-dimensional variables are placed at the left or right of the matrix. Input ordering: Variables > Components > Modes Output ordering with interleave_components=True: Modes > Components > Variables Output ordering with interleave_components=False: Modes > Variables > Components .. py:data:: logger