|
|
|
@ -4983,41 +4983,52 @@ inp_compat(struct card *card) |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/* white noise model by x2line, x3line, x4line |
|
|
|
if instance parameter noisy=0 is set, noise calculation is skipped */ |
|
|
|
if instance parameter noisy=1 is set */ |
|
|
|
bool rnoise = FALSE; |
|
|
|
if(strstr(cut_line, "noisy=1")) |
|
|
|
rnoise = TRUE; |
|
|
|
|
|
|
|
if ((tc1_ptr == NULL) && (tc2_ptr == NULL)) { |
|
|
|
xline = tprintf("b%s %s %s i = v(%s, %s)/(%s)", title_tok, node1, node2, |
|
|
|
node1, node2, equation); |
|
|
|
x2line = tprintf("b%s_1 %s %s i = i(v%s_3)/sqrt(%s)", |
|
|
|
title_tok, node1, node2, |
|
|
|
title_tok, |
|
|
|
equation); |
|
|
|
x3line = tprintf("r%s_2 %s_3 0 1.0", |
|
|
|
title_tok, title_tok); |
|
|
|
x4line = tprintf("v%s_3 %s_3 0 0", |
|
|
|
title_tok, title_tok); |
|
|
|
if(rnoise){ |
|
|
|
x2line = tprintf("b%s_1 %s %s i = i(v%s_3)/sqrt(%s)", |
|
|
|
title_tok, node1, node2, |
|
|
|
title_tok, |
|
|
|
equation); |
|
|
|
x3line = tprintf("r%s_2 %s_3 0 1.0", |
|
|
|
title_tok, title_tok); |
|
|
|
x4line = tprintf("v%s_3 %s_3 0 0", |
|
|
|
title_tok, title_tok); |
|
|
|
} |
|
|
|
} else if (tc2_ptr == NULL) { |
|
|
|
xline = tprintf("b%s %s %s i = v(%s, %s)/(%s) tc1=%15.8e reciproctc=1", title_tok, node1, node2, |
|
|
|
node1, node2, equation, tc1); |
|
|
|
x2line = tprintf("b%s_1 %s %s i = i(v%s_3)/sqrt(%s)", |
|
|
|
title_tok, node1, node2, |
|
|
|
title_tok, |
|
|
|
equation); |
|
|
|
x3line = tprintf("r%s_2 %s_3 0 1.0 tc1=%15.8e", |
|
|
|
title_tok, title_tok, tc1); |
|
|
|
x4line = tprintf("v%s_3 %s_3 0 0", |
|
|
|
title_tok, title_tok); |
|
|
|
if(rnoise) { |
|
|
|
x2line = tprintf("b%s_1 %s %s i = i(v%s_3)/sqrt(%s)", |
|
|
|
title_tok, node1, node2, |
|
|
|
title_tok, |
|
|
|
equation); |
|
|
|
x3line = tprintf("r%s_2 %s_3 0 1.0 tc1=%15.8e", |
|
|
|
title_tok, title_tok, tc1); |
|
|
|
x4line = tprintf("v%s_3 %s_3 0 0", |
|
|
|
title_tok, title_tok); |
|
|
|
} |
|
|
|
} else { |
|
|
|
xline = tprintf("b%s %s %s i = v(%s, %s)/(%s) tc1=%15.8e tc2=%15.8e reciproctc=1", title_tok, node1, node2, |
|
|
|
node1, node2, equation, tc1, tc2); |
|
|
|
x2line = tprintf("b%s_1 %s %s i = i(v%s_3)/sqrt(%s)", |
|
|
|
title_tok, node1, node2, |
|
|
|
title_tok, |
|
|
|
equation); |
|
|
|
x3line = tprintf("r%s_2 %s_3 0 1.0 tc1=%15.8e tc2=%15.8e", |
|
|
|
title_tok, title_tok, tc1, tc2); |
|
|
|
x4line = tprintf("v%s_3 %s_3 0 0", |
|
|
|
title_tok, title_tok); |
|
|
|
if(rnoise) { |
|
|
|
x2line = tprintf("b%s_1 %s %s i = i(v%s_3)/sqrt(%s)", |
|
|
|
title_tok, node1, node2, |
|
|
|
title_tok, |
|
|
|
equation); |
|
|
|
x3line = tprintf("r%s_2 %s_3 0 1.0 tc1=%15.8e tc2=%15.8e", |
|
|
|
title_tok, title_tok, tc1, tc2); |
|
|
|
x4line = tprintf("v%s_3 %s_3 0 0", |
|
|
|
title_tok, title_tok); |
|
|
|
} |
|
|
|
} |
|
|
|
tc1_ptr = NULL; |
|
|
|
tc2_ptr = NULL; |
|
|
|
@ -5026,7 +5037,7 @@ inp_compat(struct card *card) |
|
|
|
*(card->line) = '*'; |
|
|
|
// insert new B source line immediately after current line |
|
|
|
card = insert_new_line(card, xline, 0, 0); |
|
|
|
if (x2line && strstr(cut_line, "noisy=1")) { |
|
|
|
if (rnoise) { |
|
|
|
card = insert_new_line(card, x2line, 0, 0); |
|
|
|
card = insert_new_line(card, x3line, 0, 0); |
|
|
|
card = insert_new_line(card, x4line, 0, 0); |
|
|
|
|