本文整理汇总了Python中openmdao.recorders.recording_manager.RecordingManager.startup方法的典型用法代码示例。如果您正苦于以下问题:Python RecordingManager.startup方法的具体用法?Python RecordingManager.startup怎么用?Python RecordingManager.startup使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类openmdao.recorders.recording_manager.RecordingManager
的用法示例。
在下文中一共展示了RecordingManager.startup方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: Driver
# 需要导入模块: from openmdao.recorders.recording_manager import RecordingManager [as 别名]
# 或者: from openmdao.recorders.recording_manager.RecordingManager import startup [as 别名]
#.........这里部分代码省略.........
if rec_responses:
myresponses = {n for n in self._responses
if check_path(n, incl, excl, True)}
# get the includes that were requested for this Driver recording
if incl:
prob = self._problem
root = prob.model
# The my* variables are sets
# First gather all of the desired outputs
# The following might only be the local vars if MPI
mysystem_outputs = {n for n in root._outputs
if check_path(n, incl, excl)}
# If MPI, and on rank 0, need to gather up all the variables
# even those not local to rank 0
if MPI:
all_vars = root.comm.gather(mysystem_outputs, root=0)
if MPI.COMM_WORLD.rank == 0:
mysystem_outputs = all_vars[-1]
for d in all_vars[:-1]:
mysystem_outputs.update(d)
# de-duplicate mysystem_outputs
mysystem_outputs = mysystem_outputs.difference(all_desvars, all_objectives,
all_constraints)
if MPI: # filter based on who owns the variables
# TODO Eventually, we think we can get rid of this next check. But to be safe,
# we are leaving it in there.
if not model.is_active():
raise RuntimeError(
"RecordingManager.startup should never be called when "
"running in parallel on an inactive System")
rrank = self._problem.comm.rank # root ( aka model ) rank.
rowned = model._owning_rank['output']
mydesvars = [n for n in mydesvars if rrank == rowned[n]]
myresponses = [n for n in myresponses if rrank == rowned[n]]
myobjectives = [n for n in myobjectives if rrank == rowned[n]]
myconstraints = [n for n in myconstraints if rrank == rowned[n]]
mysystem_outputs = [n for n in mysystem_outputs if rrank == rowned[n]]
self._filtered_vars_to_record = {
'des': mydesvars,
'obj': myobjectives,
'con': myconstraints,
'res': myresponses,
'sys': mysystem_outputs,
}
self._rec_mgr.startup(self)
if self._rec_mgr._recorders:
from openmdao.devtools.problem_viewer.problem_viewer import _get_viewer_data
self._model_viewer_data = _get_viewer_data(problem)
if self.recording_options['record_metadata']:
self._rec_mgr.record_metadata(self)
# set up simultaneous deriv coloring
if self._simul_coloring_info and self.supports['simultaneous_derivatives']:
if problem._mode == 'fwd':
self._setup_simul_coloring(problem._mode)
else:
raise RuntimeError("simultaneous derivs are currently not supported in rev mode.")
def _get_voi_val(self, name, meta, remote_vois):
示例2: Solver
# 需要导入模块: from openmdao.recorders.recording_manager import RecordingManager [as 别名]
# 或者: from openmdao.recorders.recording_manager.RecordingManager import startup [as 别名]
#.........这里部分代码省略.........
"""
if MPI:
raise RuntimeError(
"Recording of Solvers when running parallel code is not supported yet")
self._rec_mgr.append(recorder)
def _declare_options(self):
"""
Declare options before kwargs are processed in the init method.
This is optionally implemented by subclasses of Solver.
"""
pass
def _setup_solvers(self, system, depth):
"""
Assign system instance, set depth, and optionally perform setup.
Parameters
----------
system : <System>
pointer to the owning system.
depth : int
depth of the current system (already incremented).
"""
self._system = system
self._depth = depth
self._solver_info = system._solver_info
self._recording_iter = system._recording_iter
if isinstance(self, LinearSolver) and not system._use_derivatives:
return
self._rec_mgr.startup(self)
self._rec_mgr.record_metadata(self)
myoutputs = myresiduals = myinputs = set()
incl = self.recording_options['includes']
excl = self.recording_options['excludes']
if self.recording_options['record_solver_residuals']:
if isinstance(self, NonlinearSolver):
residuals = system._residuals
else: # it's a LinearSolver
residuals = system._vectors['residual']['linear']
myresiduals = {n for n in residuals._names if check_path(n, incl, excl)}
if self.recording_options['record_outputs']:
if isinstance(self, NonlinearSolver):
outputs = system._outputs
else: # it's a LinearSolver
outputs = system._vectors['output']['linear']
myoutputs = {n for n in outputs._names if check_path(n, incl, excl)}
if self.recording_options['record_inputs']:
if isinstance(self, NonlinearSolver):
inputs = system._inputs
else:
inputs = system._vectors['input']['linear']
myinputs = {n for n in inputs._names if check_path(n, incl, excl)}
self._filtered_vars_to_record = {
'in': myinputs,
示例3: Driver
# 需要导入模块: from openmdao.recorders.recording_manager import RecordingManager [as 别名]
# 或者: from openmdao.recorders.recording_manager.RecordingManager import startup [as 别名]
#.........这里部分代码省略.........
con_dict[vname] = (owner, sizes[owner, i])
if vname in obj_set:
obj_dict[vname] = (owner, sizes[owner, i])
self._remote_responses = self._remote_cons.copy()
self._remote_responses.update(self._remote_objs)
# set up simultaneous deriv coloring
if (coloring_mod._use_sparsity and self._simul_coloring_info and
self.supports['simultaneous_derivatives']):
self._setup_simul_coloring()
def _get_vars_to_record(self, recording_options):
"""
Get variables to record based on recording options.
Parameters
----------
recording_options : <OptionsDictionary>
Dictionary with recording options.
Returns
-------
dict
Dictionary containing lists of variables to record.
"""
problem = self._problem
model = problem.model
if MPI:
# TODO: Eventually, we think we can get rid of this next check.
# But to be safe, we are leaving it in there.
if not model.is_active():
raise RuntimeError("RecordingManager.startup should never be called when "
"running in parallel on an inactive System")
rrank = problem.comm.rank
rowned = model._owning_rank
incl = recording_options['includes']
excl = recording_options['excludes']
# includes and excludes for outputs are specified using promoted names
# NOTE: only local var names are in abs2prom, all will be gathered later
abs2prom = model._var_abs2prom['output']
all_desvars = {n for n in self._designvars
if n in abs2prom and check_path(abs2prom[n], incl, excl, True)}
all_objectives = {n for n in self._objs
if n in abs2prom and check_path(abs2prom[n], incl, excl, True)}
all_constraints = {n for n in self._cons
if n in abs2prom and check_path(abs2prom[n], incl, excl, True)}
# design variables, objectives and constraints are always in the options
mydesvars = myobjectives = myconstraints = set()
if recording_options['record_desvars']:
if MPI:
mydesvars = [n for n in all_desvars if rrank == rowned[n]]
else:
mydesvars = list(all_desvars)
if recording_options['record_objectives']:
if MPI:
myobjectives = [n for n in all_objectives if rrank == rowned[n]]
else:
myobjectives = list(all_objectives)