DPsim
Loading...
Searching...
No Matches
DPsim::Solver Class Referenceabstract

Base class for more specific solvers such as MNA, ODE or IDA. More...

#include <Solver.h>

Inheritance diagram for DPsim::Solver:
[legend]

Public Types

enum  Behaviour { Initialization , Simulation }
 
enum class  SystemMatrixRecomputationMode { Auto , Enabled , Disabled }
 System-matrix recomputation mode for MNA solvers. More...
 
enum class  Type { MNA , DAE , NRP }
 
typedef std::shared_ptr< SolverPtr
 
typedef std::vector< PtrList
 

Public Member Functions

 Solver (String name, CPS::Logger::Level logLevel)
 
virtual ~Solver ()
 
void setTimeStep (Real timeStep)
 
void doFrequencyParallelization (Bool freqParallel)
 
virtual void setSystem (const CPS::SystemTopology &system)
 
void setSystemMatrixRecomputationMode (SystemMatrixRecomputationMode mode)
 Set the system-matrix recomputation mode.
 
void doSystemMatrixRecomputation (Bool value)
 
void setLogSolveTimes (Bool value)
 
virtual void initialize ()
 
void doSteadyStateInit (Bool f)
 activate steady state initialization
 
void setSteadStIniTimeLimit (Real v)
 set steady state initialization time limit
 
void setSteadStIniAccLimit (Real v)
 set steady state initialization accuracy limit
 
virtual void setSolverAndComponentBehaviour (Solver::Behaviour behaviour)
 set solver and component to initialization or simulation behaviour
 
void doInitFromNodesAndTerminals (Bool f)
 activate powerflow initialization
 
virtual void setDirectLinearSolverConfiguration (DirectLinearSolverConfiguration &)
 set direct linear solver configuration (only available in MNA for now)
 
virtual void logLUTimes ()
 log LU decomposition times, if applicable
 
virtual CPS::Task::List getTasks ()=0
 Get tasks for scheduler.
 
virtual void log (Real time, Int timeStepCount)
 Log results.
 
void setMaxNumberOfIterations (int maxIterations)
 

Public Attributes

int mMaxIterations = 10
 

Static Public Attributes

static constexpr Real DEFAULT_STEAD_ST_INI_TIME_LIMIT = 10
 Default steady state initialization time limit.
 
static constexpr Real DEFAULT_STEAD_ST_INI_ACC_LIMIT = 1e-8
 Default steady state initialization accuracy limit.
 

Protected Attributes

String mName
 Name for logging.
 
CPS::Logger::Level mLogLevel
 Logging level.
 
Bool mLogSolveTimes = true
 Collect step time for logging.
 
CPS::Logger::Log mSLog
 Logger.
 
Real mTimeStep
 Time step for fixed step solvers.
 
Bool mFrequencyParallel = false
 Activates parallelized computation of frequencies.
 
Real mSteadStIniTimeLimit = DEFAULT_STEAD_ST_INI_TIME_LIMIT
 steady state initialization time limit
 
Real mSteadStIniAccLimit = DEFAULT_STEAD_ST_INI_ACC_LIMIT
 steady state initialization accuracy limit
 
Bool mSteadyStateInit = false
 Activates steady state initialization.
 
Bool mIsInInitialization = false
 Determines if solver is in initialization phase, which requires different behavior.
 
Bool mInitFromNodesAndTerminals = true
 
SystemMatrixRecomputationMode mSystemMatrixRecomputationMode
 Requested system-matrix recomputation mode.
 
Bool mSystemMatrixRecomputationEnabled = false
 Effective system-matrix recomputation setting used by the solver.
 
Behaviour mBehaviour = Solver::Behaviour::Simulation
 Solver behaviour initialization or simulation.
 

Detailed Description

Base class for more specific solvers such as MNA, ODE or IDA.

Definition at line 30 of file Solver.h.

Member Typedef Documentation

◆ List

typedef std::vector<Ptr> DPsim::Solver::List

Definition at line 38 of file Solver.h.

◆ Ptr

typedef std::shared_ptr<Solver> DPsim::Solver::Ptr

