ROL
|
The diode circuit problem. More...
#include <ROL_DiodeCircuit.hpp>
Public Member Functions | |
Objective_DiodeCircuit (Real Vth, Real Vsrc_min, Real Vsrc_max, Real Vsrc_step, Real true_Is, Real true_Rs, bool lambertw, Real noise, bool use_adjoint, int use_hessvec) | |
A constructor generating data. More... | |
Objective_DiodeCircuit (Real Vth, std::ifstream &input_file, bool lambertw, Real noise, bool use_adjoint, int use_hessvec) | |
A constructor using data from given file. More... | |
void | set_method (bool lambertw) |
Change the method for solving the circuit if needed. More... | |
void | solve_circuit (Vector< Real > &I, const Vector< Real > &S) |
Solve circuit given optimization parameters Is and Rs. More... | |
Real | value (const Vector< Real > &S, Real &tol) |
Evaluate objective function. More... | |
void | gradient (Vector< Real > &g, const Vector< Real > &S, Real &tol) |
Compute the gradient of the reduced objective function either using adjoint or using sensitivities. More... | |
void | hessVec (Vector< Real > &hv, const Vector< Real > &v, const Vector< Real > &S, Real &tol) |
Compute the Hessian-vector product of the reduced objective function. More... | |
void | generate_plot (Real Is_lo, Real Is_up, Real Is_step, Real Rs_lo, Real Rs_up, Real Rs_step) |
Generate data to plot objective function. More... | |
![]() | |
virtual | ~Objective () |
virtual void | update (const Vector< Real > &x, bool flag=true, int iter=-1) |
Update objective function. More... | |
virtual Real | dirDeriv (const Vector< Real > &x, const Vector< Real > &d, Real &tol) |
Compute directional derivative. More... | |
virtual void | invHessVec (Vector< Real > &hv, const Vector< Real > &v, const Vector< Real > &x, Real &tol) |
Apply inverse Hessian approximation to vector. More... | |
virtual void | precond (Vector< Real > &Pv, const Vector< Real > &v, const Vector< Real > &x, Real &tol) |
Apply preconditioner to vector. More... | |
virtual std::vector< std::vector< Real > > | checkGradient (const Vector< Real > &x, const Vector< Real > &d, const bool printToStream=true, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1) |
Finite-difference gradient check. More... | |
virtual std::vector< std::vector< Real > > | checkGradient (const Vector< Real > &x, const Vector< Real > &g, const Vector< Real > &d, const bool printToStream=true, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1) |
Finite-difference gradient check. More... | |
virtual std::vector< std::vector< Real > > | checkGradient (const Vector< Real > &x, const Vector< Real > &d, const std::vector< Real > &steps, const bool printToStream=true, std::ostream &outStream=std::cout, const int order=1) |
Finite-difference gradient check with specified step sizes. More... | |
virtual std::vector< std::vector< Real > > | checkGradient (const Vector< Real > &x, const Vector< Real > &g, const Vector< Real > &d, const std::vector< Real > &steps, const bool printToStream=true, std::ostream &outStream=std::cout, const int order=1) |
Finite-difference gradient check with specified step sizes. More... | |
virtual std::vector< std::vector< Real > > | checkHessVec (const Vector< Real > &x, const Vector< Real > &v, const bool printToStream=true, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1) |
Finite-difference Hessian-applied-to-vector check. More... | |
virtual std::vector< std::vector< Real > > | checkHessVec (const Vector< Real > &x, const Vector< Real > &hv, const Vector< Real > &v, const bool printToStream=true, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1) |
Finite-difference Hessian-applied-to-vector check. More... | |
virtual std::vector< std::vector< Real > > | checkHessVec (const Vector< Real > &x, const Vector< Real > &v, const std::vector< Real > &steps, const bool printToStream=true, std::ostream &outStream=std::cout, const int order=1) |
Finite-difference Hessian-applied-to-vector check with specified step sizes. More... | |
virtual std::vector< std::vector< Real > > | checkHessVec (const Vector< Real > &x, const Vector< Real > &hv, const Vector< Real > &v, const std::vector< Real > &steps, const bool printToStream=true, std::ostream &outStream=std::cout, const int order=1) |
Finite-difference Hessian-applied-to-vector check with specified step sizes. More... | |
virtual std::vector< Real > | checkHessSym (const Vector< Real > &x, const Vector< Real > &v, const Vector< Real > &w, const bool printToStream=true, std::ostream &outStream=std::cout) |
Hessian symmetry check. More... | |
virtual std::vector< Real > | checkHessSym (const Vector< Real > &x, const Vector< Real > &hv, const Vector< Real > &v, const Vector< Real > &w, const bool printToStream=true, std::ostream &outStream=std::cout) |
Hessian symmetry check. More... | |
virtual void | setParameter (const std::vector< Real > ¶m) |
Private Types | |
typedef std::vector< Real > | vector |
typedef Vector< Real > | V |
typedef StdVector< Real > | STDV |
typedef PrimalScaledStdVector< Real > | PSV |
typedef DualScaledStdVector< Real > | DSV |
typedef vector::size_type | uint |
Private Member Functions | |
Teuchos::RCP< const vector > | getVector (const V &x) |
Teuchos::RCP< vector > | getVector (V &x) |
Real | random (const Real left, const Real right) const |
Real | diode (const Real I, const Real Vsrc, const Real Is, const Real Rs) |
Diode equation. More... | |
Real | diodeI (const Real I, const Real Vsrc, const Real Is, const Real Rs) |
Derivative of diode equation wrt I. More... | |
Real | diodeIs (const Real I, const Real Vsrc, const Real Is, const Real Rs) |
Derivative of diode equation wrt Is. More... | |
Real | diodeRs (const Real I, const Real Vsrc, const Real Is, const Real Rs) |
Derivative of diode equation wrt Rs. More... | |
Real | diodeII (const Real I, const Real Vsrc, const Real Is, const Real Rs) |
Second derivative of diode equation wrt I^2. More... | |
Real | diodeIIs (const Real I, const Real Vsrc, const Real Is, const Real Rs) |
Second derivative of diode equation wrt I and Is. More... | |
Real | diodeIRs (const Real I, const Real Vsrc, const Real Is, const Real Rs) |
Second derivative of diode equation wrt I and Rs. More... | |
Real | diodeIsIs (const Real I, const Real Vsrc, const Real Is, const Real Rs) |
Second derivative of diode equation wrt Is^2. More... | |
Real | diodeIsRs (const Real I, const Real Vsrc, const Real Is, const Real Rs) |
Second derivative of diode equation wrt Is and Rs. More... | |
Real | diodeRsRs (const Real I, const Real Vsrc, const Real Is, const Real Rs) |
Second derivative of diode equation wrt Rs^2. More... | |
Real | Newton (const Real I, const Real Vsrc, const Real Is, const Real Rs) |
Newton's method with line search. More... | |
void | lambertw (Real x, Real &w, int &ierr, Real &xi) |
Lambert-W function for diodes. More... | |
Real | lambertWCurrent (Real Is, Real Rs, Real Vsrc) |
Find currents using Lambert-W function. More... | |
void | solve_adjoint (Vector< Real > &lambda, const Vector< Real > &I, const Vector< Real > &S) |
Solve the adjoint equation. More... | |
void | solve_sensitivity_Is (Vector< Real > &sens, const Vector< Real > &I, const Vector< Real > &S) |
Solve the sensitivity equation wrt Is. More... | |
void | solve_sensitivity_Rs (Vector< Real > &sens, const Vector< Real > &I, const Vector< Real > &S) |
Solve the sensitivity equation wrt Rs. More... | |
Private Attributes | |
Real | Vth_ |
Thermal voltage (constant) More... | |
Teuchos::RCP< std::vector< Real > > | Imeas_ |
Vector of measured currents in DC analysis (data) More... | |
Teuchos::RCP< std::vector< Real > > | Vsrc_ |
Vector of source voltages in DC analysis (input) More... | |
bool | lambertw_ |
If true, use Lambert-W function to solve circuit, else use Newton's method. More... | |
Real | noise_ |
Percentage of noise to add to measurements; if 0.0 - no noise. More... | |
bool | use_adjoint_ |
If true, use adjoint gradient computation, else compute gradient using sensitivities. More... | |
int | use_hessvec_ |
Additional Inherited Members | |
![]() | |
const std::vector< Real > | getParameter (void) const |
The diode circuit problem.
The diode circuit problem:
\begin{eqnarray*} \min_{I_S,R_S} \,\, \frac{1}{2}\sum\limits_{n=1}^N (I_n-I_n^{meas})^2 \\ \text{s.t.}\;\;\begin{cases}c(I_S,R_S,I_1,V^{src}_1)=0\\ \dots \\c(I_S,R_S,I_N,V^{src}_N)=0\end{cases} \end{eqnarray*}
where
\[c(I_S,R_S,I_n,V^{src}_n)=I_n - I_S\left(\exp\left(\frac{-I_n R_S+V^{src}_n}{V_{th}}\right)-1\right)\]
.
Definition at line 34 of file ROL_DiodeCircuit.hpp.
|
private |
Definition at line 36 of file ROL_DiodeCircuit.hpp.
|
private |
Definition at line 37 of file ROL_DiodeCircuit.hpp.
|
private |
Definition at line 38 of file ROL_DiodeCircuit.hpp.
|
private |
Definition at line 39 of file ROL_DiodeCircuit.hpp.
|
private |
Definition at line 40 of file ROL_DiodeCircuit.hpp.
|
private |
Definition at line 41 of file ROL_DiodeCircuit.hpp.
|
inline |
A constructor generating data.
Given thermal voltage, minimum and maximum values of source voltages and a step size, values of Is and Rs generates vector of source voltages and solves nonlinear diode equation to populate the vector of measured currents, which is later used as data. If noise is nonzero, adds random perturbation to data on the order of the magnitude of the components. Sets the flag to use Lambert-W function or Newton's method to solve circuit. Sets the flags to use adjoint gradient computation and one of three Hessian-vector implementations.
Definition at line 77 of file ROL_DiodeCircuit.hpp.
References ROL::ZOO::Objective_DiodeCircuit< Real >::Imeas_, ROL::ZOO::Objective_DiodeCircuit< Real >::lambertw_, ROL::ZOO::Objective_DiodeCircuit< Real >::lambertWCurrent(), ROL::ZOO::Objective_DiodeCircuit< Real >::Newton(), ROL::ZOO::Objective_DiodeCircuit< Real >::random(), and ROL::ZOO::Objective_DiodeCircuit< Real >::Vsrc_.
|
inline |
A constructor using data from given file.
Given thermal voltage and a file with two columns - one for source voltages, another for corresponding currents - populates vectors of source voltages and measured currents. If noise is nonzero, adds random perturbation to data on the order of the magnitude of the components. Sets the flag to use Lambert-W function or Newton's method to solve circuit. Sets the flags to use adjoint gradient computation and one of three Hessian-vector implementations.
Definition at line 127 of file ROL_DiodeCircuit.hpp.
References ROL::ZOO::Objective_DiodeCircuit< Real >::Imeas_, and ROL::ZOO::Objective_DiodeCircuit< Real >::Vsrc_.
|
inline |
Change the method for solving the circuit if needed.
Definition at line 152 of file ROL_DiodeCircuit.hpp.
References ROL::ZOO::Objective_DiodeCircuit< Real >::lambertw(), and ROL::ZOO::Objective_DiodeCircuit< Real >::lambertw_.
|
inline |
Solve circuit given optimization parameters Is and Rs.
Definition at line 157 of file ROL_DiodeCircuit.hpp.
References ROL::ZOO::Objective_DiodeCircuit< Real >::getVector(), ROL::ZOO::Objective_DiodeCircuit< Real >::lambertw_, ROL::ZOO::Objective_DiodeCircuit< Real >::lambertWCurrent(), ROL::ZOO::Objective_DiodeCircuit< Real >::Newton(), and ROL::ZOO::Objective_DiodeCircuit< Real >::Vsrc_.
Referenced by ROL::ZOO::Objective_DiodeCircuit< Real >::gradient(), ROL::ZOO::Objective_DiodeCircuit< Real >::hessVec(), and ROL::ZOO::Objective_DiodeCircuit< Real >::value().
|
inlinevirtual |
Evaluate objective function.
\(\frac{1}{2}\sum\limits_{i=1}^{N}(I_i-I^{meas}_i)^2\)
Implements ROL::Objective< Real >.
Definition at line 188 of file ROL_DiodeCircuit.hpp.
References ROL::ZOO::Objective_DiodeCircuit< Real >::getVector(), ROL::ZOO::Objective_DiodeCircuit< Real >::Imeas_, and ROL::ZOO::Objective_DiodeCircuit< Real >::solve_circuit().
Referenced by ROL::ZOO::Objective_DiodeCircuit< Real >::generate_plot().
|
inlinevirtual |
Compute the gradient of the reduced objective function either using adjoint or using sensitivities.
Reimplemented from ROL::Objective< Real >.
Definition at line 206 of file ROL_DiodeCircuit.hpp.
References ROL::ZOO::Objective_DiodeCircuit< Real >::diodeIs(), ROL::ZOO::Objective_DiodeCircuit< Real >::diodeRs(), ROL::ZOO::Objective_DiodeCircuit< Real >::getVector(), ROL::ZOO::Objective_DiodeCircuit< Real >::Imeas_, ROL::ZOO::Objective_DiodeCircuit< Real >::solve_adjoint(), ROL::ZOO::Objective_DiodeCircuit< Real >::solve_circuit(), ROL::ZOO::Objective_DiodeCircuit< Real >::solve_sensitivity_Is(), ROL::ZOO::Objective_DiodeCircuit< Real >::solve_sensitivity_Rs(), ROL::ZOO::Objective_DiodeCircuit< Real >::use_adjoint_, and ROL::ZOO::Objective_DiodeCircuit< Real >::Vsrc_.
|
inlinevirtual |
Compute the Hessian-vector product of the reduced objective function.
Hessian-times-vector computation.
Reimplemented from ROL::Objective< Real >.
Definition at line 270 of file ROL_DiodeCircuit.hpp.
References ROL::ZOO::Objective_DiodeCircuit< Real >::diodeI(), ROL::ZOO::Objective_DiodeCircuit< Real >::diodeII(), ROL::ZOO::Objective_DiodeCircuit< Real >::diodeIIs(), ROL::ZOO::Objective_DiodeCircuit< Real >::diodeIRs(), ROL::ZOO::Objective_DiodeCircuit< Real >::diodeIs(), ROL::ZOO::Objective_DiodeCircuit< Real >::diodeIsIs(), ROL::ZOO::Objective_DiodeCircuit< Real >::diodeIsRs(), ROL::ZOO::Objective_DiodeCircuit< Real >::diodeRs(), ROL::ZOO::Objective_DiodeCircuit< Real >::diodeRsRs(), ROL::ZOO::Objective_DiodeCircuit< Real >::getVector(), ROL::Objective< Real >::hessVec(), ROL::ZOO::Objective_DiodeCircuit< Real >::Imeas_, ROL::ZOO::Objective_DiodeCircuit< Real >::solve_adjoint(), ROL::ZOO::Objective_DiodeCircuit< Real >::solve_circuit(), ROL::ZOO::Objective_DiodeCircuit< Real >::solve_sensitivity_Is(), ROL::ZOO::Objective_DiodeCircuit< Real >::solve_sensitivity_Rs(), ROL::ZOO::Objective_DiodeCircuit< Real >::use_hessvec_, and ROL::ZOO::Objective_DiodeCircuit< Real >::Vsrc_.
|
inline |
Generate data to plot objective function.
Generates a file with three columns - Is value, Rs value, objective value. To plot with gnuplot type: gnuplot; set dgrid3d 100,100; set hidden3d; splot "Objective.dat" u 1:2:3 with lines;
Definition at line 382 of file ROL_DiodeCircuit.hpp.
References ROL::ZOO::Objective_DiodeCircuit< Real >::value().
|
inlineprivate |
Definition at line 410 of file ROL_DiodeCircuit.hpp.
Referenced by ROL::ZOO::Objective_DiodeCircuit< Real >::getVector(), ROL::ZOO::Objective_DiodeCircuit< Real >::gradient(), ROL::ZOO::Objective_DiodeCircuit< Real >::hessVec(), ROL::ZOO::Objective_DiodeCircuit< Real >::solve_adjoint(), ROL::ZOO::Objective_DiodeCircuit< Real >::solve_circuit(), ROL::ZOO::Objective_DiodeCircuit< Real >::solve_sensitivity_Is(), ROL::ZOO::Objective_DiodeCircuit< Real >::solve_sensitivity_Rs(), and ROL::ZOO::Objective_DiodeCircuit< Real >::value().
|
inlineprivate |
Definition at line 425 of file ROL_DiodeCircuit.hpp.
References ROL::ZOO::Objective_DiodeCircuit< Real >::getVector().
|
inlineprivate |
Definition at line 440 of file ROL_DiodeCircuit.hpp.
Referenced by ROL::ZOO::Objective_DiodeCircuit< Real >::Objective_DiodeCircuit().
|
inlineprivate |
Diode equation.
Diode equation formula: \( I-I_S\left(\exp\left(\frac{V_{src}-IR_S}{V_{th}}\right)-1\right) \).
Definition at line 454 of file ROL_DiodeCircuit.hpp.
References ROL::ZOO::Objective_DiodeCircuit< Real >::Vth_.
Referenced by ROL::ZOO::Objective_DiodeCircuit< Real >::Newton().
|
inlineprivate |
Derivative of diode equation wrt I.
Definition at line 459 of file ROL_DiodeCircuit.hpp.
References ROL::ZOO::Objective_DiodeCircuit< Real >::Vth_.
Referenced by ROL::ZOO::Objective_DiodeCircuit< Real >::hessVec(), ROL::ZOO::Objective_DiodeCircuit< Real >::Newton(), ROL::ZOO::Objective_DiodeCircuit< Real >::solve_adjoint(), ROL::ZOO::Objective_DiodeCircuit< Real >::solve_sensitivity_Is(), and ROL::ZOO::Objective_DiodeCircuit< Real >::solve_sensitivity_Rs().
|
inlineprivate |
Derivative of diode equation wrt Is.
Definition at line 464 of file ROL_DiodeCircuit.hpp.
References ROL::ZOO::Objective_DiodeCircuit< Real >::Vth_.
Referenced by ROL::ZOO::Objective_DiodeCircuit< Real >::gradient(), ROL::ZOO::Objective_DiodeCircuit< Real >::hessVec(), and ROL::ZOO::Objective_DiodeCircuit< Real >::solve_sensitivity_Is().
|
inlineprivate |
Derivative of diode equation wrt Rs.
Definition at line 469 of file ROL_DiodeCircuit.hpp.
References ROL::ZOO::Objective_DiodeCircuit< Real >::Vth_.
Referenced by ROL::ZOO::Objective_DiodeCircuit< Real >::gradient(), ROL::ZOO::Objective_DiodeCircuit< Real >::hessVec(), and ROL::ZOO::Objective_DiodeCircuit< Real >::solve_sensitivity_Rs().
|
inlineprivate |
Second derivative of diode equation wrt I^2.
Definition at line 474 of file ROL_DiodeCircuit.hpp.
References ROL::ZOO::Objective_DiodeCircuit< Real >::Vth_.
Referenced by ROL::ZOO::Objective_DiodeCircuit< Real >::hessVec().
|
inlineprivate |
Second derivative of diode equation wrt I and Is.
Definition at line 479 of file ROL_DiodeCircuit.hpp.
References ROL::ZOO::Objective_DiodeCircuit< Real >::Vth_.
Referenced by ROL::ZOO::Objective_DiodeCircuit< Real >::hessVec().
|
inlineprivate |
Second derivative of diode equation wrt I and Rs.
Definition at line 484 of file ROL_DiodeCircuit.hpp.
References ROL::ZOO::Objective_DiodeCircuit< Real >::Vth_.
Referenced by ROL::ZOO::Objective_DiodeCircuit< Real >::hessVec().
|
inlineprivate |
Second derivative of diode equation wrt Is^2.
Definition at line 489 of file ROL_DiodeCircuit.hpp.
Referenced by ROL::ZOO::Objective_DiodeCircuit< Real >::hessVec().
|
inlineprivate |
Second derivative of diode equation wrt Is and Rs.
Definition at line 494 of file ROL_DiodeCircuit.hpp.
References ROL::ZOO::Objective_DiodeCircuit< Real >::Vth_.
Referenced by ROL::ZOO::Objective_DiodeCircuit< Real >::hessVec().
|
inlineprivate |
Second derivative of diode equation wrt Rs^2.
Definition at line 499 of file ROL_DiodeCircuit.hpp.
References ROL::ZOO::Objective_DiodeCircuit< Real >::Vth_.
Referenced by ROL::ZOO::Objective_DiodeCircuit< Real >::hessVec().
|
inlineprivate |
Newton's method with line search.
Solves the diode equation for the current using Newton's method.
Definition at line 510 of file ROL_DiodeCircuit.hpp.
References ROL::ZOO::Objective_DiodeCircuit< Real >::diode(), and ROL::ZOO::Objective_DiodeCircuit< Real >::diodeI().
Referenced by ROL::ZOO::Objective_DiodeCircuit< Real >::Objective_DiodeCircuit(), and ROL::ZOO::Objective_DiodeCircuit< Real >::solve_circuit().
|
inlineprivate |
Lambert-W function for diodes.
Function : DeviceSupport::lambertw Purpose : provides a lambert-w function for diodes and BJT's. Special Notes :
Purpose. Evaluate principal branch of Lambert W function at x.
w = w(x) is the value of Lambert's function. ierr = 0 indicates a safe return. ierr = 1 if x is not in the domain. ierr = 2 if the computer arithmetic contains a bug. xi may be disregarded (it is the error).
Prototype: void lambertw( Real, Real, int, Real);
Reference: T.C. Banwell Bipolar transistor circuit analysis using the Lambert W-function, IEEE Transactions on Circuits and Systems I: Fundamental Theory and Applications
vol. 47, pp. 1621-1633, Nov. 2000.
Scope : public Creator : David Day, SNL Creation Date : 04/16/02
Definition at line 583 of file ROL_DiodeCircuit.hpp.
Referenced by ROL::ZOO::Objective_DiodeCircuit< Real >::lambertWCurrent(), and ROL::ZOO::Objective_DiodeCircuit< Real >::set_method().
|
inlineprivate |
Find currents using Lambert-W function.
Reference: T.C. Banwell Bipolar transistor circuit analysis using the Lambert W-function, IEEE Transactions on Circuits and Systems I: Fundamental Theory and Applications vol. 47, pp. 1621-1633, Nov. 2000.
Definition at line 659 of file ROL_DiodeCircuit.hpp.
References ROL::ZOO::Objective_DiodeCircuit< Real >::lambertw(), and ROL::ZOO::Objective_DiodeCircuit< Real >::Vth_.
Referenced by ROL::ZOO::Objective_DiodeCircuit< Real >::Objective_DiodeCircuit(), and ROL::ZOO::Objective_DiodeCircuit< Real >::solve_circuit().
|
inlineprivate |
Solve the adjoint equation.
\(\lambda_i = \frac{(I^{meas}_i-I_i)}{\frac{\partial c}{\partial I}(I_i,V^{src}_i,I_S,R_S)}\)
Definition at line 686 of file ROL_DiodeCircuit.hpp.
References ROL::ZOO::Objective_DiodeCircuit< Real >::diodeI(), and ROL::ZOO::Objective_DiodeCircuit< Real >::getVector().
Referenced by ROL::ZOO::Objective_DiodeCircuit< Real >::gradient(), and ROL::ZOO::Objective_DiodeCircuit< Real >::hessVec().
|
inlineprivate |
Solve the sensitivity equation wrt Is.
Computes sensitivity
\[\frac{\partial I}{\partial Is}\]
Definition at line 707 of file ROL_DiodeCircuit.hpp.
References ROL::ZOO::Objective_DiodeCircuit< Real >::diodeI(), ROL::ZOO::Objective_DiodeCircuit< Real >::diodeIs(), ROL::ZOO::Objective_DiodeCircuit< Real >::getVector(), and ROL::ZOO::Objective_DiodeCircuit< Real >::Vsrc_.
Referenced by ROL::ZOO::Objective_DiodeCircuit< Real >::gradient(), and ROL::ZOO::Objective_DiodeCircuit< Real >::hessVec().
|
inlineprivate |
Solve the sensitivity equation wrt Rs.
Computes sensitivity
\[\frac{\partial I}{\partial Rs}\]
Definition at line 728 of file ROL_DiodeCircuit.hpp.
References ROL::ZOO::Objective_DiodeCircuit< Real >::diodeI(), ROL::ZOO::Objective_DiodeCircuit< Real >::diodeRs(), ROL::ZOO::Objective_DiodeCircuit< Real >::getVector(), and ROL::ZOO::Objective_DiodeCircuit< Real >::Vsrc_.
Referenced by ROL::ZOO::Objective_DiodeCircuit< Real >::gradient(), and ROL::ZOO::Objective_DiodeCircuit< Real >::hessVec().
|
private |
Thermal voltage (constant)
Definition at line 45 of file ROL_DiodeCircuit.hpp.
Referenced by ROL::ZOO::Objective_DiodeCircuit< Real >::diode(), ROL::ZOO::Objective_DiodeCircuit< Real >::diodeI(), ROL::ZOO::Objective_DiodeCircuit< Real >::diodeII(), ROL::ZOO::Objective_DiodeCircuit< Real >::diodeIIs(), ROL::ZOO::Objective_DiodeCircuit< Real >::diodeIRs(), ROL::ZOO::Objective_DiodeCircuit< Real >::diodeIs(), ROL::ZOO::Objective_DiodeCircuit< Real >::diodeIsRs(), ROL::ZOO::Objective_DiodeCircuit< Real >::diodeRs(), ROL::ZOO::Objective_DiodeCircuit< Real >::diodeRsRs(), and ROL::ZOO::Objective_DiodeCircuit< Real >::lambertWCurrent().
|
private |
Vector of measured currents in DC analysis (data)
Definition at line 47 of file ROL_DiodeCircuit.hpp.
Referenced by ROL::ZOO::Objective_DiodeCircuit< Real >::gradient(), ROL::ZOO::Objective_DiodeCircuit< Real >::hessVec(), ROL::ZOO::Objective_DiodeCircuit< Real >::Objective_DiodeCircuit(), and ROL::ZOO::Objective_DiodeCircuit< Real >::value().
|
private |
Vector of source voltages in DC analysis (input)
Definition at line 49 of file ROL_DiodeCircuit.hpp.
Referenced by ROL::ZOO::Objective_DiodeCircuit< Real >::gradient(), ROL::ZOO::Objective_DiodeCircuit< Real >::hessVec(), ROL::ZOO::Objective_DiodeCircuit< Real >::Objective_DiodeCircuit(), ROL::ZOO::Objective_DiodeCircuit< Real >::solve_circuit(), ROL::ZOO::Objective_DiodeCircuit< Real >::solve_sensitivity_Is(), and ROL::ZOO::Objective_DiodeCircuit< Real >::solve_sensitivity_Rs().
|
private |
If true, use Lambert-W function to solve circuit, else use Newton's method.
Definition at line 51 of file ROL_DiodeCircuit.hpp.
Referenced by ROL::ZOO::Objective_DiodeCircuit< Real >::Objective_DiodeCircuit(), ROL::ZOO::Objective_DiodeCircuit< Real >::set_method(), and ROL::ZOO::Objective_DiodeCircuit< Real >::solve_circuit().
|
private |
Percentage of noise to add to measurements; if 0.0 - no noise.
Definition at line 53 of file ROL_DiodeCircuit.hpp.
|
private |
If true, use adjoint gradient computation, else compute gradient using sensitivities.
Definition at line 55 of file ROL_DiodeCircuit.hpp.
Referenced by ROL::ZOO::Objective_DiodeCircuit< Real >::gradient().
|
private |
0 - use FD(with scaling), 1 - use exact implementation (with second order derivatives), 2 - use Gauss-Newton approximation (first order derivatives only)
Definition at line 59 of file ROL_DiodeCircuit.hpp.
Referenced by ROL::ZOO::Objective_DiodeCircuit< Real >::hessVec().