Todo List

page Todo List

Member AnalysisManager::Sundials::Ida< ScalarT, IdxT >::configureSimulation  ()

Function name should be “getTolerances”!

Need to set max number of steps based on user input!

Member AnalysisManager::Sundials::Ida< ScalarT, IdxT >::initializeBackwardSimulation  (RealT tf)

Need to set max number of steps based on user input!

Member AnalysisManager::Sundials::Ida< ScalarT, IdxT >::runSimulation  (RealT tf, int nout=1, std::optional< std::function< void(RealT)> > step_callback={})

Consider adding initial time as the function argument, as well.

Member AnalysisManager::Sundials::Kinsol< ScalarT, IdxT >::configureSimulation  ()

Function name should be “getTolerances”!

Class CircuitGraph< N, E >

This is to replace inserting vector size for allocating PowerElectronicsModel

should replace N and E with Node and Component classes respectively.

should replace with something better and more efficent. Should replace with a libraries setup instead. This would allow fast and easy partitioning of circuits

Member CircuitGraph< N, E >::printBiPartiteGraph  (bool verbose=false)

need to add verbose printing for connections display

Class GridKit::BaseBus< ScalarT, IdxT >

Consider static instead of dynamic polymorphism for bus types. Create Bus class that takes template parameter BusType.

Member GridKit::Branch< ScalarT, IdxT >::evaluateResidual  ()

Add and verify conductance to ground (B and G)

Member GridKit::BusPQ< ScalarT, IdxT >::BusPQ  (ScalarT V, ScalarT theta)

Arguments that should be passed to ModelEvaluatorImpl constructor:

  • Number of equations = 2 (size_)

  • Number of variables = 2 (size_)

  • Number of quadratures = 0

  • Number of optimization parameters = 0

Member GridKit::BusPQ< ScalarT, IdxT >::BusPQ  ()

Arguments that should be passed to ModelEvaluatorImpl constructor:

  • Number of equations = 2 (size_)

  • Number of variables = 2 (size_)

  • Number of quadratures = 0

  • Number of optimization parameters = 0

Member GridKit::BusPV< ScalarT, IdxT >::BusPV  (ScalarT V, ScalarT theta0)

Arguments that should be passed to ModelEvaluatorImpl constructor:

  • Number of equations = 1 (size_)

  • Number of variables = 1 (size_)

  • Number of quadratures = 0

  • Number of optimization parameters = 0

Member GridKit::BusPV< ScalarT, IdxT >::BusPV  ()

Arguments that should be passed to ModelEvaluatorImpl constructor:

  • Number of equations = 1 (size_)

  • Number of variables = 1 (size_)

  • Number of quadratures = 0

  • Number of optimization parameters = 0

Member GridKit::BusSlack< ScalarT, IdxT >::lambdaP  ()

Should slack bus allow changing voltage?

Member GridKit::BusSlack< ScalarT, IdxT >::lambdaQ  ()

Should slack bus allow changing phase?

Member GridKit::BusSlack< ScalarT, IdxT >::theta  ()

Should slack bus allow changing phase?

Member GridKit::BusSlack< ScalarT, IdxT >::V  ()

Should slack bus allow changing voltage?

Member GridKit::Capacitor< ScalarT, IdxT >::Capacitor  (IdxT id, RealT C)

this needs to be tested on some circuit

Member GridKit::CircuitComponent< ScalarT, IdxT >::connection_nodes_

may want to replace the mapping of connection_nodes to Node objects instead of IdxT. Allows for container free setup

Member GridKit::DistributedGenerator< ScalarT, IdxT >::DistributedGenerator  (IdxT id, DistributedGeneratorParameters< RealT, IdxT > parm, bool reference_frame, NodeT *node_ref, NodeT *node_bus)

Maybe have parameters be templated in. Variables cannot be changed and are unlikely to. Allows for compile time optimizations

Member GridKit::Generator4Param< ScalarT, IdxT >::trajectoryPenalty  (ScalarT t) const

Look-up table should probably live outside the generator model.