Definition at line 37 of file Solver.h.

Member Enumeration Documentation

◆ Behaviour

Enumerator
Initialization 
Simulation 

Definition at line 40 of file Solver.h.

◆ SystemMatrixRecomputationMode

System-matrix recomputation mode for MNA solvers.

Enumerator
Auto 

Select the mode automatically based on the system topology.

Enabled 

Always enable system-matrix recomputation.

Disabled 

Always disable system-matrix recomputation.

Definition at line 43 of file Solver.h.

◆ Type

enum class DPsim::Solver::Type
strong

Solver types: Modified Nodal Analysis, Differential Algebraic, Newton Raphson

Enumerator
MNA 
DAE 
NRP 

Definition at line 98 of file Solver.h.

Constructor & Destructor Documentation

◆ Solver()

DPsim::Solver::Solver ( String name,
CPS::Logger::Level logLevel )
inline

Definition at line 88 of file Solver.h.

◆ ~Solver()

virtual DPsim::Solver::~Solver ( )
inlinevirtual

Definition at line 93 of file Solver.h.

Member Function Documentation

◆ doFrequencyParallelization()

void DPsim::Solver::doFrequencyParallelization ( Bool freqParallel)
inline

Definition at line 102 of file Solver.h.

◆ doInitFromNodesAndTerminals()

void DPsim::Solver::doInitFromNodesAndTerminals ( Bool f)
inline

activate powerflow initialization

Definition at line 133 of file Solver.h.

◆ doSteadyStateInit()

void DPsim::Solver::doSteadyStateInit ( Bool f)
inline

activate steady state initialization

Definition at line 125 of file Solver.h.

◆ doSystemMatrixRecomputation()

void DPsim::Solver::doSystemMatrixRecomputation ( Bool value)
inline

DEPRECATED: Enable or disable system-matrix recomputation explicitly. This compatibility method maps true to Enabled and false to Disabled.

Definition at line 113 of file Solver.h.

◆ getTasks()

virtual CPS::Task::List DPsim::Solver::getTasks ( )
pure virtual

◆ initialize()

virtual void DPsim::Solver::initialize ( )
inlinevirtual

◆ log()

virtual void DPsim::Solver::log ( Real time,
Int timeStepCount )
inlinevirtual

Log results.

Reimplemented in DPsim::MnaSolver< VarType >.

Definition at line 148 of file Solver.h.

◆ logLUTimes()

virtual void DPsim::Solver::logLUTimes ( )
inlinevirtual

log LU decomposition times, if applicable

Reimplemented in DPsim::MnaSolverDirect< VarType >.

Definition at line 140 of file Solver.h.

◆ setDirectLinearSolverConfiguration()

virtual void DPsim::Solver::setDirectLinearSolverConfiguration ( DirectLinearSolverConfiguration & )
inlinevirtual

set direct linear solver configuration (only available in MNA for now)

Reimplemented in DPsim::MnaSolverDirect< VarType >.

Definition at line 136 of file Solver.h.

◆ setLogSolveTimes()

void DPsim::Solver::setLogSolveTimes ( Bool value)
inline

Definition at line 119 of file Solver.h.

◆ setMaxNumberOfIterations()

void DPsim::Solver::setMaxNumberOfIterations ( int maxIterations)
inline

Definition at line 152 of file Solver.h.

◆ setSolverAndComponentBehaviour()

virtual void DPsim::Solver::setSolverAndComponentBehaviour ( Solver::Behaviour behaviour)
inlinevirtual

set solver and component to initialization or simulation behaviour

Reimplemented in DPsim::PFSolver.

Definition at line 131 of file Solver.h.

◆ setSteadStIniAccLimit()

void DPsim::Solver::setSteadStIniAccLimit ( Real v)
inline

set steady state initialization accuracy limit

Definition at line 129 of file Solver.h.

◆ setSteadStIniTimeLimit()

void DPsim::Solver::setSteadStIniTimeLimit ( Real v)
inline

set steady state initialization time limit

Definition at line 127 of file Solver.h.

◆ setSystem()

virtual void DPsim::Solver::setSystem ( const CPS::SystemTopology & system)
inlinevirtual

