Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 13 additions & 12 deletions pysindy/_weak.py
Original file line number Diff line number Diff line change
Expand Up @@ -413,6 +413,7 @@ def set_params(self, **kwargs):
for k, v in kwargs.items():
setattr(self, k, v)
self.__post_init()
return self

def fit(
self,
Expand Down Expand Up @@ -799,17 +800,17 @@ def _plan_weak_form(
"""
terms: list[SemiTerm | Collection[SemiTerm]] = []
term_namefuncs = []
for lib in lib.libraries:
for sublib in lib.libraries:
no_derivs = (
isinstance(lib, TensoredLibrary)
and not any(isinstance(lib, PDELibrary) for lib in lib.libraries)
or not isinstance(lib, (PDELibrary, TensoredLibrary))
isinstance(sublib, TensoredLibrary)
and not any(isinstance(sl, PDELibrary) for sl in sublib.libraries)
or not isinstance(sublib, (PDELibrary, TensoredLibrary))
)
if no_derivs:
term_namefuncs.append(lib.get_feature_names)
terms.append(SemiTerm(None, (lib, zero_deriv), 1, zero_deriv))
elif isinstance(lib, PDELibrary):
multiindices = lib.multiindices
term_namefuncs.append(sublib.get_feature_names)
terms.append(SemiTerm(None, (sublib, zero_deriv), 1, zero_deriv))
elif isinstance(sublib, PDELibrary):
multiindices = sublib.multiindices
if time_axis:
multiindices = np.hstack(
(multiindices, np.zeros((len(multiindices), 1), dtype=int))
Expand All @@ -819,7 +820,7 @@ def _plan_weak_form(
terms.extend(new_terms)
else:
pde_lib = next(
sublib for sublib in lib.libraries if isinstance(sublib, PDELibrary)
sl for sl in sublib.libraries if isinstance(sl, PDELibrary)
)
multiindices = pde_lib.multiindices
if time_axis:
Expand All @@ -828,9 +829,9 @@ def _plan_weak_form(
)
non_pde_lib = TensoredLibrary(
[
sublib
for sublib in lib.libraries
if not isinstance(sublib, PDELibrary)
sl
for sl in sublib.libraries
if not isinstance(sl, PDELibrary)
]
)
new_terms, new_namefuncs = _integrate_product_by_parts(
Expand Down
2 changes: 1 addition & 1 deletion pysindy/feature_library/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ def fit(self, x, y=None):

def transform(self, x):
check_is_fitted(self)
return np.empty((x.shape[:-1], 0))
return np.empty((*x.shape[:-1], 0))

def get_feature_names(self, input_features=None) -> list[str]:
return []
Expand Down