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
nargsto 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