Reimplemented in DPsim::MnaSolver< VarType >.

Definition at line 106 of file Solver.h.

◆ setSystemMatrixRecomputationMode()

void DPsim::Solver::setSystemMatrixRecomputationMode ( SystemMatrixRecomputationMode mode)
inline

Set the system-matrix recomputation mode.

Definition at line 108 of file Solver.h.

◆ setTimeStep()

void DPsim::Solver::setTimeStep ( Real timeStep)
inline

Definition at line 100 of file Solver.h.

Member Data Documentation

◆ DEFAULT_STEAD_ST_INI_ACC_LIMIT

Real DPsim::Solver::DEFAULT_STEAD_ST_INI_ACC_LIMIT = 1e-8
staticconstexpr

Default steady state initialization accuracy limit.

Definition at line 35 of file Solver.h.

◆ DEFAULT_STEAD_ST_INI_TIME_LIMIT

Real DPsim::Solver::DEFAULT_STEAD_ST_INI_TIME_LIMIT = 10
staticconstexpr

Default steady state initialization time limit.

Definition at line 33 of file Solver.h.

◆ mBehaviour

Behaviour DPsim::Solver::mBehaviour = Solver::Behaviour::Simulation
protected

Solver behaviour initialization or simulation.

Definition at line 85 of file Solver.h.

◆ mFrequencyParallel

Bool DPsim::Solver::mFrequencyParallel = false
protected

Activates parallelized computation of frequencies.

Definition at line 64 of file Solver.h.

◆ mInitFromNodesAndTerminals

Bool DPsim::Solver::mInitFromNodesAndTerminals = true
protected

Activates powerflow initialization If this is false, all voltages are initialized with zero

Definition at line 77 of file Solver.h.

◆ mIsInInitialization

Bool DPsim::Solver::mIsInInitialization = false
protected

Determines if solver is in initialization phase, which requires different behavior.

Definition at line 74 of file Solver.h.

◆ mLogLevel

CPS::Logger::Level DPsim::Solver::mLogLevel
protected

Logging level.

Definition at line 56 of file Solver.h.

◆ mLogSolveTimes

Bool DPsim::Solver::mLogSolveTimes = true
protected

Collect step time for logging.

Definition at line 58 of file Solver.h.

◆ mMaxIterations

int DPsim::Solver::mMaxIterations = 10

SynGen Interface

Definition at line 151 of file Solver.h.

◆ mName

String DPsim::Solver::mName
protected

Name for logging.

Definition at line 54 of file Solver.h.

◆ mSLog

CPS::Logger::Log DPsim::Solver::mSLog
protected

Logger.

Definition at line 60 of file Solver.h.

◆ mSteadStIniAccLimit

Real DPsim::Solver::mSteadStIniAccLimit = DEFAULT_STEAD_ST_INI_ACC_LIMIT
protected

steady state initialization accuracy limit

Definition at line 70 of file Solver.h.

◆ mSteadStIniTimeLimit

Real DPsim::Solver::mSteadStIniTimeLimit = DEFAULT_STEAD_ST_INI_TIME_LIMIT
protected

steady state initialization time limit

Definition at line 68 of file Solver.h.

◆ mSteadyStateInit

Bool DPsim::Solver::mSteadyStateInit = false
protected

Activates steady state initialization.

Definition at line 72 of file Solver.h.

◆ mSystemMatrixRecomputationEnabled

Bool DPsim::Solver::mSystemMatrixRecomputationEnabled = false
protected

Effective system-matrix recomputation setting used by the solver.

Definition at line 82 of file Solver.h.

◆ mSystemMatrixRecomputationMode

SystemMatrixRecomputationMode DPsim::Solver::mSystemMatrixRecomputationMode
protected
Initial value:
=
@ Auto
Select the mode automatically based on the system topology.
Definition Solver.h:45

Requested system-matrix recomputation mode.

Definition at line 79 of file Solver.h.

◆ mTimeStep

Real DPsim::Solver::mTimeStep
protected

Time step for fixed step solvers.

Definition at line 62 of file Solver.h.


The documentation for this class was generated from the following file: