sympde.core package¶
Submodules¶
sympde.core.algebra module¶
- class sympde.core.algebra.CrossBasic(*args)[source]¶
Bases:
CalculusFunction- default_assumptions: ClassVar[StdFactKB] = {}¶
- name = 'Cross'¶
- nargs = Naturals0¶
- class sympde.core.algebra.Cross_2d(*_args)[source]¶
Bases:
CrossBasic- default_assumptions: ClassVar[StdFactKB] = {}¶
- class sympde.core.algebra.Cross_3d(*_args)[source]¶
Bases:
CrossBasic- default_assumptions: ClassVar[StdFactKB] = {}¶
- class sympde.core.algebra.DotBasic(*args)[source]¶
Bases:
CalculusFunction- default_assumptions: ClassVar[StdFactKB] = {}¶
- name = 'Dot'¶
- nargs = Naturals0¶
- class sympde.core.algebra.Dot_1d(*_args)[source]¶
Bases:
DotBasic- default_assumptions: ClassVar[StdFactKB] = {}¶
- class sympde.core.algebra.Dot_2d(*_args)[source]¶
Bases:
DotBasic- default_assumptions: ClassVar[StdFactKB] = {}¶
- class sympde.core.algebra.Dot_3d(*_args)[source]¶
Bases:
DotBasic- default_assumptions: ClassVar[StdFactKB] = {}¶
- class sympde.core.algebra.InnerBasic(*args)[source]¶
Bases:
CalculusFunction- default_assumptions: ClassVar[StdFactKB] = {}¶
- name = 'Inner'¶
- nargs = Naturals0¶
- class sympde.core.algebra.Inner_2d(*_args)[source]¶
Bases:
InnerBasic- default_assumptions: ClassVar[StdFactKB] = {}¶
- class sympde.core.algebra.Inner_3d(*_args)[source]¶
Bases:
InnerBasic- default_assumptions: ClassVar[StdFactKB] = {}¶
sympde.core.basic module¶
- class sympde.core.basic.BasicDerivable(*args)[source]¶
Bases:
Basic- default_assumptions: ClassVar[StdFactKB] = {}¶
- class sympde.core.basic.BasicMapping(label, shape=None, *, offset=0, strides=None, **kw_args)[source]¶
Bases:
IndexedBaseRepresents a basic class for mapping.
- default_assumptions: ClassVar[StdFactKB] = {}¶
- class sympde.core.basic.CalculusFunction(*args)[source]¶
Bases:
Functionthis class is needed to distinguish between functions and calculus functions when manipulating our expressions
- default_assumptions: ClassVar[StdFactKB] = {}¶
- class sympde.core.basic.Constant(*args, **kwargs)[source]¶
Bases:
SymbolRepresents a constant symbol.
Examples
- default_assumptions: ClassVar[StdFactKB] = {}¶
- is_number = True¶
- property label¶
- name: str¶
- sympde.core.basic.new_basic(cls, *args, **options)[source]¶
Construct a
Basicafter normalizing all structural arguments.
- sympde.core.basic.restore_container_argument(value)[source]¶
Restore Python containers used as non-expression metadata.
- sympde.core.basic.restore_int_argument(value)[source]¶
Restore a Python integer stored as a SymPy
Integerobject.
sympde.core.utils module¶
- sympde.core.utils.expand_name_patterns(names, *, seq=None)[source]¶
Expand names according to the given pattern or list of patterns, following exactly the same rules of Sympy’s “symbols” function.
Parameters¶
- names: str or iterable
Variable name, or name pattern, or list of name patterns, or list of [list of …] name patterns.
- seq: bool
Set to True if an iterable container is needed for a single name.
Results¶
- res: str or iterable
Single name string, or list of [list of …] name strings (having the same type as the input parameter ‘names’).
See also¶
https://docs.sympy.org/latest/modules/core.html#sympy.core.symbol.symbols
Notes¶
This code is extracted from Sympy’s “symbols” function, but it only generates variables’ names without creating new objects, which can be instantiated at a later stage. This creates a very clear logical separation between 1) names’ generation, and 2) objects’ instantiation, plus it allows one to reuse the same name expansion rules in different locations of the library, for generating different objects. Further, since separate functions take on conceptually different tasks, it is much easier to test them individually.
This approach would also be beneficial to Sympy’s “symbols”, as it would allow for other Python libraries based on Sympy (like SymPDE) to be compliant with Sympy’s name expansion rules without duplicating its code. Hence, in the future we would like to propose the integration of this function into Sympy.