KiCad PCB EDA Suite
Loading...
Searching...
No Matches
sim_model_l_mutual.cpp
Go to the documentation of this file.
1/*
2 * This program source code file is part of KiCad, a free EDA CAD application.
3 *
4 * Copyright (C) 2022 Mikolaj Wielgus
5 * Copyright (C) 2022 KiCad Developers, see AUTHORS.txt for contributors.
6 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation; either version 3
10 * of the License, or (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, you may find one here:
19 * https://www.gnu.org/licenses/gpl-3.0.html
20 * or you may search the http://www.gnu.org website for the version 3 license,
21 * or you may write to the Free Software Foundation, Inc.,
22 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
23 */
24
26
27
29{
30 std::string result;
31
32 for( const SIM_MODEL::PARAM& param : GetInstanceParams() )
33 result.append( " " + SIM_VALUE::ToSpice( param.value ) );
34
35 return result;
36}
37
38
40 SIM_MODEL( SIM_MODEL::TYPE::L_MUTUAL,
41 std::make_unique<SPICE_GENERATOR_L_MUTUAL>( *this ) )
42{
43 static std::vector<PARAM::INFO> paramInfos = makeParamInfos();
44
45 for( const PARAM::INFO& paramInfo : paramInfos )
46 AddParam( paramInfo );
47}
48
49
50const std::vector<SIM_MODEL::PARAM::INFO> SIM_MODEL_L_MUTUAL::makeParamInfos()
51{
52 std::vector<PARAM::INFO> paramInfos;
53 PARAM::INFO paramInfo;
54
55 paramInfo.name = "l1";
56 paramInfo.type = SIM_VALUE::TYPE_STRING;
57 paramInfo.unit = "";
59 paramInfo.defaultValue = "";
60 paramInfo.description = "Inductor 1";
61 paramInfo.isSpiceInstanceParam = true;
62 paramInfos.push_back( paramInfo );
63
64 paramInfo.name = "l2";
65 paramInfo.type = SIM_VALUE::TYPE_STRING;
66 paramInfo.unit = "";
68 paramInfo.defaultValue = "";
69 paramInfo.description = "Inductor 2";
70 paramInfo.isSpiceInstanceParam = true;
71 paramInfos.push_back( paramInfo );
72
73 paramInfo.name = "k";
74 paramInfo.type = SIM_VALUE::TYPE_FLOAT;
75 paramInfo.unit = "";
77 paramInfo.defaultValue = "";
78 paramInfo.description = "Coupling coefficient";
79 paramInfo.isSpiceInstanceParam = true;
80 paramInfos.push_back( paramInfo );
81
82 return paramInfos;
83}
static const std::vector< PARAM::INFO > makeParamInfos()
void AddParam(const PARAM::INFO &aInfo)
Definition: sim_model.cpp:726
static std::string ToSpice(const std::string &aString)
Definition: sim_value.h:84
@ TYPE_FLOAT
Definition: sim_value.h:69
@ TYPE_STRING
Definition: sim_value.h:71
std::string ItemParams() const override
virtual std::vector< std::reference_wrapper< const SIM_MODEL::PARAM > > GetInstanceParams() const
STL namespace.
SIM_MODEL::TYPE TYPE
Definition: sim_model.cpp:53
SIM_VALUE::TYPE type
Definition: sim_model.h:379
std::string defaultValue
Definition: sim_model.h:382
std::string description
Definition: sim_model.h:383