KiCad PCB EDA Suite
Loading...
Searching...
No Matches
spice_settings.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) 2021 CERN
5 * Copyright (C) 2021-2023 KiCad Developers, see AUTHORS.txt for contributors.
6 *
7 * @author Wayne Stambaugh <[email protected]>
8 *
9 * This program is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License
11 * as published by the Free Software Foundation; either version 3
12 * of the License, or (at your option) any later version.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public License
20 * along with this program; if not, you may find one here:
21 * https://www.gnu.org/licenses/gpl-3.0.html
22 * or you may search the http://www.gnu.org website for the version 3 license,
23 * or you may write to the Free Software Foundation, Inc.,
24 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
25 */
26
27#include "spice_settings.h"
28#include <settings/parameters.h>
29
30
32
33
35 const std::string& aPath ) :
36 NESTED_SETTINGS( "simulator", spiceSettingsSchemaVersion, aParent, aPath ),
37 m_fixIncludePaths( true )
38{
39 m_params.emplace_back( new PARAM<wxString>( "workbook_filename", &m_workbookFilename, "" ) );
40 m_params.emplace_back( new PARAM<bool>( "fix_include_paths", &m_fixIncludePaths, true ) );
41}
42
43
45{
48}
49
50
52 const std::string& aPath ) :
53 SPICE_SIMULATOR_SETTINGS( aParent, aPath ),
54 m_modelMode( NGSPICE_MODEL_MODE::LT_PSPICE )
55{
56 m_params.emplace_back( new PARAM_ENUM<NGSPICE_MODEL_MODE>( "model_mode", &m_modelMode,
57 NGSPICE_MODEL_MODE::LT_PSPICE,
58 NGSPICE_MODEL_MODE::USER_CONFIG,
59 NGSPICE_MODEL_MODE::HSPICE ) );
60}
61
62
64{
65 const NGSPICE_SIMULATOR_SETTINGS* settings =
66 dynamic_cast<const NGSPICE_SIMULATOR_SETTINGS*>( &aRhs );
67
68 wxCHECK( settings, false );
69
70 return ( *static_cast<const SPICE_SIMULATOR_SETTINGS*>( this ) ) == aRhs
71 && m_modelMode == settings->m_modelMode;
72}
std::vector< PARAM_BASE * > m_params
The list of parameters (owned by this object)
NESTED_SETTINGS is a JSON_SETTINGS that lives inside a JSON_SETTINGS.
Container for Ngspice simulator settings.
NGSPICE_MODEL_MODE m_modelMode
bool operator==(const SPICE_SIMULATOR_SETTINGS &aRhs) const override
NGSPICE_SIMULATOR_SETTINGS(JSON_SETTINGS *aParent, const std::string &aPath)
Stores an enum as an integer.
Definition: parameters.h:217
Storage for simulator specific settings.
SPICE_SIMULATOR_SETTINGS(JSON_SETTINGS *aParent, const std::string &aPath)
virtual bool operator==(const SPICE_SIMULATOR_SETTINGS &aRhs) const =0
const int spiceSettingsSchemaVersion
NGSPICE_MODEL_MODE
Ngspice simulator model compatibility modes.