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-2024 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::K, std::make_unique<SPICE_GENERATOR_L_MUTUAL>( *this ) )
41{
42 static std::vector<PARAM::INFO> paramInfos = makeParamInfos();
43
44 for( const PARAM::INFO& paramInfo : paramInfos )
45 AddParam( paramInfo );
46}
47
48
49const std::vector<SIM_MODEL::PARAM::INFO> SIM_MODEL_L_MUTUAL::makeParamInfos()
50{
51 std::vector<PARAM::INFO> paramInfos;
52 PARAM::INFO paramInfo;
53
54 paramInfo.name = "l1";
55 paramInfo.type = SIM_VALUE::TYPE_STRING;
56 paramInfo.unit = "(Reference)";
58 paramInfo.defaultValue = "";
59 paramInfo.description = "Inductor 1";
60 paramInfo.isSpiceInstanceParam = true;
61 paramInfos.push_back( paramInfo );
62
63 paramInfo.name = "l2";
64 paramInfo.type = SIM_VALUE::TYPE_STRING;
65 paramInfo.unit = "(Reference)";
67 paramInfo.defaultValue = "";
68 paramInfo.description = "Inductor 2";
69 paramInfo.isSpiceInstanceParam = true;
70 paramInfos.push_back( paramInfo );
71
72 paramInfo.name = "k";
73 paramInfo.type = SIM_VALUE::TYPE_FLOAT;
74 paramInfo.unit = "";
76 paramInfo.defaultValue = "";
77 paramInfo.description = "Coupling coefficient";
78 paramInfo.isSpiceInstanceParam = true;
79 paramInfos.push_back( paramInfo );
80
81 return paramInfos;
82}
static const std::vector< PARAM::INFO > makeParamInfos()
void AddParam(const PARAM::INFO &aInfo)
Definition: sim_model.cpp:720
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:380
std::string defaultValue
Definition: sim_model.h:383
std::string description
Definition: sim_model.h:384