KiCad PCB EDA Suite
COAX Class Reference

#include <coax.h>

Inheritance diagram for COAX:
TRANSLINE

Public Member Functions

 COAX ()
 
void setProperty (enum PRMS_ID aPrmId, double aValue)
 
double getProperty (enum PRMS_ID aPrmId)
 
void getProperties ()
 @function getProperties More...
 
void checkProperties ()
 @function checkProperties More...
 
void setResult (int, double, const char *)
 
void setResult (int, const char *)
 
bool isSelected (enum PRMS_ID aPrmId)
 
void Init ()
 
virtual void synthesize ()
 
virtual void calc ()
 
void analyze ()
 

Public Attributes

const char * m_Name
 
KIGFX::COLOR4D errCol = KIGFX::COLOR4D( 1, 0.63, 0.63, 1 )
 
KIGFX::COLOR4D warnCol = KIGFX::COLOR4D( 1, 1, 0.57, 1 )
 
KIGFX::COLOR4D okCol = KIGFX::COLOR4D( 1, 1, 1, 1 )
 

Protected Member Functions

bool minimizeZ0Error1D (double *)
 @function minimizeZ0Error1D More...
 
double skin_depth ()
 @function skin_depth calculate skin depth More...
 
void ellipke (double, double &, double &)
 
double ellipk (double)
 
void setErrorLevel (PRMS_ID, char)
 @function setErrorLevel More...
 

Protected Attributes

double m_parameters [EXTRA_PRMS_COUNT]
 
double len
 
double er_eff
 
double ang_l
 

Private Member Functions

void calcAnalyze () override
 $ Z_0 = \frac{Z_{0_{\mathrm{vacuum}}}}{\sqrt{\epsilon_r}}\log_{10}\left( \frac{D_{\mathrm{out}}}{D_{\mathrm{in}}}\right) $ More...
 
void calcSynthesize () override
 $ D_{\mathrm{in}} = D_{\mathrm{out}}  \cdot e^{-\frac{Z_0*\sqrt{\epsilon_r}}{2\pi \cdot  Z_{0_{\mathrm{vacuum}}}}} $ More...
 
void showAnalyze () override
 Shows synthesis results and checks for errors / warnings. More...
 
void showSynthesize () override
 Shows analysis results and checks for errors / warnings. More...
 
double alphad_coax ()
 
double alphac_coax ()
 
void show_results () override
 Shows results. More...
 

Detailed Description

Definition at line 30 of file coax.h.

Constructor & Destructor Documentation

◆ COAX()

COAX::COAX ( )

Definition at line 38 of file coax.cpp.

38 : TRANSLINE()
39{
40 m_Name = "Coax";
41 Init();
42}
void Init()
Definition: transline.cpp:90
const char * m_Name
Definition: transline.h:84

References TRANSLINE::Init(), and TRANSLINE::m_Name.

Member Function Documentation

◆ alphac_coax()

double COAX::alphac_coax ( )
private

Definition at line 55 of file coax.cpp.

