36#include <ngspice/sharedspice.h> 
   45#ifndef NGSPICE_PACKAGE_VERSION 
   49class wxDynamicLibrary;
 
   63                 unsigned aSimOptions, const wxString& aInputPath,
 
   64                 REPORTER& aReporter ) override final;
 
   70    bool Run() override final;
 
   73    bool Stop() override final;
 
   79    bool Command( const 
std::
string& aCmd ) override final;
 
   94    std::vector<
double> 
GetRealVector( const 
std::
string& aName, 
int aMaxLen = -1 ) override final;
 
  100    std::vector<
double> 
GetGainVector( const 
std::
string& aName, 
int aMaxLen = -1 ) override final;
 
  103    std::vector<
double> 
GetPhaseVector( const 
std::
string& aName, 
int aMaxLen = -1 ) override final;
 
  111    void Clean() override final;
 
  118    typedef 
void ( *
ngSpice_Init )( SendChar*, SendStat*, ControlledExit*, SendData*, SendInitData*,
 
  119                                    BGThreadRunning*, 
void* );
 
  168    bool loadSpinit( 
const std::string& aFileName );
 
  182    static int cbSendChar( 
char* what, 
int aId, 
void* aUser );
 
  183    static int cbSendStat( 
char* what, 
int aId, 
void* aUser );
 
 
NGSPICE_LOCK_REALLOC(NGSPICE *ngspice)
 
std::vector< std::string > AllVectors() const override final
Return a requested vector with complex values.
 
ngSpice_Circ m_ngSpice_Circ
 
bool Command(const std::string &aCmd) override final
Set a SIMULATOR_REPORTER object to receive the simulation log.
 
char **(* ngSpice_AllVecs)(char *plotname)
 
ngSpice_AllPlots m_ngSpice_AllPlots
 
static int cbControlledExit(int aStatus, NG_BOOL aImmediate, NG_BOOL aExitOnQuit, int aId, void *aUser)
 
int(* ngSpice_Circ)(char **circarray)
 
ngSpice_UnlockRealloc m_ngSpice_UnlockRealloc
 
char **(* ngSpice_AllPlots)(void)
 
bool IsRunning() override final
Execute a Spice command as if it was typed into console.
 
std::vector< double > GetImaginaryVector(const std::string &aName, int aMaxLen=-1) override final
Return a requested vector with magnitude values.
 
virtual const std::string GetNetlist() const override final
Cleans simulation data (i.e.
 
char *(* ngSpice_CurPlot)(void)
 
ngSpice_Init m_ngSpice_Init
 
void updateNgspiceSettings()
Check a few different locations for codemodel files and returns one if it exists.
 
ngSpice_Command m_ngSpice_Command
 
int(* ngSpice_LockRealloc)(void)
 
void(* ngSpice_Init)(SendChar *, SendStat *, ControlledExit *, SendData *, SendInitData *, BGThreadRunning *, void *)
 
bool setCodemodelsInputPath(const std::string &aPath)
Load codemodel files from a directory.
 
wxString GetXAxis(SIM_TYPE aType) const override final
 
wxString CurrentPlotName() const override final
 
ngGet_Vec_Info m_ngGet_Vec_Info
 
bool m_error
Error flag indicating that ngspice needs to be reloaded.
 
ngCM_Input_Path m_ngCM_Input_Path
 
std::vector< double > GetPhaseVector(const std::string &aName, int aMaxLen=-1) override final
Return a requested vector with phase values.
 
ngSpice_LockRealloc m_ngSpice_LockRealloc
 
ngSpice_CurPlot m_ngSpice_CurPlot
 
bool loadSpinit(const std::string &aFileName)
 
bool Run() override final
Halt the simulation.
 
bool LoadNetlist(const std::string &aNetlist) override final
Execute the simulation with currently loaded netlist.
 
static int cbBGThreadRunning(NG_BOOL aFinished, int aId, void *aUser)
 
std::vector< double > GetGainVector(const std::string &aName, int aMaxLen=-1) override final
Return a requested vector with phase values.
 
bool Stop() override final
Check if simulation is running at the moment.
 
int(* ngSpice_Command)(char *command)
 
static bool m_initialized
Ngspice should be initialized only once.
 
static int cbSendStat(char *what, int aId, void *aUser)
 
static int cbSendChar(char *what, int aId, void *aUser)
 
std::vector< double > GetRealVector(const std::string &aName, int aMaxLen=-1) override final
Return a requested vector with imaginary values.
 
char *(* ngCM_Input_Path)(const char *path)
 
std::vector< std::string > GetSettingCommands() const override final
Return current SPICE netlist used by the simulator.
 
std::string m_netlist
Current netlist.
 
ngSpice_AllVecs m_ngSpice_AllVecs
 
int(* ngSpice_UnlockRealloc)(void)
Handle to DLL functions.
 
pvector_info(* ngGet_Vec_Info)(char *vecname)
 
ngSpice_Running m_ngSpice_Running
 
void Clean() override final
Cleans simulation data (i.e.
 
bool(* ngSpice_Running)(void)
 
void Init(const SPICE_SETTINGS *aSettings=nullptr) override final
Point out the model that will be used in future simulations.
 
bool Attach(const std::shared_ptr< SIMULATION_MODEL > &aModel, const wxString &aSimCommand, unsigned aSimOptions, const wxString &aInputPath, REPORTER &aReporter) override final
Load a netlist for the simulation.
 
std::string findCmPath() const
Send additional search path for codemodels to ngspice.
 
bool loadCodemodels(const std::string &aPath)
 
std::vector< COMPLEX > GetComplexVector(const std::string &aName, int aMaxLen=-1) override final
Return a requested vector with real values.
 
A pure virtual class used to derive REPORTER objects from.
 
Storage for simulator specific settings.
 
SIM_TYPE
< Possible simulation types
 
std::complex< double > COMPLEX