Member GridKit::InductionMotor< ScalarT, IdxT >::evaluateJacobian  ()

need to implement

Member GridKit::InductionMotor< ScalarT, IdxT >::InductionMotor  (IdxT id, RealT Lls, RealT Rs, RealT Llr, RealT Rr, RealT Lms, RealT RJ, RealT P)

create a test case utilizing the component.

create a unit test to check correctness of component

Class GridKit::LinearAlgebra::COO_Matrix< RealT, IdxT >

add functionality to keep track of multiple sorted lists. Faster adding of new entries and will have a threshold to sort completely.

Member GridKit::LinearAlgebra::COO_Matrix< RealT, IdxT >::getCSRRowData  ()

swap this with having the matrix store the data and updates. This can then be passed by reference

Member GridKit::LinearAlgebra::COO_Matrix< RealT, IdxT >::identityMatrix  (IdxT n)

- it might be better to explicitly zero out the matrix and require to be so in preconditions

Member GridKit::LinearAlgebra::COO_Matrix< RealT, IdxT >::sortSparseCOO  (std::vector< IdxT > &rows, std::vector< IdxT > &columns, std::vector< RealT > &values, size_t nnz)

simple setup. Should add stable sorting since lists are pre-sorted_

Member GridKit::LinearTransformer< ScalarT, IdxT >::LinearTransformer  (IdxT id, RealT L0, RealT L1, RealT R0, RealT R1, RealT M)

Not tested in any model yet. Should be

Has not been tested for correctness

Member GridKit::MicrogridLine< ScalarT, IdxT >::MicrogridLine  (IdxT id, RealT R, RealT L, NodeT *node_ref, NodeT *bus1, NodeT *bus2)

Consider having \omegaref as a global constant, not a node variable.

Member GridKit::Model::Evaluator< scalar_type, index_type >::getCsrJacobian  () const

Remove this and use CsrMatirx for jac_

Member GridKit::PhasorDynamics::Bus< scalar_type, index_type >::Bus  (ScalarT Vr, ScalarT Vi)

Arguments that should be passed to ModelEvaluatorImpl constructor:

  • Number of equations = 2 (size_)

  • Number of variables = 2 (size_)

  • Number of quadratures = 0

  • Number of optimization parameters = 0

Member GridKit::PhasorDynamics::Bus< scalar_type, index_type >::Bus  ()

Arguments that should be passed to ModelEvaluatorImpl constructor:

  • Number of equations = 2 (size_)

  • Number of variables = 2 (size_)

  • Number of quadratures = 0

  • Number of optimization parameters = 0

Struct GridKit::PhasorDynamics::BusData< real_type, index_type >

Decide on naming scheme for model parameters.

Member GridKit::PhasorDynamics::Component< ScalarT, IdxT >::hasJacobian  () override

Remove this method. It should be part of DynamicSolver class.

Member GridKit::PhasorDynamics::from_json  (const json &j, SystemModelData< RealT, IdxT > &sm)

So far handling only branches, Genrous, and bus faults For 2-bus Tgov1, for example, we need to add support for Tgov1 governor and support for signal nodes.

Give signal nodes their own array!!! Modify JSON format accordingly

Struct GridKit::PhasorDynamics::GenClassicalData< real_type, index_type >

Decide on naming scheme for model parameters.

Struct GridKit::PhasorDynamics::SignalNodeData< real_type, index_type >

Decide on naming scheme for model parameters.

Class GridKit::PhasorDynamics::SystemModel< scalar_type, index_type >

Address thread safety for the system model methods.

Member GridKit::PhasorDynamics::SystemModel< scalar_type, index_type >::addComponent  (ComponentT *component)

: No integer user-facing component_id for now, but we could map GridKit’s component ID to the disambiguation_string

Member GridKit::PhasorDynamics::SystemModel< scalar_type, index_type >::evaluateJacobian  () override

split the initial assembly from updating values. This will the slow otherwise.

Member GridKit::PhasorDynamics::SystemModel< scalar_type, index_type >::evaluateResidual  () override

