MCPcopy Create free account
hub / github.com/DedalusProject/dedalus / set_state

Method set_state

dedalus/core/solvers.py:296–321  ·  view source on GitHub ↗

Set state vector to the specified eigenmode. Parameters ---------- index : int Index of desired eigenmode. subsystem : Subsystem object or int, optional Subsystem that will be set to the corresponding eigenmode. If an inte

(self, index, subsystem=0)

Source from the content-addressed store, hash-verified

294 self.right_eigenvectors = self.eigenvectors = sp.pre_right @ pre_right_evecs
295
296 def set_state(self, index, subsystem=0):
297 """
298 Set state vector to the specified eigenmode.
299
300 Parameters
301 ----------
302 index : int
303 Index of desired eigenmode.
304 subsystem : Subsystem object or int, optional
305 Subsystem that will be set to the corresponding eigenmode.
306 If an integer, the corresponding subsystem of the last specified
307 eigenvalue_subproblem will be used. Default: 0.
308 """
309 # TODO: allow setting left modified eigenvectors?
310 subproblem = self.eigenvalue_subproblem
311 if isinstance(subsystem, int):
312 subsystem = subproblem.subsystems[subsystem]
313 # Check selection
314 if subsystem not in subproblem.subsystems:
315 raise ValueError("subsystem must be in eigenvalue_subproblem")
316 # Set coefficients
317 for var in self.state:
318 var['c'] = 0
319 subsystem.scatter(self.eigenvectors[:, index], self.state)
320 # Set eigenvalue
321 self.problem.eigenvalue['g'] = self.eigenvalues[index]
322
323
324class LinearBoundaryValueSolver(SolverBase):

Callers 4

pipe_flow.pyFile · 0.80

Calls 1

scatterMethod · 0.45

Tested by 2