engforge.attr_solver.Solver

class Solver(name, default, validator, repr, cmp, hash, init, inherited, metadata=None, type=None, converter=None, kw_only=False, eq=None, eq_key=None, order=None, order_key=None, on_setattr=None, alias=None)[source]

Bases: ATTR_BASE

solver creates subclasses per solver balance

Methods

add_var_constraint

adds a type constraint to the solver.

class_validate

validates onetime A method to validate the kwargs passed to the define method

collect_attr_inst

collects all the attribute instances for a system

collect_cls

collects all the attributes for a system

con_eq

Defines an equality constraint based on a required lhs of equation, and an optional rhs, the difference of which will be driven to zero

con_ineq

Defines an inequality constraint

configure_for_system

add the config class, and perform checks with `class_validate) :returns: [optional] a dictionary of options to be used in the make_attribute method

configure_instance

validates the instance given attr's init routine

constraint_equality

Defines an equality constraint based on a required lhs of equation, and an optional rhs, the difference of which will be driven to zero

constraint_exists

check constraints on the system, return its index position if found, else None.

constraint_inequality

Defines an inequality constraint

create_instance

Create an instance of the instance_class

declare_var

Defines a solver variable for optimization in the class, constraints defined on this solver will correspond to the limits of that variable :type var: str :param var: The var attribute for the solver variable.

define

taking a component or system class as possible input valid input is later validated as an instance of that class or subclass

define_validate

A method to validate the kwargs passed to the define method

evolve

Copy self and apply changes.

from_counting_attr

handle_instance

handles the instance, override as you wish

make_attribute

makes an attrs.Attribute for the class

make_factory

obj

Defines a solver variable for optimization in the class, constraints defined on this solver will correspond to the limits of that variable

objective

Defines a solver variable for optimization in the class, constraints defined on this solver will correspond to the limits of that variable

process_combos

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

unpack_atrs

Attributes

name

default

validator

repr

eq

eq_key

order

order_key

hash

init

metadata

type

converter

kw_only

inherited

on_setattr

alias

allow_constraint_override

attr_prefix

combos

default_options

lhs

none_ok

rhs

template_class

var

slvtype

constraints

normalize

active

config_cls

classmethod add_var_constraint(value, kind='min', **kwargs)[source]

adds a type constraint to the solver. If value is numeric it is used as a bound with scipy optimize.

If value is a function it should be of the form value(Xarray) and will establish an inequality constraint that var var must be:
  1. less than for max

  2. more than for min

During the evaluation of the limit function system.X should be set, and pre_execute() have already run.

Parameters:

type – str, must be either min or max with var value comparison, or with a function additionally eq,ineq (same as max(0)) can be used

Value:

either a numeric (int,float), or a function, f(system)

classmethod class_validate(instance, **kwargs)[source]

validates onetime A method to validate the kwargs passed to the define method

classmethod collect_attr_inst(system, handle_inst=True)

collects all the attribute instances for a system

Return type:

dict

classmethod collect_cls(system)

collects all the attributes for a system

Return type:

dict

classmethod con_eq(lhs, rhs=0, **kwargs)

Defines an equality constraint based on a required lhs of equation, and an optional rhs, the difference of which will be driven to zero

Parameters:
classmethod con_ineq(lhs, rhs=0, **kwargs)

Defines an inequality constraint

Parameters:
classmethod configure_for_system(name, config_class, cb=None, **kwargs)[source]

add the config class, and perform checks with `class_validate) :returns: [optional] a dictionary of options to be used in the make_attribute method

classmethod configure_instance(instance, attribute, value)

validates the instance given attr’s init routine

classmethod constraint_equality(lhs, rhs=0, **kwargs)[source]

Defines an equality constraint based on a required lhs of equation, and an optional rhs, the difference of which will be driven to zero

Parameters:
classmethod constraint_exists(**kw)[source]

check constraints on the system, return its index position if found, else None.

classmethod constraint_inequality(lhs, rhs=0, **kwargs)[source]

Defines an inequality constraint

Parameters:
classmethod create_instance(system)[source]

Create an instance of the instance_class

Return type:

SolverInstance

Parameters:

system (System)

classmethod declare_var(var, **kwargs)[source]

Defines a solver variable for optimization in the class, constraints defined on this solver will correspond to the limits of that variable :type var: str :param var: The var attribute for the solver variable. :param combos: The combinations of the solver variable. :return: The setup class for the solver variable.

Parameters:

var (str)

classmethod define(**kwargs)

taking a component or system class as possible input valid input is later validated as an instance of that class or subclass

classmethod define_validate(**kwargs)

A method to validate the kwargs passed to the define method

evolve(**changes)

Copy self and apply changes.

This works similarly to attrs.evolve but that function does not work with Attribute.

It is mainly meant to be used for transform-fields.

Added in version 20.3.0.

classmethod handle_instance(canidate)

handles the instance, override as you wish

instance_class

alias of SolverInstance

classmethod make_attribute(name, comp_class, **kwargs)

makes an attrs.Attribute for the class

classmethod obj(obj, **kwargs)

Defines a solver variable for optimization in the class, constraints defined on this solver will correspond to the limits of that variable

Parameters:
  • obj (str) – The var attribute for the solver variable.

  • combos – The combinations of the solver variable.

Vara kind:

the kind of optimization, either min or max

Returns:

The setup class for the solver variable.

classmethod objective(obj, **kwargs)[source]

Defines a solver variable for optimization in the class, constraints defined on this solver will correspond to the limits of that variable

Parameters:
  • obj (str) – The var attribute for the solver variable.

  • combos – The combinations of the solver variable.

Vara kind:

the kind of optimization, either min or max

Returns:

The setup class for the solver variable.

classmethod subclasses(out=None)

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!