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
34SPICE_SETTINGS::SPICE_SETTINGS( JSON_SETTINGS* aParent, const std::string& aPath ) :
35 NESTED_SETTINGS( "simulator", spiceSettingsSchemaVersion, aParent, aPath ),
36 m_fixIncludePaths( true )
37{
38 m_params.emplace_back( new PARAM<wxString>( "workbook_filename", &m_workbookFilename, "" ) );
39 m_params.emplace_back( new PARAM<bool>( "fix_include_paths", &m_fixIncludePaths, true ) );
40}
41
42
44{
47}
48
49
50NGSPICE_SETTINGS::NGSPICE_SETTINGS( JSON_SETTINGS* aParent, const std::string& aPath ) :
51 SPICE_SETTINGS( aParent, aPath ),
52 m_compatibilityMode( NGSPICE_COMPATIBILITY_MODE::LT_PSPICE )
53{
54 m_params.emplace_back( new PARAM_ENUM<NGSPICE_COMPATIBILITY_MODE>( "model_mode",
55 &m_compatibilityMode, NGSPICE_COMPATIBILITY_MODE::LT_PSPICE,
56 NGSPICE_COMPATIBILITY_MODE::USER_CONFIG, NGSPICE_COMPATIBILITY_MODE::HSPICE ) );
57}
58
59
61{
62 const NGSPICE_SETTINGS* settings = dynamic_cast<const NGSPICE_SETTINGS*>( &aRhs );
63
64 wxCHECK( settings, false );
65
66 return SPICE_SETTINGS::operator==( aRhs )
68}
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_SETTINGS(JSON_SETTINGS *aParent, const std::string &aPath)
bool operator==(const SPICE_SETTINGS &aRhs) const override
NGSPICE_COMPATIBILITY_MODE m_compatibilityMode
Stores an enum as an integer.
Definition: parameters.h:226
Storage for simulator specific settings.
wxString m_workbookFilename
SPICE_SETTINGS(JSON_SETTINGS *aParent, const std::string &aPath)
virtual bool operator==(const SPICE_SETTINGS &aRhs) const =0
const int spiceSettingsSchemaVersion
NGSPICE_COMPATIBILITY_MODE
Ngspice simulator compatibility modes.