56{
57 double ac, Rs;
58
59 Rs = sqrt( M_PI * m_parameters[FREQUENCY_PRM] * m_parameters[MURC_PRM] * MU0
61 ac = sqrt( m_parameters[EPSILONR_PRM] )
64 * ( Rs / ZF0 );
65 ac = ac * 20.0 / log( 10.0 );
66 return ac;
67}
double m_parameters[EXTRA_PRMS_COUNT]
Definition: transline.h:131
@ SIGMA_PRM
Definition: transline.h:69
@ FREQUENCY_PRM
Definition: transline.h:51
@ PHYS_DIAM_OUT_PRM
Definition: transline.h:59
@ MURC_PRM
Definition: transline.h:50
@ PHYS_DIAM_IN_PRM
Definition: transline.h:57
@ EPSILONR_PRM
Definition: transline.h:39
#define ZF0
Definition: units.h:62
#define MU0
Definition: units.h:60

References EPSILONR_PRM, FREQUENCY_PRM, TRANSLINE::m_parameters, MU0, MURC_PRM, PHYS_DIAM_IN_PRM, PHYS_DIAM_OUT_PRM, SIGMA_PRM, and ZF0.

Referenced by show_results().

◆ alphad_coax()

double COAX::alphad_coax ( )
private

Definition at line 44 of file coax.cpp.

45{
46 double ad;
47
48 ad = ( M_PI / C0 ) * m_parameters[FREQUENCY_PRM] * sqrt( m_parameters[EPSILONR_PRM] )
50 ad = ad * 20.0 / log( 10.0 );
51 return ad;
52}
@ TAND_PRM
Definition: transline.h:40
#define C0
Definition: units.h:61

References C0, EPSILONR_PRM, FREQUENCY_PRM, TRANSLINE::m_parameters, and TAND_PRM.

Referenced by show_results().

◆ analyze()

void TRANSLINE::analyze ( )
inherited

Definition at line 211 of file transline.cpp.

212{
215 calcAnalyze();
216 showAnalyze();
217 show_results();
218}
void getProperties()
@function getProperties
Definition: transline.cpp:150
void checkProperties()
@function checkProperties
Definition: transline.cpp:169
virtual void showAnalyze()
Shows synthesis results and checks for errors / warnings.
Definition: transline.h:112
virtual void show_results()
Shows results.
Definition: transline.h:122
virtual void calcAnalyze()
Computation for analysis.
Definition: transline.h:102

References TRANSLINE::calcAnalyze(), TRANSLINE::checkProperties(), TRANSLINE::getProperties(), TRANSLINE::show_results(), and TRANSLINE::showAnalyze().

Referenced by PANEL_TRANSLINE::OnTranslineAnalyse().

◆ calc()

virtual void TRANSLINE::calc ( )
inlinevirtualinherited

Definition at line 97 of file transline.h.

97{}

◆ calcAnalyze()

void COAX::calcAnalyze ( )
overrideprivatevirtual

$ Z_0 = \frac{Z_{0_{\mathrm{vacuum}}}}{\sqrt{\epsilon_r}}\log_{10}\left( \frac{D_{\mathrm{out}}}{D_{\mathrm{in}}}\right) $

$ \lambda_g = \frac{c}{f \cdot \sqrt{ \epsilon_r \cdot \mu_r}} $

$ L_{[\mathrm{rad}]} = \frac{ 2\pi\cdot L_{[\mathrm{m}]}}{\lambda_g} $

Reimplemented from TRANSLINE.

Definition at line 77 of file coax.cpp.

78{
79 double lambda_g;
80
81
83 ( ZF0 / 2 / M_PI / sqrt( m_parameters[EPSILONR_PRM] ) )
85
86 lambda_g = ( C0 / ( m_parameters[FREQUENCY_PRM] ) )
88 /* calculate electrical angle */
90 ( 2.0 * M_PI * m_parameters[PHYS_LEN_PRM] ) / lambda_g; /* in radians */
91}
@ MUR_PRM
Definition: transline.h:48
@ Z0_PRM
Definition: transline.h:52
@ PHYS_LEN_PRM
Definition: transline.h:60
@ ANG_L_PRM
Definition: transline.h:55

References ANG_L_PRM, C0, EPSILONR_PRM, FREQUENCY_PRM, TRANSLINE::m_parameters, MUR_PRM, PHYS_DIAM_IN_PRM, PHYS_DIAM_OUT_PRM, PHYS_LEN_PRM, Z0_PRM, and ZF0.

◆ calcSynthesize()

void COAX::calcSynthesize ( )
overrideprivatevirtual

$ D_{\mathrm{in}} = D_{\mathrm{out}}  \cdot e^{-\frac{Z_0*\sqrt{\epsilon_r}}{2\pi \cdot  Z_{0_{\mathrm{vacuum}}}}} $

$ D_{\mathrm{out}} = D_{\mathrm{in}}  \cdot e^{ \frac{Z_0*\sqrt{\epsilon_r}}{2\pi \cdot  Z_{0_{\mathrm{vacuum}}}}} $

$ \lambda_g = \frac{c}{f \cdot \sqrt{ \epsilon_r \cdot \mu_r}} $

$ L_{[\mathrm{m}]} = \frac{ \lambda_g cdot L_{[\mathrm{m}]}}{2\pi} $

Reimplemented from TRANSLINE.

Definition at line 103 of file coax.cpp.

104{
105 double lambda_g;
106
108 {
109 /* solve for din */
112 / exp( m_parameters[Z0_PRM] * sqrt( m_parameters[EPSILONR_PRM] ) / ZF0 * 2 * M_PI );
113 }
114 else if( isSelected( PHYS_DIAM_OUT_PRM ) )
115 {
116 /* solve for dout */
119 * exp( m_parameters[Z0_PRM] * sqrt( m_parameters[EPSILONR_PRM] ) / ZF0 * 2 * M_PI );
120 }
121
122 lambda_g = ( C0 / ( m_parameters[FREQUENCY_PRM] ) )
124 /* calculate physical length */
125 m_parameters[PHYS_LEN_PRM] = ( lambda_g * m_parameters[ANG_L_PRM] ) / ( 2.0 * M_PI ); /* in m */
126}
bool isSelected(enum PRMS_ID aPrmId)
Definition: transline.cpp:119

References ANG_L_PRM, C0, EPSILONR_PRM, FREQUENCY_PRM, TRANSLINE::isSelected(), TRANSLINE::m_parameters, MUR_PRM, PHYS_DIAM_IN_PRM, PHYS_DIAM_OUT_PRM, PHYS_LEN_PRM, Z0_PRM, and ZF0.

◆ checkProperties()

void TRANSLINE::checkProperties ( )
inherited

@function checkProperties

Checks the input parameters (ie: negative length). Does not check for incompatibility between values as this depends on the line shape.

Definition at line 169 of file transline.cpp.

170{
171 // Do not check for values that are results of analyzing / synthesizing
172 // Do not check for transline specific incompatibilities ( like " conductor height should be lesser than dielectric height")
173 if( !std::isfinite( m_parameters[EPSILONR_PRM] ) || m_parameters[EPSILONR_PRM] <= 0 )
175
176 if( !std::isfinite( m_parameters[TAND_PRM] ) || m_parameters[TAND_PRM] < 0 )
178
179 if( !std::isfinite( m_parameters[RHO_PRM] ) || m_parameters[RHO_PRM] < 0 )
181
182 if( !std::isfinite( m_parameters[H_PRM] ) || m_parameters[H_PRM] < 0 )
184
185 if( !std::isfinite( m_parameters[TWISTEDPAIR_TWIST_PRM] )
188
189 if( !std::isfinite( m_parameters[STRIPLINE_A_PRM] ) || m_parameters[STRIPLINE_A_PRM] <= 0 )
191
192 if( !std::isfinite( m_parameters[H_T_PRM] ) || m_parameters[H_T_PRM] <= 0 )
194
195 // How can we check ROUGH_PRM ?
196
197 if( !std::isfinite( m_parameters[MUR_PRM] ) || m_parameters[MUR_PRM] < 0 )
199
200 if( !std::isfinite( m_parameters[TWISTEDPAIR_EPSILONR_ENV_PRM] )
203
204 if( !std::isfinite( m_parameters[MURC_PRM] ) || m_parameters[MURC_PRM] < 0 )
206
207 if( !std::isfinite( m_parameters[FREQUENCY_PRM] ) || m_parameters[FREQUENCY_PRM] <= 0 )
209}
void setErrorLevel(PRMS_ID, char)
@function setErrorLevel
Definition: transline.cpp:435
@ TWISTEDPAIR_EPSILONR_ENV_PRM
Definition: transline.h:49
@ RHO_PRM
Definition: transline.h:41
@ STRIPLINE_A_PRM
Definition: transline.h:45
@ H_T_PRM
Definition: transline.h:44
@ TWISTEDPAIR_TWIST_PRM
Definition: transline.h:43
@ H_PRM
Definition: transline.h:42
#define TRANSLINE_WARNING
Definition: transline.h:30

References EPSILONR_PRM, FREQUENCY_PRM, H_PRM, H_T_PRM, TRANSLINE::m_parameters, MUR_PRM, MURC_PRM, RHO_PRM, TRANSLINE::setErrorLevel(), STRIPLINE_A_PRM, TAND_PRM, TRANSLINE_WARNING, TWISTEDPAIR_EPSILONR_ENV_PRM, and TWISTEDPAIR_TWIST_PRM.

Referenced by TRANSLINE::analyze(), and TRANSLINE::synthesize().

◆ ellipk()

double TRANSLINE::ellipk ( double  k)
protectedinherited

Definition at line 324 of file transline.cpp.

325{
326 double r, lost;
327
328 ellipke( k, r, lost );
329 return r;
330}
void ellipke(double, double &, double &)
Definition: transline.cpp:259
E_SERIE r
Definition: eserie.cpp:41

References TRANSLINE::ellipke(), and r.

Referenced by COPLANAR::calcAnalyze().

◆ ellipke()

void TRANSLINE::ellipke ( double  arg,
double &  k,
double &  e 
)
protectedinherited

Definition at line 259 of file transline.cpp.

260{
261 int iMax = 16;
262
263 if( arg == 1.0 )
264 {
265 k = INFINITY; // infinite
266 e = 0;
267 }
268 else if( std::isinf( arg ) && arg < 0 )
269 {
270 k = 0;
271 e = INFINITY; // infinite
272 }
273 else
274 {
275 double a, b, c, fr, s, fk = 1, fe = 1, t, da = arg;
276 int i;
277
278 if( arg < 0 )
279 {
280 fk = 1 / sqrt( 1 - arg );
281 fe = sqrt( 1 - arg );
282 da = -arg / ( 1 - arg );
283 }
284
285 a = 1;
286 b = sqrt( 1 - da );
287 c = sqrt( da );
288 fr = 0.5;
289 s = fr * c * c;
290
291 for( i = 0; i < iMax; i++ )
292 {
293 t = ( a + b ) / 2;
294 c = ( a - b ) / 2;
295 b = sqrt( a * b );
296 a = t;
297 fr *= 2;
298 s += fr * c * c;
299
300 if( c / a < NR_EPSI )
301 break;
302 }
303
304 if( i >= iMax )
305 {
306 k = 0;
307 e = 0;
308 }
309 else
310 {
311 k = M_PI_2 / a;
312 e = M_PI_2 * ( 1 - s ) / a;
313 if( arg < 0 )
314 {
315 k *= fk;
316 e *= fe;
317 }
318 }
319 }
320}
#define NR_EPSI
Definition: transline.cpp:253
#define INFINITY
Definition: transline.cpp:35
#define M_PI_2
Definition: transline.cpp:40

References INFINITY, M_PI_2, and NR_EPSI.

Referenced by TRANSLINE::ellipk().

◆ getProperties()

void TRANSLINE::getProperties ( )
inherited

@function getProperties

Get all properties from the UI. Computes some extra ones.

Definition at line 150 of file transline.cpp.

151{
152 for( int i = 0; i < DUMMY_PRM; ++i )
153 {
154 m_parameters[i] = getProperty( (PRMS_ID) i );
156 }
157
161}
double getProperty(enum PRMS_ID aPrmId)
Definition: transline.cpp:140
double skin_depth()
@function skin_depth calculate skin depth
Definition: transline.cpp:237
@ EPSILON_EFF_PRM
Definition: transline.h:74
@ SKIN_DEPTH_PRM
Definition: transline.h:70
PRMS_ID
Definition: transline.h:37
@ DUMMY_PRM
Definition: transline.h:61
#define TRANSLINE_OK
Definition: transline.h:29

References DUMMY_PRM, EPSILON_EFF_PRM, TRANSLINE::getProperty(), TRANSLINE::m_parameters, RHO_PRM, TRANSLINE::setErrorLevel(), SIGMA_PRM, TRANSLINE::skin_depth(), SKIN_DEPTH_PRM, and TRANSLINE_OK.

Referenced by TRANSLINE::analyze(), and TRANSLINE::synthesize().

◆ getProperty()

double TRANSLINE::getProperty ( enum PRMS_ID  aPrmId)
inherited

◆ Init()

void TRANSLINE::Init ( )
inherited

Definition at line 90 of file transline.cpp.

91{
92 wxColour wxcol = wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW );
93 okCol = KIGFX::COLOR4D( wxcol );
94 okCol.r = wxcol.Red() / 255.0;
95 okCol.g = wxcol.Green() / 255.0;
96 okCol.b = wxcol.Blue() / 255.0;
97 int i;
98 // Initialize these variables mainly to avoid warnings from a static analyzer
99 for( i = 0; i < EXTRA_PRMS_COUNT; ++i )
100 {
101 m_parameters[i] = 0;
102 }
103}
A color representation with 4 components: red, green, blue, alpha.
Definition: color4d.h:104
double r
Red component.
Definition: color4d.h:384
double g
Green component.
Definition: color4d.h:385
double b
Blue component.
Definition: color4d.h:386
KIGFX::COLOR4D okCol
Definition: transline.h:128
@ EXTRA_PRMS_COUNT
Definition: transline.h:75

References KIGFX::COLOR4D::b, EXTRA_PRMS_COUNT, KIGFX::COLOR4D::g, TRANSLINE::m_parameters, TRANSLINE::okCol, and KIGFX::COLOR4D::r.

Referenced by C_MICROSTRIP::C_MICROSTRIP(), COAX(), COPLANAR::COPLANAR(), MICROSTRIP::MICROSTRIP(), RECTWAVEGUIDE::RECTWAVEGUIDE(), STRIPLINE::STRIPLINE(), TRANSLINE::TRANSLINE(), and TWISTEDPAIR::TWISTEDPAIR().

◆ isSelected()

bool TRANSLINE::isSelected ( enum PRMS_ID  aPrmId)
inherited

◆ minimizeZ0Error1D()

bool TRANSLINE::minimizeZ0Error1D ( double *  aVar)
protectedinherited

@function minimizeZ0Error1D

Tries to find a parameter that minimizes the error ( on Z0 ). This function only works with a single parameter. Calls calcAnalyze several times until the error is acceptable. While the error is unnacceptable, changes slightly the parameter.

This function does not change Z0 / Angl_L.

Parameters
avarParameter to synthesize
Returns
'true' if error < MAX_ERROR, else 'false'

Definition at line 349 of file transline.cpp.

350{
351 double Z0_dest, Z0_current, Z0_result, angl_l_dest, increment, slope, error;
352 int iteration;
353
354 if( !std::isfinite( m_parameters[Z0_PRM] ) )
355 {
356 *aVar = NAN;
357 return false;
358 }
359
360 if( ( !std::isfinite( *aVar ) ) || ( *aVar == 0 ) )
361 *aVar = 0.001;
362
363 /* required value of Z0 */
364 Z0_dest = m_parameters[Z0_PRM];
365
366 /* required value of angl_l */
367 angl_l_dest = m_parameters[ANG_L_PRM];
368
369 /* Newton's method */
370 iteration = 0;
371
372 /* compute parameters */
373 calcAnalyze();
374 Z0_current = m_parameters[Z0_PRM];
375
376 error = fabs( Z0_dest - Z0_current );
377
378 while( error > MAX_ERROR )
379 {
380 iteration++;
381 increment = *aVar / 100.0;
382 *aVar += increment;
383 /* compute parameters */
384 calcAnalyze();
385 Z0_result = m_parameters[Z0_PRM];
386 /* f(w(n)) = Z0 - Z0(w(n)) */
387 /* f'(w(n)) = -f'(Z0(w(n))) */
388 /* f'(Z0(w(n))) = (Z0(w(n)) - Z0(w(n+delw))/delw */
389 /* w(n+1) = w(n) - f(w(n))/f'(w(n)) */
390 slope = ( Z0_result - Z0_current ) / increment;
391 slope = ( Z0_dest - Z0_current ) / slope - increment;
392 *aVar += slope;
393
394 if( *aVar <= 0.0 )
395 *aVar = increment;
396
397 /* find new error */
398 /* compute parameters */
399 calcAnalyze();
400 Z0_current = m_parameters[Z0_PRM];
401 error = fabs( Z0_dest - Z0_current );
402
403 if( iteration > 100 )
404 break;
405 }
406
407 /* Compute one last time, but with correct length */
408 m_parameters[Z0_PRM] = Z0_dest;
409 m_parameters[ANG_L_PRM] = angl_l_dest;
412 / 2.0 / M_PI; /* in m */
413 calcAnalyze();
414
415 /* Restore parameters */
416 m_parameters[Z0_PRM] = Z0_dest;
417 m_parameters[ANG_L_PRM] = angl_l_dest;
420 / 2.0 / M_PI; /* in m */
421 return error <= MAX_ERROR;
422}
#define MAX_ERROR
Definition: transline.cpp:332

References ANG_L_PRM, C0, TRANSLINE::calcAnalyze(), EPSILON_EFF_PRM, FREQUENCY_PRM, TRANSLINE::m_parameters, MAX_ERROR, PHYS_LEN_PRM, and Z0_PRM.

Referenced by COPLANAR::calcSynthesize(), MICROSTRIP::calcSynthesize(), STRIPLINE::calcSynthesize(), and TWISTEDPAIR::calcSynthesize().

◆ setErrorLevel()

void TRANSLINE::setErrorLevel ( PRMS_ID  aP,
char  aErrorLevel 
)
protectedinherited

@function setErrorLevel

set an error / warning level for a given parameter.

See also
TRANSLINE_OK
TRANSLINE_WARNING
TRANSLINE_ERROR
Parameters
aPparameter
aErrorLevelError level

Definition at line 435 of file transline.cpp.

436{
437 switch( aErrorLevel )
438 {
441 default: SetPropertyBgColorInDialog( aP, &okCol ); break;
442 }
443}
KIGFX::COLOR4D warnCol
Definition: transline.h:127
KIGFX::COLOR4D errCol
Definition: transline.h:126
void SetPropertyBgColorInDialog(enum PRMS_ID aPrmId, const KIGFX::COLOR4D *aCol)
Function SetPropertyBgColorInDialog Set the background color of a parameter.
#define TRANSLINE_ERROR
Definition: transline.h:31

References TRANSLINE::errCol, TRANSLINE::okCol, SetPropertyBgColorInDialog(), TRANSLINE_ERROR, TRANSLINE_WARNING, and TRANSLINE::warnCol.

Referenced by TRANSLINE::checkProperties(), TRANSLINE::getProperties(), C_MICROSTRIP::showAnalyze(), showAnalyze(), COPLANAR::showAnalyze(), MICROSTRIP::showAnalyze(), RECTWAVEGUIDE::showAnalyze(), STRIPLINE::showAnalyze(), TWISTEDPAIR::showAnalyze(), C_MICROSTRIP::showSynthesize(), showSynthesize(), COPLANAR::showSynthesize(), MICROSTRIP::showSynthesize(), RECTWAVEGUIDE::showSynthesize(), STRIPLINE::showSynthesize(), and TWISTEDPAIR::showSynthesize().

◆ setProperty()

◆ setResult() [1/2]

void TRANSLINE::setResult ( int  line,
const char *  text 
)
inherited

Definition at line 127 of file transline.cpp.

128{
129 SetResultInDialog( line, text );
130}
void SetResultInDialog(int line, const char *text)

References SetResultInDialog(), and text.

◆ setResult() [2/2]

void TRANSLINE::setResult ( int  line,
double  value,
const char *  text 
)
inherited

◆ show_results()

void COAX::show_results ( )
overrideprivatevirtual

Shows results.

Reimplemented from TRANSLINE.

Definition at line 209 of file coax.cpp.

210{
211 int m, n;
212 char text[256], txt[256];
213
216
220
221 n = 1;
223 C0
224 / ( M_PI * ( m_parameters[PHYS_DIAM_OUT_PRM] + m_parameters[MUR_PRM] ) / (double) n );
225
227 {
228 strcpy( text, "none" );
229 }
230 else
231 {
232 strcpy( text, "H(1,1) " );
233 m = 2;
235 C0
237 / (double) ( m - 1 ) );
238
239 while( ( m_parameters[CUTOFF_FREQUENCY_PRM] <= m_parameters[FREQUENCY_PRM] ) && ( m < 10 ) )
240 {
241 sprintf( txt, "H(n,%d) ", m );
242 strcat( text, txt );
243 m++;
245 C0
247 / (double) ( m - 1 ) );
248 }
249 }
250 setResult( 3, text );
251
252 m = 1;
254 C0 / ( 2 * ( m_parameters[PHYS_DIAM_OUT_PRM] - m_parameters[MUR_PRM] ) / (double) m );
256 {
257 strcpy( text, "none" );
258 }
259 else
260 {
261 strcpy( text, "" );
262
263 while( ( m_parameters[CUTOFF_FREQUENCY_PRM] <= m_parameters[FREQUENCY_PRM] ) && ( m < 10 ) )
264 {
265 sprintf( txt, "E(n,%d) ", m );
266 strcat( text, txt );
267 m++;
269 C0
271 / (double) m );
272 }
273 }
274 setResult( 4, text );
275}
double alphac_coax()
Definition: coax.cpp:55
double alphad_coax()
Definition: coax.cpp:44
void setResult(int, double, const char *)
Definition: transline.cpp:133
@ LOSS_DIELECTRIC_PRM
Definition: transline.h:71
@ LOSS_CONDUCTOR_PRM
Definition: transline.h:72
@ CUTOFF_FREQUENCY_PRM
Definition: transline.h:73

