implicit_func_comp.py

implicit_func_comp.py#

Define the ImplicitFuncComp class.

class openmdao.components.implicit_func_comp.ImplicitFuncComp(apply_nonlinear, solve_nonlinear=None, linearize=None, solve_linear=None, **kwargs)[source]

Bases: ImplicitComponent

An implicit component that wraps a python function.

Parameters:
apply_nonlinearfunction

The function to be wrapped by this Component.

solve_nonlinearfunction or None

Optional function to perform a nonlinear solve.

linearizefunction or None

Optional function to compute partial derivatives.

solve_linearfunction or None

Optional function to perform a linear solve.

**kwargsnamed args

Args passed down to ImplicitComponent.

Attributes:
_apply_nonlinear_funccallable

The function wrapper used by this component.

_apply_nonlinear_func_jaxcallable

Function decorated to ensure use of jax numpy.

_solve_nonlinear_funcfunction or None

Optional function to do a nonlinear solve.

solve_nonlinearmethod

Compute outputs given inputs.

_solve_linear_funcfunction or None

Optional function to do a linear solve.

solve_linearmethod

Apply inverse jac product.

_linearize_funcfunction or None

Optional function to compute partial derivatives.

linearizemethod

Compute sub-jacobian parts and any applicable matrix factorizations.

_linearize_infoobject

Some state information to compute in _linearize_func and pass to _solve_linear_func

_tangentstuple

Tuple of parts of the tangent matrix cached for jax derivative computation.

_tangent_directionstr

Direction of the last tangent computation.

_jac2func_indsndarray

Translation array from jacobian indices to function array indices.

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(name[, val, shape, units, desc, ...])

Add an input variable to the component.

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

Add a response variable to this system.

add_output(name[, val])

Add an output variable to the component.

add_recorder(recorder[, recurse])

Add a recorder to the system.

add_residual(name[, shape, units, desc, ref])

Add a residual variable to the component.

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

Add a response variable to this system.

apply_linear(inputs, outputs, d_inputs, ...)

Compute jac-vector product.

apply_nonlinear(inputs, outputs, residuals)

R = Ax - b.

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_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_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(*args, **kwargs)

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.

guess_nonlinear(inputs, outputs, residuals)

Provide initial guess for states.

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.

linearize(inputs, outputs, jacobian[, ...])

Compute sub-jacobian parts and any applicable matrix factorizations.

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()

Define our inputs and outputs.

setup_partials()

Declare partials.

setup_residuals()

User hook for adding named residuals to this component.

solve_linear(d_outputs, d_residuals, mode)

Apply inverse jac product.

solve_nonlinear(inputs, outputs)

Compute outputs given inputs.

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__(apply_nonlinear, solve_nonlinear=None, linearize=None, solve_linear=None, **kwargs)[source]

Initialize attributes.

apply_nonlinear(inputs, outputs, residuals, discrete_inputs=None, discrete_outputs=None)[source]

R = Ax - b.

Parameters:
inputsVector

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

outputsVector

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

residualsVector

Unscaled, dimensional residuals written to via residuals[key].

discrete_inputs_DictValues or None

Dict-like object containing discrete inputs.

discrete_outputs_DictValues or None

Dict-like object containing discrete outputs.

declare_partials(*args, **kwargs)[source]

Declare information about this component’s subjacobians.

Parameters:
*argslist

Positional args to be passed to base class version of declare_partials.

**kwargsdict

Keyword args to be passed to base class version of declare_partials.

Returns:
dict

Metadata dict for the specified partial(s).

setup()[source]

Define our inputs and outputs.