34 std::string r, l, g, c, len;
38 case SIM_MODEL::TYPE::TLINE_Z0:
43 if( !z0.HasValue() || !td.HasValue() )
44 return fmt::format(
".model {} LTRA()\n", aItem.
modelName );
47 l = ( td * z0 ).ToSpiceString();
49 c = ( td / z0 ).ToSpiceString();
54 case SIM_MODEL::TYPE::TLINE_RLGC:
63 wxFAIL_MSG(
"Unhandled SIM_MODEL type in SIM_MODEL_TLINE" );
67 return fmt::format(
".model {} LTRA( r={} l={} g={} c={} len={} )\n",
85 case TYPE::TLINE_RLGC:
91 wxFAIL_MSG(
"Unhandled SIM_MODEL type in SIM_MODEL_TLINE" );
99 std::vector<PARAM::INFO> paramInfos;
102 paramInfo.
name =
"z0";
104 paramInfo.
unit =
"Ω";
107 paramInfo.
description =
"Characteristic impedance";
110 paramInfos.push_back( paramInfo );
112 paramInfo.
name =
"td";
114 paramInfo.
unit =
"s";
120 paramInfos.push_back( paramInfo );
128 std::vector<PARAM::INFO> paramInfos;
131 paramInfo.
name =
"len";
133 paramInfo.
unit =
"m";
139 paramInfos.push_back( paramInfo );
141 paramInfo.
name =
"r";
143 paramInfo.
unit =
"Ω/m";
149 paramInfos.push_back( paramInfo );
151 paramInfo.
name =
"l";
153 paramInfo.
unit =
"H/m";
159 paramInfos.push_back( paramInfo );
161 paramInfo.
name =
"g";
163 paramInfo.
unit =
"1/(Ω m)";
169 paramInfos.push_back( paramInfo );
171 paramInfo.
name =
"c";
173 paramInfo.
unit =
"C/m";
179 paramInfos.push_back( paramInfo );
static std::vector< PARAM::INFO > makeRlgcParamInfos()
SIM_MODEL_TLINE(TYPE aType)
static std::vector< PARAM::INFO > makeZ0ParamInfos()
const PARAM * FindParam(const std::string &aParamName) const
void AddParam(const PARAM::INFO &aInfo, bool aIsOtherVariant=false)
std::string ModelLine(const SPICE_ITEM &aItem) const override
const SIM_MODEL & m_model
SIM_VALUE_INST< double > SIM_VALUE_FLOAT
bool isSpiceInstanceParam
std::unique_ptr< SIM_VALUE > value