References alphac_coax(), alphad_coax(), C0, CUTOFF_FREQUENCY_PRM, EPSILONR_PRM, FREQUENCY_PRM, LOSS_CONDUCTOR_PRM, LOSS_DIELECTRIC_PRM, TRANSLINE::m_parameters, MUR_PRM, PHYS_DIAM_OUT_PRM, PHYS_LEN_PRM, TRANSLINE::setResult(), and text.

◆ showAnalyze()

void COAX::showAnalyze ( )
overrideprivatevirtual

Shows synthesis results and checks for errors / warnings.

Reimplemented from TRANSLINE.

Definition at line 129 of file coax.cpp.

130{
133
134 // Check for errors
135 if( !std::isfinite( m_parameters[Z0_PRM] ) || m_parameters[Z0_PRM] < 0 )
137
138 if( !std::isfinite( m_parameters[ANG_L_PRM] ) || m_parameters[ANG_L_PRM] < 0 )
140
141 // Find warnings to display - physical parameters
142 if( !std::isfinite( m_parameters[PHYS_DIAM_IN_PRM] ) || m_parameters[PHYS_DIAM_IN_PRM] <= 0.0 )
144
145 if( !std::isfinite( m_parameters[PHYS_DIAM_OUT_PRM] )
147 {
149 }
150
152 {
155 }
156
157 if( !std::isfinite( m_parameters[PHYS_LEN_PRM] ) || m_parameters[PHYS_LEN_PRM] < 0.0 )
159}
void setProperty(enum PRMS_ID aPrmId, double aValue)
Definition: transline.cpp:109

References ANG_L_PRM, TRANSLINE::m_parameters, PHYS_DIAM_IN_PRM, PHYS_DIAM_OUT_PRM, PHYS_LEN_PRM, TRANSLINE::setErrorLevel(), TRANSLINE::setProperty(), TRANSLINE_ERROR, TRANSLINE_WARNING, and Z0_PRM.

◆ showSynthesize()

void COAX::showSynthesize ( )
overrideprivatevirtual

Shows analysis results and checks for errors / warnings.

Reimplemented from TRANSLINE.

Definition at line 161 of file coax.cpp.

162{
165 else if( isSelected( PHYS_DIAM_OUT_PRM ) )
167
169
170 // Check for errors
171 if( !std::isfinite( m_parameters[PHYS_DIAM_IN_PRM] ) || m_parameters[PHYS_DIAM_IN_PRM] <= 0.0 )
172 {
175 else
177 }
178
179 if( !std::isfinite( m_parameters[PHYS_DIAM_OUT_PRM] )
181 {
184 else
186 }
187
189 {
192 else if( isSelected( PHYS_DIAM_OUT_PRM ) )
194 }
195
196 if( !std::isfinite( m_parameters[PHYS_LEN_PRM] ) || m_parameters[PHYS_LEN_PRM] < 0.0 )
198
199 // Check for warnings
200 if( !std::isfinite( m_parameters[Z0_PRM] ) || m_parameters[Z0_PRM] < 0 )
202
203 if( !std::isfinite( m_parameters[ANG_L_PRM] ) || m_parameters[ANG_L_PRM] < 0 )
205}

References ANG_L_PRM, TRANSLINE::isSelected(), TRANSLINE::m_parameters, PHYS_DIAM_IN_PRM, PHYS_DIAM_OUT_PRM, PHYS_LEN_PRM, TRANSLINE::setErrorLevel(), TRANSLINE::setProperty(), TRANSLINE_ERROR, TRANSLINE_WARNING, and Z0_PRM.

◆ skin_depth()

double TRANSLINE::skin_depth ( )
protectedinherited

@function skin_depth calculate skin depth

$ \frac{1}{\sqrt{ \pi \cdot f \cdot \mu \cdot \sigma }} $

Definition at line 237 of file transline.cpp.

238{
239 double depth;
240 depth = 1.0
243 return depth;
244}

References FREQUENCY_PRM, TRANSLINE::m_parameters, MU0, MURC_PRM, and SIGMA_PRM.

Referenced by C_MICROSTRIP::attenuation(), MICROSTRIP::attenuation(), COPLANAR::calcAnalyze(), STRIPLINE::calcAnalyze(), and TRANSLINE::getProperties().

◆ synthesize()

void TRANSLINE::synthesize ( )
virtualinherited

Definition at line 220 of file transline.cpp.

221{
226 show_results();
227}
virtual void showSynthesize()
Shows analysis results and checks for errors / warnings.
Definition: transline.h:117
virtual void calcSynthesize()
Computation for synthesis.
Definition: transline.h:107

References TRANSLINE::calcSynthesize(), TRANSLINE::checkProperties(), TRANSLINE::getProperties(), TRANSLINE::show_results(), and TRANSLINE::showSynthesize().

Referenced by PANEL_TRANSLINE::OnTranslineSynthetize().

Member Data Documentation

◆ ang_l

double TRANSLINE::ang_l
protectedinherited

Definition at line 134 of file transline.h.

Referenced by TRANSLINE::TRANSLINE().

◆ er_eff

◆ errCol

KIGFX::COLOR4D TRANSLINE::errCol = KIGFX::COLOR4D( 1, 0.63, 0.63, 1 )
inherited

Definition at line 126 of file transline.h.

Referenced by TRANSLINE::setErrorLevel().

◆ len

double TRANSLINE::len
protectedinherited

Definition at line 132 of file transline.h.

Referenced by TRANSLINE::TRANSLINE().

◆ m_Name

◆ m_parameters

double TRANSLINE::m_parameters[EXTRA_PRMS_COUNT]
protectedinherited

Definition at line 131 of file transline.h.

Referenced by RECTWAVEGUIDE::alphac(), alphac_coax(), RECTWAVEGUIDE::alphad(), alphad_coax(), C_MICROSTRIP::attenuation(), MICROSTRIP::attenuation(), calcAnalyze(), COPLANAR::calcAnalyze(), RECTWAVEGUIDE::calcAnalyze(), STRIPLINE::calcAnalyze(), TWISTEDPAIR::calcAnalyze(), C_MICROSTRIP::calcSynthesize(), calcSynthesize(), COPLANAR::calcSynthesize(), MICROSTRIP::calcSynthesize(), RECTWAVEGUIDE::calcSynthesize(), STRIPLINE::calcSynthesize(), TWISTEDPAIR::calcSynthesize(), TRANSLINE::checkProperties(), C_MICROSTRIP::compute_single_line(), C_MICROSTRIP::conductor_losses(), MICROSTRIP::conductor_losses(), C_MICROSTRIP::delta_u_thickness(), C_MICROSTRIP::dielectric_losses(), MICROSTRIP::dielectric_losses(), MICROSTRIP::dispersion(), C_MICROSTRIP::er_eff_freq(), C_MICROSTRIP::er_eff_static(), RECTWAVEGUIDE::fc(), RECTWAVEGUIDE::get_rectwaveguide_comp(), RECTWAVEGUIDE::get_rectwaveguide_elec(), RECTWAVEGUIDE::get_rectwaveguide_phys(), RECTWAVEGUIDE::get_rectwaveguide_sub(), TRANSLINE::getProperties(), TRANSLINE::Init(), RECTWAVEGUIDE::kc_square(), RECTWAVEGUIDE::kval_square(), C_MICROSTRIP::line_angle(), MICROSTRIP::line_angle(), STRIPLINE::lineImpedance(), MICROSTRIP::microstrip_Z0(), TRANSLINE::minimizeZ0Error1D(), MICROSTRIP::mur_eff_ms(), C_MICROSTRIP::show_results(), show_results(), COPLANAR::show_results(), MICROSTRIP::show_results(), RECTWAVEGUIDE::show_results(), STRIPLINE::show_results(), TWISTEDPAIR::show_results(), C_MICROSTRIP::showAnalyze(), showAnalyze(), COPLANAR::showAnalyze(), MICROSTRIP::showAnalyze(), RECTWAVEGUIDE::showAnalyze(), STRIPLINE::showAnalyze(), TWISTEDPAIR::showAnalyze(), C_MICROSTRIP::showSynthesize(), showSynthesize(), COPLANAR::showSynthesize(), MICROSTRIP::showSynthesize(), RECTWAVEGUIDE::showSynthesize(), STRIPLINE::showSynthesize(), TWISTEDPAIR::showSynthesize(), TRANSLINE::skin_depth(), C_MICROSTRIP::syn_fun(), C_MICROSTRIP::synth_width(), MICROSTRIP::synth_width(), TRANSLINE::TRANSLINE(), C_MICROSTRIP::Z0_dispersion(), and C_MICROSTRIP::Z0_even_odd().

◆ okCol

KIGFX::COLOR4D TRANSLINE::okCol = KIGFX::COLOR4D( 1, 1, 1, 1 )
inherited

Definition at line 128 of file transline.h.

Referenced by TRANSLINE::Init(), and TRANSLINE::setErrorLevel().

◆ warnCol

KIGFX::COLOR4D TRANSLINE::warnCol = KIGFX::COLOR4D( 1, 1, 0.57, 1 )
inherited

Definition at line 127 of file transline.h.

Referenced by TRANSLINE::setErrorLevel().


The documentation for this class was generated from the following files: