submodel_comp.py

submodel_comp.py#

Define the SubmodelComp class for evaluating OpenMDAO systems within components.

class openmdao.components.submodel_comp.SubmodelComp(problem, inputs=None, outputs=None, reports=False, **kwargs)[source]

Bases: ExplicitComponent

System level container for systems.

Parameters:
problem<Problem>

Instantiated problem to use for the model.

inputslist of str or tuple or None

List of provided input names in str or tuple form. If an element is a str, then it should be the inner promoted name. If it is a tuple, then the first element should be the inner promoted name, and the second element should be the outer name, the name used by everything outside the subproblem [e.g. (path.to.inner.var, outer_name)].

outputslist of str or tuple or None

List of provided output names in str or tuple form. If an element is a str, then it should be the inner promoted name. If it is a tuple, then the first element should be the inner promoted name, and the second element should be the outer name, the name used by everything outside the subproblem [e.g. (path.to.inner.var, outer_name)].

reportsbool

Determines if reports should be included in subproblem. Default is False because submodelcomp runs faster without reports.

**kwargsnamed args

All remaining named args that become options for SubmodelComp.

Attributes:
_subprob<Problem>

Instantiated problem used to run the model.

_submodel_inputsdict

Mapping of inner promoted input names to outer input names.

_submodel_outputsdict

Mapping of inner promoted output names to outer output names.

_static_submodel_inputsdict

Mapping of inner promoted input names to outer input names and kwargs that is populated outside of setup. These must be bookkept separately from submodel inputs added during setup because setup can be called multiple times and the submodel inputs dict is reset each time.

_static_submodel_outputsdict

Mapping of inner promoted output names to outer output names and kwargs that is populated outside of setup. These must be bookkept separately from submodel outputs added during setup because setup can be called multiple times and the submodel outputs dict is reset each time.

_sub_coloring_infoColoringMeta

The coloring information for the submodel.

_ins2sub_outs_idxsndarray

Index array that maps our input array into parts of the output array of the submodel.

_sub_outs_idxsndarray

Index array that maps parts of the output array of the submodel into our output array.

_zero_partialsset

Set of (output, input) pairs that should have zero partials.

_totjacinfo_TotalJacInfo or None

Object that computes the total jacobian for the submodel.

_do_optbool

True if the submodel has an optimizer.

Methods

abs_meta_iter(iotype[, local, cont, discrete])

Iterate over absolute variable names and their metadata for this System.

add_constraint(name[, lower, upper, equals, ...])

Add a constraint variable to this system.

add_design_var(name[, lower, upper, ref, ...])

Add a design variable to this system.

add_discrete_input(name, val[, desc, tags, ...])

Add a discrete input variable to the component.

add_discrete_output(name, val[, desc, tags, ...])

Add an output variable to the component.

add_input(prom_in[, name])

Add input to model before or after setup.

add_objective(name[, ref, ref0, index, ...])

Add a response variable to this system.

add_output(prom_out[, name])

Add output to model before or after setup.

add_recorder(recorder[, recurse])

Add a recorder to the system.

add_response(name, type_[, lower, upper, ...])

Add a response variable to this system.

best_partial_deriv_direction()

Return the best direction for partial deriv calculations based on input and output sizes.

check_config(logger)

Perform optional error checks.

check_partials([out_stream, compact_print, ...])

Check partial derivatives comprehensively for this component.

check_sparsity([method, max_nz, out_stream])

Check the sparsity of the computed jacobian against the declared sparsity.

cleanup()

Clean up resources prior to exit.

comm_info_iter()

Yield comm size for this system and all subsystems.

compute(inputs, outputs)

Perform the subproblem system computation at run time.

compute_fd_jac(jac[, method])

Force the use of finite difference to compute a jacobian.

compute_fd_sparsity([method, num_full_jacs, ...])

Use finite difference to compute a sparsity matrix.

compute_jacvec_product(inputs, d_inputs, ...)

Compute jac-vector product.

compute_partials(inputs, partials)

Update the partials object with updated partial derivatives.

compute_sparsity([direction, num_iters, ...])

Compute the sparsity of the partial jacobian.

convert2units(name, val, units)

Convert the given value to the specified units.

convert_from_units(name, val, units)

Convert the given value from the specified units to those of the named variable.

convert_units(name, val, units_from, units_to)

Wrap the utility convert_units and give a good error message.

declare_coloring([wrt, method, form, step, ...])

Set options for deriv coloring of a set of wrt vars matching the given pattern(s).

declare_partials(of, wrt[, dependent, rows, ...])

Declare information about this component's subjacobians.

dist_size_iter(io, top_comm)

Yield names and distributed ranges of all local and remote variables in this system.

get_coloring_fname(mode)

Return the full pathname to a coloring file.

get_conn_graph()

Return the model connection graph.

get_constraints([recurse, get_sizes, ...])

Get the Constraint settings from this system.

get_declare_partials_calls([sparsity])

Return a string containing declare_partials() calls based on the subjac sparsity.

get_design_vars([recurse, get_sizes, ...])

