56 atten_dielectric( 0.0 ),
71 double freq, Z0_value;
73 freq = 6.0 + ( 2.0 * M_PI - 6.0 ) * exp( -pow( 30.666 / u, 0.7528 ) );
74 Z0_value = (
ZF0 / ( 2.0 * M_PI ) ) * log( freq / u + sqrt( 1.0 + 4.0 / ( u * u ) ) );
89 P = 270.0 * ( 1.0 - tanh( 1.192 + 0.706 * sqrt( h2hp1 ) - 1.389 / h2hp1 ) );
90 Q = 1.0109 -
atanh( ( 0.012 * u + 0.177 * u * u - 0.027 * u * u * u ) / ( h2hp1 * h2hp1 ) );
107 a = 1.0 + log( ( u4 + u2 / 2704 ) / ( u4 + 0.432 ) ) / 49.0 + log( 1.0 + u3 / 5929.741 ) / 18.7;
108 b = 0.564 * pow( ( e_r - 0.9 ) / ( e_r + 3.0 ), 0.053 );
109 q_inf = pow( 1.0 + 10.0 / u, -a * b );
121 q_c = tanh( 1.043 + 0.121 * h2h - 1.164 / h2h );
133 q_t = ( 2.0 * log( 2.0 ) / M_PI ) * ( t_h / sqrt( u ) );
146 e_r_eff = 0.5 * ( e_r + 1.0 ) + 0.5 * q * ( e_r - 1.0 );
161 delta_u = ( t_h / M_PI )
162 * log( 1.0 + ( 4.0 * M_E ) * pow( tanh( sqrt( 6.517 * u ) ), 2.0 ) / t_h );
164 delta_u = 0.5 * delta_u * ( 1.0 + 1.0 / cosh( sqrt( e_r - 1.0 ) ) );
179 double e_r, h2, h2h, u, t_h;
181 double delta_u_1, delta_u_r, q_inf, q_c, q_t, e_r_eff, e_r_eff_t, q;
206 q = ( q_inf - q_t ) * q_c;
212 e_r_eff = e_r_eff_t * pow(
Z0_h_1 / Z0_h_r, 2.0 );
230 double P_1, P_2, P_3, P_4, P;
232 P_1 = 0.27488 + u * ( 0.6315 + 0.525 / pow( 1.0 + 0.0157 * f_n, 20.0 ) )
233 - 0.065683 * exp( -8.7513 * u );
234 P_2 = 0.33622 * ( 1.0 - exp( -0.03442 * e_r ) );
235 P_3 = 0.0363 * exp( -4.6 * u ) * ( 1.0 - exp( -pow( f_n / 38.7, 4.97 ) ) );
236 P_4 = 1.0 + 2.751 * ( 1.0 - exp( -pow( e_r / 15.916, 8.0 ) ) );
238 P = P_1 * P_2 * pow( ( P_3 * P_4 + 0.1844 ) * f_n, 1.5763 );
249 double u,
double e_r,
double e_r_eff_0,
double e_r_eff_f,
double f_n )
251 double R_1, R_2, R_3, R_4, R_5, R_6, R_7, R_8, R_9, R_10, R_11, R_12, R_13, R_14, R_15, R_16,
254 R_1 = 0.03891 * pow( e_r, 1.4 );
255 R_2 = 0.267 * pow( u, 7.0 );
256 R_3 = 4.766 * exp( -3.228 * pow( u, 0.641 ) );
257 R_4 = 0.016 + pow( 0.0514 * e_r, 4.524 );
258 R_5 = pow( f_n / 28.843, 12.0 );
259 R_6 = 22.2 * pow( u, 1.92 );
260 R_7 = 1.206 - 0.3144 * exp( -R_1 ) * ( 1.0 - exp( -R_2 ) );
264 - exp( -0.004625 * R_3 * pow( e_r, 1.674 )
265 * pow( f_n / 18.365, 2.745 ) ) );
266 tmpf = pow( e_r - 1.0, 6.0 );
267 R_9 = 5.086 * R_4 * ( R_5 / ( 0.3838 + 0.386 * R_4 ) )
268 * ( exp( -R_6 ) / ( 1.0 + 1.2992 * R_5 ) ) * ( tmpf / ( 1.0 + 10.0 * tmpf ) );
269 R_10 = 0.00044 * pow( e_r, 2.136 ) + 0.0184;
270 tmpf = pow( f_n / 19.47, 6.0 );
271 R_11 = tmpf / ( 1.0 + 0.0962 * tmpf );
272 R_12 = 1.0 / ( 1.0 + 0.00245 * u * u );
273 R_13 = 0.9408 * pow( e_r_eff_f, R_8 ) - 0.9603;
274 R_14 = ( 0.9408 - R_9 ) * pow( e_r_eff_0, R_8 ) - 0.9603;
275 R_15 = 0.707 * R_10 * pow( f_n / 12.3, 1.097 );
276 R_16 = 1.0 + 0.0503 * e_r * e_r * R_11 * ( 1.0 - exp( -pow( u / 15.0, 6.0 ) ) );
277 R_17 = R_7 * ( 1.0 - 1.1241 * ( R_12 / R_16 ) * exp( -0.026 * pow( f_n, 1.15656 ) - R_15 ) );
279 D = pow( R_13 / R_14, R_17 );
291 double e_r, e_r_eff_0;
292 double u, f_n, P, e_r_eff_f,
D, Z0_f;
303 e_r_eff_f = e_r - ( e_r - e_r_eff_0 ) / ( 1.0 + P );
319 double e_r_eff_0,
delta;
328 K = exp( -1.2 * pow(
Z0_h_1 /
ZF0, 0.7 ) );
357 double e_r, e_r_eff_0;
364 * ( e_r / sqrt( e_r_eff_0 ) ) * ( ( e_r_eff_0 - 1.0 ) / ( e_r - 1.0 ) )
392 / ( ( 1.0 + *
mur ) + ( ( 1.0 - *
mur ) * pow( ( 1.0 + ( 10.0 * *
h / *
w ) ), -0.5 ) ) );
405 + ( ( e_r - 1 ) / ( e_r + 1 ) * ( 0.23 + ( 0.11 / e_r ) ) );
410 w_h = 8 * exp( a ) / ( exp( 2. * a ) - 2 );
415 * ( b - 1. - log( ( 2 * b ) - 1. )
416 + ( ( e_r - 1 ) / ( 2 * e_r ) ) * ( log( b - 1. ) + 0.39 - 0.61 / e_r ) );
double e_r_effective(double, double)
void calcSynthesize() override
Computation for synthesis.
double dielectric_losses()
double filling_factor(double, double)
double e_r_dispersion(double, double, double)
double delta_u_thickness(double, double, double)
double delta_q_thickness(double, double)
double delta_q_cover(double)
void calcAnalyze() override
Computation for analysis.
void show_results() override
Shows results.
double conductor_losses()
double Z0_homogeneous(double)
void showAnalyze() override
Shows synthesis results and checks for errors / warnings.
void showSynthesize() override
Shows analysis results and checks for errors / warnings.
double delta_Z0_cover(double, double)
void setResult(int, double, const char *)
bool minimizeZ0Error1D(double *)
@function minimizeZ0Error1D
double m_parameters[EXTRA_PRMS_COUNT]
void setProperty(enum PRMS_ID aPrmId, double aValue)
double skin_depth()
@function skin_depth calculate skin depth
void setErrorLevel(PRMS_ID, char)
@function setErrorLevel
#define TRANSLINE_WARNING