Struct BjtGummelPoonRoot
pub struct BjtGummelPoonRoot {
pub model: GummelPoonModel,
/* private fields */
}Expand description
3-port R-type adaptor for Gummel-Poon BJT.
Models the BJT as a 3-terminal nonlinear element where:
- Port 1: Base terminal
- Port 2: Collector terminal
- Port 3: Emitter terminal (adapted, reflection-free)
The scattering is computed using iterative Newton-Raphson to solve the coupled nonlinear Gummel-Poon equations at each sample.
WDF Formulation: Each port has a Thévenin equivalent (a_i, R_i). The BJT equations constrain the terminal voltages and currents. We solve for the reflected waves b that satisfy both WDF port equations and BJT physics.
Fields§
§model: GummelPoonModelImplementations§
§impl BjtGummelPoonRoot
impl BjtGummelPoonRoot
pub fn new(
model: GummelPoonModel,
port_resistances: [f64; 3],
sample_rate: f64,
) -> BjtGummelPoonRoot
pub fn new( model: GummelPoonModel, port_resistances: [f64; 3], sample_rate: f64, ) -> BjtGummelPoonRoot
Create a new Gummel-Poon BJT root.
model— Gummel-Poon parametersport_resistances— [R_base, R_collector, R_emitter]sample_rate— for junction capacitance discretization
pub fn collector_current(&self) -> f64
pub fn collector_current(&self) -> f64
Get last computed collector current.
pub fn base_current(&self) -> f64
pub fn base_current(&self) -> f64
Get last computed base current.
pub fn emitter_current(&self) -> f64
pub fn emitter_current(&self) -> f64
Get emitter current (Ie = Ic + Ib by KCL).
pub fn reset(&mut self)
pub fn reset(&mut self)
Reset internal state.
pub fn process_3port(&mut self, a: [f64; 3]) -> [f64; 3]
pub fn process_3port(&mut self, a: [f64; 3]) -> [f64; 3]
Process one sample through the 3-port BJT.
Takes incident waves [a_b, a_c, a_e] and port resistances, returns reflected waves [b_b, b_c, b_e].
The emitter port is adapted (S_ee = 0).
Trait Implementations§
§impl Clone for BjtGummelPoonRoot
impl Clone for BjtGummelPoonRoot
§fn clone(&self) -> BjtGummelPoonRoot
fn clone(&self) -> BjtGummelPoonRoot
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more