60 / std::log( Dout / Din ) * ( Rs /
TC::ZF0 );
80 const double sqrtMuEr = std::sqrt( epsr * mur );
82 const double fc_TE11 = ( 2.0 *
TC::C0 ) / (
M_PI * sqrtMuEr * ( Din + Dout ) );
83 const double fc_step =
TC::C0 / ( sqrtMuEr * ( Dout - Din ) );
94 for(
int m = 2; m < 10; ++m )
96 const double fc = fc_TE11 +
static_cast<double>( m - 1 ) * fc_step;
102 std::snprintf( buf,
sizeof( buf ),
"H(1,%d) ", m );
107 for(
int m = 1; m < 10; ++m )
109 const double fc =
static_cast<double>( m ) * fc_step;
115 std::snprintf( buf,
sizeof( buf ),
"E(0,%d) ", m );
145 const double lambda_g = (
TC::C0 / freq ) / std::sqrt( epsr * mur );
170 const double k =
Z0 * std::sqrt( epsr ) /
TC::ZF0 * 2.0 *
M_PI;
177 const double lambda_g = (
TC::C0 / freq ) / std::sqrt( epsr * mur );
205 const bool Z0_invalid = !std::isfinite(
Z0 ) ||
Z0 < 0;
206 const bool angL_invalid = !std::isfinite( angL ) || angL < 0;
207 const bool len_invalid = !std::isfinite( len ) || len < 0;
208 const bool Din_invalid = !std::isfinite( Din ) || Din <= 0.0;
209 const bool Dout_invalid = !std::isfinite( Dout ) || Dout <= 0.0;
210 const bool geometry_invalid = Din >= Dout;
236 const bool Z0_invalid = !std::isfinite(
Z0 ) ||
Z0 < 0;
237 const bool angL_invalid = !std::isfinite( angL ) || angL < 0;
238 const bool len_invalid = !std::isfinite( len ) || len < 0;
239 const bool Din_invalid = !std::isfinite( Din ) || Din <= 0.0;
240 const bool Dout_invalid = !std::isfinite( Dout ) || Dout <= 0.0;
241 const bool geometry_invalid = Din >= Dout;
std::string m_teModes
Cached TE_1m propagating-modes string produced by UpdateModeCutoffs.
void UpdateModeCutoffs()
Populates the TE / TM mode cutoff display strings and CUTOFF_FREQUENCY from current geometry.
void SetAnalysisResults() override
Sets the output values and status following analysis.
double AlphaD() const
Dielectric loss per unit length, in dB/m.
bool Synthesize(SYNTHESIZE_OPTS aOpts) override
Synthesize the cable geometry to match the given Z0 target.
std::string m_tmModes
Cached TM_0m propagating-modes string produced by UpdateModeCutoffs.
void Analyse() override
Analyse cable geometry parameters to output Z0, electrical length, losses and cutoffs.
void SetSynthesisResults() override
Sets the output values and status following synthesis.
double AlphaC() const
Conductor loss per unit length, in dB/m.
double GetDispersedEpsilonR(double aF) const
Dispersed permittivity at aF. Returns raw EPSILONR when the model is inactive.
TRANSLINE_PARAMETERS m_synthesizeTarget
Which geometry parameter is the unknown during synthesis (set by the UI)
double GetDispersedTanDelta(double aF) const
Dispersed loss tangent at aF. Returns raw TAND when the model is inactive.
double GetParameter(const TRANSLINE_PARAMETERS aParam) const
Gets the given calculation property.
void SetParameter(const TRANSLINE_PARAMETERS aParam, const double aValue)
Sets the given calculation property.
void SetSynthesisResult(TRANSLINE_PARAMETERS aParam, const double aValue, const TRANSLINE_STATUS aStatus=TRANSLINE_STATUS::OK)
Sets a synthesis result.
void UpdateDielectricModel()
Refit the Djordjevic-Sarkar model from the current parameter map.
double SkinDepth() const
Calculate skin depth.
void SetAnalysisResult(TRANSLINE_PARAMETERS aParam, const double aValue, const TRANSLINE_STATUS aStatus=TRANSLINE_STATUS::OK)
Sets an analysis result.
SYNTHESIZE_OPTS
Options for specifying synthesis inputs, targets, or strategies.
TRANSLINE_STATUS
Parameter status values.
TRANSLINE_PARAMETERS
All possible parameters used (as inputs or outputs) by the transmission line calculations.