16template <
typename VarType>
41 :
Task(solver.
mName +
".Solve"), mSolver(solver) {
44 if (it->getRightVector()->get().size() != 0)
45 mAttributeDependencies.push_back(it->getRightVector());
47 for (
auto node : solver.
mNodes) {
48 mModifiedAttributes.push_back(node->mVoltage);
54 mSolver.solve(time, timeStepCount);
64 :
Task(solver.
mName +
".Log"), mSolver(solver) {
70 mSolver.log(time, timeStepCount);
spdlog::level::level_enum Level
Tasks to be defined by every component.
std::vector< AttributeBase::Ptr > mModifiedAttributes
std::vector< AttributeBase::Ptr > mAttributeDependencies
MnaSolverDirect(String name, CPS::Domain domain=CPS::Domain::DP, CPS::Logger::Level logLevel=CPS::Logger::Level::info)
CPS::MNAInterface::List mMNAComponents
List of MNA components with static stamp into system matrix.
CPS::Attribute< Matrix >::Ptr mLeftSideVector
Solution vector of unknown quantities.
CPS::SimNode< VarType >::List mNodes
List of simulation nodes.
LogTask(MnaSolverPlugin< VarType > &solver)
void execute(Real time, Int timeStepCount)
void execute(Real time, Int timeStepCount)
SolveTask(MnaSolverPlugin< VarType > &solver)
CPS::Task::List getTasks() override
Get tasks for scheduler.
struct dpsim_mna_plugin * mPlugin
void solve(Real time, Int timeStepCount) override
Solves system for single frequency.
MnaSolverPlugin(String pluginName, String name, CPS::Domain domain=CPS::Domain::DP, CPS::Logger::Level logLevel=CPS::Logger::Level::info)
void recomputeSystemMatrix(Real time) override
Recomputes systems matrix.
virtual ~MnaSolverPlugin()
void initialize() override
Initialize cuSparse-library.
static CPS::AttributeBase::Ptr external
CPS::Logger::Log mSLog
Logger.