Here, components write to local values, which are then copied to global system vectors. Make components write to the system vectors directly.

Member GridKit::PhasorDynamics::SystemModel< scalar_type, index_type >::initialize  () override

Implement writting to system vectors in a thread-safe way.

Member GridKit::PhasorDynamics::SystemModel< scalar_type, index_type >::SystemModel  (const SystemModelData< RealT, IdxT > &data)

Genrou (and likely other components) would need to name multiple signal inlets and outlets. For now we have only speed out and mechanical power in.

Add zip loads to JSON parser

Add loads to JSON parser

Signal data needs to be populated by the parser. See TODOs in SystemModelDataJSONParser

Member GridKit::PhasorDynamics::SystemModel< scalar_type, index_type >::tagDifferentiable  () override

Tagging differential variables

Member GridKit::PhasorDynamics::SystemModelData< real_type, index_type >::bus

Create an enum identifying all available component models and consolidate components in a single container.

  • Convert string to enum

  • Associate component type to its corresponding enum

  • Consolidate components to allow writing to them using the enum as the argument

Member GridKit::PowerElectronicsModel< ScalarT, IdxT >::evaluateExternalResidual  () final

implement this for nested systems

Member GridKit::setLookupTable  (std::vector< std::vector< ScalarT > > &table, std::istream &idata, ScalarT &ti, ScalarT &tf)

needs to return int for file error codes

Member GridKit::SynchronousMachine< ScalarT, IdxT >::evaluateInternalResidual  () final

not finished

Member GridKit::SynchronousMachine< ScalarT, IdxT >::SynchronousMachine  (IdxT id, RealT Lls, std::tuple< RealT, RealT > Llkq, RealT Llfd, RealT Llkd, RealT Lmq, RealT Lmd, RealT Rs, std::tuple< RealT, RealT > Rkq, RealT Rfd, RealT Rkd, RealT RJ, RealT P, RealT mub)

This model’s equations are not finished

needs to be tested for correctness

Class GridKit::SystemModel< ScalarT, IdxT >

Address thread safety for the system model methods.

Member GridKit::SystemModel< ScalarT, IdxT >::evaluateJacobian  ()

Need to implement Jacobian. For now, using finite difference approximation provided by IDA. This works for dense Jacobian matrix only.

Member GridKit::SystemModel< ScalarT, IdxT >::evaluateResidual  ()

Here, components write to local values, which are then copied to global system vectors. Make components write to the system vectors directly.

Member GridKit::SystemModel< ScalarT, IdxT >::initialize  ()

Implement writting to system vectors in a thread-safe way.

Member GridKit::SystemModel< ScalarT, IdxT >::tagDifferentiable  ()

Tagging differential variables

Class GridKit::SystemSteadyStateModel< ScalarT, IdxT >

Tolerance management needs to be reconsidered.

Address thread safety for the system model methods.

Member GridKit::SystemSteadyStateModel< ScalarT, IdxT >::evaluateJacobian  ()

Need to implement Jacobian. For now, using finite difference approximation provided by IDA. This works for dense Jacobian matrix only.

Member GridKit::SystemSteadyStateModel< ScalarT, IdxT >::evaluateResidual  ()

Here, components write to local values, which are then copied to global system vectors. Make components write to the system vectors directly.

Member GridKit::SystemSteadyStateModel< ScalarT, IdxT >::initialize  ()

Implement writting to system vectors in a thread-safe way.

Member GridKit::SystemSteadyStateModel< ScalarT, IdxT >::tagDifferentiable  ()

Tagging differential variables

Member GridKit::TransmissionLine< ScalarT, IdxT >::TransmissionLine  (IdxT id, RealT R, RealT X, RealT B)

needs to used in a model

test for correctness

Class GridKit::Utilities::CliArgs

Allow option grouping for a more expressive help description.

Struct GridKit::Utilities::Option

  • Allow positional arguments

  • Allow nargs to be “arbitrary”

File MapFromCOO.hpp

This should go away once we settle on a sparse format

File MapFromCsr.hpp

Move to a more permanent location