16 SPDLOG_LOGGER_INFO(
mSLog,
"Create {} {}", this->
type(), name);
38 Real defaultParallelCond = 1e-6;
61 std::make_shared<EMT::Ph1::Resistor>(**
mName +
"_con0",
mLogLevel);
70 std::make_shared<EMT::Ph1::Resistor>(**
mName +
"_con1",
mLogLevel);
80 std::make_shared<EMT::Ph1::Capacitor>(**
mName +
"_cap0",
mLogLevel);
89 std::make_shared<EMT::Ph1::Capacitor>(**
mName +
"_cap1",
mLogLevel);
101 Real omega = 2. *
PI * frequency;
105 (**mIntfVoltage)(0, 0) = voltage.real();
106 (**mIntfCurrent)(0, 0) = (voltage / impedance).real();
112 SPDLOG_LOGGER_DEBUG(
mSLog,
116 "\n Impedance: {:s}",
123 "\n--- Initialization from powerflow ---"
124 "\nVoltage across: {:s}"
126 "\nTerminal 0 voltage: {:s}"
127 "\nTerminal 1 voltage: {:s}"
128 "\nVirtual Node 1 voltage: {:s}"
129 "\n--- Initialization from powerflow finished ---",
156 attributeDependencies.push_back(leftVector);
168 (**mIntfVoltage)(0, 0) = 0;
170 (**mIntfVoltage)(0, 0) =
173 (**mIntfVoltage)(0, 0) =
194 return gndComponents;
AttributePointer< Attribute< T > > Ptr
const Attribute< Real >::Ptr mParallelCap
Capacitance in parallel to the line [F].
const Attribute< Real >::Ptr mParallelCond
Conductance in parallel to the line [S].
const Attribute< Real >::Ptr mSeriesInd
Inductance along the line [H].
const Attribute< Real >::Ptr mSeriesRes
Resistance along the line [ohms].
void addMNASubComponent(typename SimPowerComp< Real >::Ptr subc, MNA_SUBCOMP_TASK_ORDER preStepOrder, MNA_SUBCOMP_TASK_ORDER postStepOrder, Bool contributeToRightVector)
void mnaCompApplyRightSideVectorStamp(Matrix &rightVector) override
CompositePowerComp(String uid, String name, Bool hasPreStep, Bool hasPostStep, Logger::Level logLevel)
void mnaParentPostStep(Real time, Int timeStepCount, Attribute< Matrix >::Ptr &leftVector) override
MNA post step operations.
void mnaTearApplyMatrixStamp(SparseMatrixRow &tearMatrix) override
std::shared_ptr< Inductor > mSubSeriesInductor
MNAInterface::List mnaTearGroundComponents() override
void mnaCompUpdateVoltage(const Matrix &leftVector) override
Updates internal voltage variable of the component.
std::shared_ptr< Resistor > mSubParallelResistor1
Parallel resistor submodel at Terminal 1.
void mnaTearPostStep(Complex voltage, Complex current) override
void mnaParentAddPostStepDependencies(AttributeBase::List &prevStepDependencies, AttributeBase::List &attributeDependencies, AttributeBase::List &modifiedAttributes, Attribute< Matrix >::Ptr &leftVector) override
Add MNA post step dependencies.
void mnaTearApplyVoltageStamp(Matrix &voltageVector) override
void createSubComponents() override
Constructs and registers MNA subcomponents; idempotent.
std::shared_ptr< Capacitor > mSubParallelCapacitor0
void mnaCompUpdateCurrent(const Matrix &leftVector) override
Updates internal current variable of the component.
std::shared_ptr< Resistor > mSubSeriesResistor
Series Resistor submodel.
void mnaParentAddPreStepDependencies(AttributeBase::List &prevStepDependencies, AttributeBase::List &attributeDependencies, AttributeBase::List &modifiedAttributes) override
Add MNA pre step dependencies.
SimPowerComp< Real >::Ptr clone(String copySuffix) override
DEPRECATED: Delete method.
std::shared_ptr< Capacitor > mSubParallelCapacitor1
void mnaTearInitialize(Real omega, Real timeStep) override
std::shared_ptr< Resistor > mSubParallelResistor0
Parallel Resistor submodel at Terminal 0.
PiLine(String uid, String name, Logger::Level logLevel=Logger::Level::off)
Defines UID, name and logging level.
void initializeParentFromNodesAndTerminals(Real frequency) override
Derives values from power flow data and pushes them to subcomponents.
void mnaParentPreStep(Real time, Int timeStepCount) override
MNA pre step operations.
const Attribute< String >::Ptr mName
Human readable name.
String uid()
Returns unique id.
String type()
Get component type (cross-platform)
AttributeList::Ptr mAttributes
Attribute List.
spdlog::level::level_enum Level
static String complexToString(const Complex &num)
static String matrixToString(const Matrix &mat)
static String phasorToString(const Complex &num)
Attribute< Matrix >::Ptr mRightVector
static Real realFromVectorElement(const Matrix &mat, Matrix::Index row)
UInt matrixNodeIndex(UInt nodeIndex)
const Attribute< MatrixVar< Real > >::Ptr mIntfCurrent
SimTerminal< Real >::List mTerminals
void setVirtualNodeNumber(UInt num)
const Attribute< MatrixVar< Real > >::Ptr mIntfVoltage
std::shared_ptr< SimPowerComp< VarType > > Ptr
SimNode< Real >::List mVirtualNodes
Bool terminalNotGrounded(UInt index)
Complex initialSingleVoltage(UInt index)
void setTerminalNumber(UInt num)
Logger::Level mLogLevel
Component logger control for internal variables.
Logger::Log mSLog
Component logger.
static std::shared_ptr< PiLine > make(Args &&...args)
#define RMS3PH_TO_PEAK1PH
Eigen::Matrix< Real, Eigen::Dynamic, Eigen::Dynamic, Eigen::ColMajor > Matrix
Dense matrix for real numbers.
std::complex< Real > Complex
Eigen::SparseMatrix< Real, Eigen::RowMajor > SparseMatrixRow
Sparse matrix for real numbers (row major).