pydae.core.builder.core¶
- The Builder orchestrates the full pipeline:
Parse & validate the symbolic system dictionary
Compute symbolic Jacobians
Translate to C code
Compile into a shared library (.so / .dll) or CFFI extension
Usage¶
# Dense, CFFI (default) Builder(sys_dict)
# Sparse with KLU, ctypes Builder(sys_dict, target=’ctypes’, sparse=’klu’)
# Sparse with Apple Accelerate, CFFI Builder(sys_dict, target=’cffi’, sparse=’accelerate’)
# Sparse with PARDISO, ctypes Builder(sys_dict, target=’ctypes’, sparse=’pardiso’)
# Legacy: sparse=True is equivalent to sparse=’klu’ Builder(sys_dict, sparse=True)
Classes
|
|
|
JSON encoder that handles SymPy Symbol/Expr objects. |
- class pydae.core.builder.core.Builder(system_dict, verbose=False, API=False, target='cffi', sparse=True)[source]¶
Bases:
object
- class pydae.core.builder.core.SympyEncoder(*, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, sort_keys=False, indent=None, separators=None, default=None)[source]¶
Bases:
JSONEncoderJSON encoder that handles SymPy Symbol/Expr objects.
- default(obj)[source]¶
Implement this method in a subclass such that it returns a serializable object for
o, or calls the base implementation (to raise aTypeError).For example, to support arbitrary iterators, you could implement default like this:
def default(self, o): try: iterable = iter(o) except TypeError: pass else: return list(iterable) # Let the base class default method raise the TypeError return super().default(o)