Get the DesignVariable settings from this system.

get_io_metadata([iotypes, metadata_keys, ...])

Retrieve metadata for a filtered list of variables.

get_linear_vectors()

Return the linear inputs, outputs, and residuals vectors.

get_nonlinear_vectors()

Return the inputs, outputs, and residuals vectors.

get_objectives([recurse, get_sizes, ...])

Get the Objective settings from this system.

get_outputs_dir(*subdirs[, mkdir])

Get the path under which all output files of this system are to be placed.

get_promotions([inprom, outprom])

Return all promotions for the given promoted variable(s).

get_reports_dir()

Get the path to the directory where the report files should go.

get_responses([recurse, get_sizes, use_prom_ivc])

Get the response variable settings from this system.

get_self_statics()

Override this in derived classes if compute_primal references static values.

get_source(name)

Return the source variable connected to the given named variable.

get_val(name[, units, indices, get_remote, ...])

Get an output/input/residual variable.

get_var_dup_info(name, io)

Return information about how the given variable is duplicated across MPI processes.

get_var_sizes(name, io)

Return the sizes of the given variable on all procs.

has_vectors()

Check if the system vectors have been initialized.

initialize()

Perform any one-time initialization run at instantiation.

is_explicit([is_comp])

Return True if this is an explicit component.

list_inputs([val, prom_name, units, shape, ...])

Write a list of input names and other optional information to a specified stream.

list_options([include_default, ...])

Write a list of output names and other optional information to a specified stream.

list_outputs([explicit, implicit, val, ...])

Write a list of output names and other optional information to a specified stream.

list_vars([val, prom_name, residuals, ...])

Write a list of inputs and outputs sorted by component in execution order.

load_case(case)

Pull all input and output variables from a Case into this System.

load_model_options()

Load the relevant model options from Problem._metadata['model_options'].

override_method(name, method)

Dynamically add a method to this component instance.

record_iteration()

Record an iteration of the current System.

run_apply_linear(mode[, scope_out, scope_in])

Compute jac-vec product.

run_apply_nonlinear()

Compute residuals.

run_linearize([sub_do_ln])

Compute jacobian / factorization.

run_solve_linear(mode)

Apply inverse jac product.

run_solve_nonlinear()

Compute outputs.

run_validation()

Run validate method on all systems below this system.

set_check_partial_options(wrt[, method, ...])

Set options that will be used for checking partial derivatives.

set_constraint_options(name[, ref, ref0, ...])

Set options for constraints in the model.

set_design_var_options(name[, lower, upper, ...])

Set options for design vars in the model.

set_objective_options(name[, ref, ref0, ...])

Set options for objectives in the model.

set_output_solver_options(name[, lower, ...])

Set solver output options.

set_solver_print([level, depth, type_, ...])

Control printing for solvers and subsolvers in the model.

set_val(name, val[, units, indices])

Set an input or output variable.

setup()

Perform some final setup and checks.

setup_partials()

Compute a coloring and declare partials based on the coloring.

sparsity_matches_fd([direction, outstream])

Compare the sparsity computed by this system vs.

subjac_sparsity_iter(sparsity[, wrt_matches])

Iterate over sparsity for each subjac in the jacobian.

system_iter([include_self, recurse, typ, ...])

Yield a generator of local subsystems of this system.

total_local_size(io)

Return the total local size of the given variable.

use_fixed_coloring([coloring, recurse])

Use a precomputed coloring for this System.

uses_approx()

Return True if the system uses approximations to compute derivatives.

validate(inputs, outputs[, discrete_inputs, ...])

Check any final input / output values after a run.

__init__(problem, inputs=None, outputs=None, reports=False, **kwargs)[source]

Initialize all attributes.

add_input(prom_in, name=None, **kwargs)[source]

Add input to model before or after setup.

Parameters:
prom_instr

Promoted inner name of input.

namestr or None

Name of input relative to this component. If none, it will default to prom_in after replacing any ‘.’s with ‘:’s.

**kwargsnamed args

All remaining named args that can become options for add_input.

add_output(prom_out, name=None, **kwargs)[source]

Add output to model before or after setup.

Parameters:
prom_outstr

Promoted name of the inner output.

namestr or None

Name of output relative to this component. If none, it will default to prom_out after replacing any ‘.’s with ‘:’s.

**kwargsnamed args

All remaining named args that can become options for add_output.

compute(inputs, outputs)[source]

Perform the subproblem system computation at run time.

Parameters:
inputsVector

Unscaled, dimensional input variables read via inputs[key].

outputsVector

Unscaled, dimensional output variables read via outputs[key].

compute_partials(inputs, partials)[source]

Update the partials object with updated partial derivatives.

Parameters:
inputsVector

Unscaled, dimensional input variables read via inputs[key].

partialsJacobian

Sub-jac components written to partials[output_name, input_name].

property problem

Allow user read-only access to the sub-problem.

Returns:
<Problem>

Instantiated problem used to run the model.

setup()[source]

Perform some final setup and checks.

setup_partials()[source]

Compute a coloring and declare partials based on the coloring.