Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
34ba3f8
Bump com.github.ie3-institute:PowerSystemDataModel from 7.0.0 to 8.1.0
dependabot[bot] Aug 4, 2025
96f3e80
refactor method to derive nodes of a given voltage level from a seque…
danielfeismann Aug 5, 2025
a90624b
adapt GridSupport to new subGridNumber concept
danielfeismann Aug 5, 2025
1980577
adapt mvNodes of MvCoordinator
danielfeismann Aug 5, 2025
1023bb5
adapting SubGridHandling
danielfeismann Aug 5, 2025
f512d6a
Merge branch 'dev' into dependabot/gradle/dev/com.github.ie3-institut…
danielfeismann Oct 13, 2025
aaf9f7d
use java 21
danielfeismann Oct 13, 2025
d2f97a9
fix check for right exception
danielfeismann Oct 13, 2025
3479740
fmt
danielfeismann Oct 13, 2025
7a56c13
update gradle
danielfeismann Oct 13, 2025
286c919
fix RunGuardianSpec
danielfeismann Oct 13, 2025
2030d28
fix ci
danielfeismann Oct 13, 2025
9f83fd5
fmt
danielfeismann Oct 13, 2025
02f6638
do not update gradle and java
danielfeismann Oct 13, 2025
767f8c6
Merge branch 'dev' into dependabot/gradle/dev/com.github.ie3-institut…
danielfeismann Oct 13, 2025
761e2b1
completely remove mvNodeChanges
danielfeismann Oct 14, 2025
ae945f9
adapt node naming
danielfeismann Oct 14, 2025
af19383
roll back some changes
danielfeismann Oct 16, 2025
123c9ab
use proper subnet numbers in GridSupport
danielfeismann Oct 16, 2025
720f4b2
Merge branch 'dev' into dependabot/gradle/dev/com.github.ie3-institut…
danielfeismann Oct 16, 2025
146d2a2
Merge branch 'dev' into dependabot/gradle/dev/com.github.ie3-institut…
danielfeismann Oct 21, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ dependencies {
}

// ie³ power system data model
implementation('com.github.ie3-institute:PowerSystemDataModel:7.0.0') {
implementation('com.github.ie3-institute:PowerSystemDataModel:8.1.0') {
exclude group: 'org.slf4j'
exclude group: 'org.apache.logging.log4j'
exclude group: 'com.github.ie3-institute'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,17 @@
package edu.ie3.osmogrid.guardian.run

import edu.ie3.datamodel.models.input.NodeInput
import edu.ie3.datamodel.models.input.connector._
import edu.ie3.datamodel.models.input.connector.*
import edu.ie3.datamodel.models.input.connector.`type`.{
Transformer2WTypeInput,
Transformer3WTypeInput,
}
import edu.ie3.datamodel.models.input.container._
import edu.ie3.datamodel.models.input.container.*
import edu.ie3.datamodel.utils.ContainerNodeUpdateUtil
import edu.ie3.datamodel.utils.validation.ValidationUtils
import edu.ie3.osmogrid.cfg.OsmoGridConfig
import edu.ie3.osmogrid.exception.GridException
import edu.ie3.osmogrid.guardian.run.SubGridHandling._
import edu.ie3.osmogrid.guardian.run.SubGridHandling.*
import edu.ie3.osmogrid.io.input.AssetInformation
import edu.ie3.osmogrid.io.output.{GridResult, OutputRequest}
import org.apache.pekko.actor.typed.ActorRef
Expand All @@ -26,7 +26,8 @@ import tech.units.indriya.ComparableQuantity

import java.util.UUID
import javax.measure.quantity.ElectricPotential
import scala.jdk.CollectionConverters._
import javax.naming.directory.InvalidAttributesException
import scala.jdk.CollectionConverters.*
import scala.util.{Failure, Success, Try}

trait SubGridHandling {
Expand Down Expand Up @@ -202,14 +203,12 @@ object SubGridHandling {

val hv = hvGrids.map { grids =>
if (grids.size == 1 && grids(0).getGridName == "dummyHvGrid") {

val hvNode: NodeInput = grids(0).getRawGrid.getNodes.asScala.toList
.sortBy(
_.getVoltLvl.getNominalVoltage.getValue.doubleValue()
)
.lastOption
.getOrElse(throw GridException("No hv node found."))

(
Map(hvNode.getUuid -> hvNode.copy().subnet(hvOffset).build()),
hvOffset + 2,
Expand Down
2 changes: 1 addition & 1 deletion src/main/scala/edu/ie3/osmogrid/mv/MvCoordinator.scala
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ package edu.ie3.osmogrid.mv

import edu.ie3.datamodel.models.input.NodeInput
import edu.ie3.datamodel.models.input.container.JointGridContainer
import edu.ie3.datamodel.models.voltagelevels.GermanVoltageLevelUtils
import edu.ie3.osmogrid.ActorStopSupportStateless
import edu.ie3.osmogrid.cfg.OsmoGridConfig
import edu.ie3.osmogrid.guardian.run.RunGuardian
import edu.ie3.osmogrid.io.input.{InputDataEvent, ReqAssetTypes}
import edu.ie3.osmogrid.mv.MvMessageAdapters.WrappedInputResponse
import org.apache.pekko.actor.typed.scaladsl.{ActorContext, Behaviors}
Expand Down
6 changes: 3 additions & 3 deletions src/main/scala/utils/GridContainerUtils.scala
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,15 @@

package utils

import edu.ie3.datamodel.models.input.container.*
import edu.ie3.datamodel.models.input.{AssetInput, NodeInput}
import edu.ie3.datamodel.models.input.container._
import edu.ie3.datamodel.models.voltagelevels.VoltageLevel
import edu.ie3.datamodel.models.voltagelevels.CommonVoltageLevel
import edu.ie3.osmogrid.cfg.OsmoGridConfig.Voltage
import edu.ie3.osmogrid.guardian.run.RunGuardian
import tech.units.indriya.ComparableQuantity

import javax.measure.quantity.ElectricPotential
import scala.jdk.CollectionConverters._
import scala.jdk.CollectionConverters.*

object GridContainerUtils {
private val cfg: Voltage = RunGuardian.getVoltageConfig
Expand Down
22 changes: 19 additions & 3 deletions src/test/scala/edu/ie3/osmogrid/guardian/run/RunGuardianSpec.scala
Original file line number Diff line number Diff line change
Expand Up @@ -220,10 +220,26 @@ class RunGuardianSpec extends ScalaTestWithActorTestKit with UnitSpec {
)
}

"handle all received grid results" in {
runningTestKit.run(HandleGridResults)
"handle all received grid results" in new GridSupport {
val lvGrids: Seq[SubGridContainer] = Seq(mockSubGrid(1))
val mvGrids: Seq[SubGridContainer] = Seq(mockSubGrid(3))
val streetGraph: OsmGraph = new OsmGraph()

/* Result is forwarded to listener */
// LV first
runningTestKit.run(
MessageAdapters.WrappedLvCoordinatorResponse(
RepLvGrids(lvGrids, streetGraph)
)
)

// MV
runningTestKit.run(
MessageAdapters.WrappedMvCoordinatorResponse(
RepMvGrids(mvGrids, None, Map.empty, assetInformation)
)
)

runningTestKit.run(HandleGridResults)
resultListener.expectMessageType[GridResult]
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ import edu.ie3.datamodel.models.input.container.{
import edu.ie3.datamodel.models.input.graphics.GraphicInput
import edu.ie3.datamodel.models.input.system.SystemParticipantInput
import edu.ie3.datamodel.models.input.{AssetInput, NodeInput}
import edu.ie3.datamodel.models.voltagelevels.GermanVoltageLevelUtils._
import edu.ie3.datamodel.models.voltagelevels.GermanVoltageLevelUtils.*
import edu.ie3.osmogrid.cfg.{OsmoGridConfig, OsmoGridConfigFactory}
import edu.ie3.osmogrid.exception.GridException
import edu.ie3.osmogrid.io.output.{OutputRequest, ResultListenerProtocol}
Expand All @@ -35,7 +35,7 @@ import org.slf4j.{Logger, LoggerFactory}
import tech.units.indriya.quantity.Quantities

import java.util.UUID
import scala.jdk.CollectionConverters._
import scala.jdk.CollectionConverters.*
import scala.util.{Failure, Success, Try}

class SubGridHandlingSpec
Expand Down Expand Up @@ -113,13 +113,18 @@ class SubGridHandlingSpec
"process and update lv results correctly" in {
val lv = mockSubGrid(1, MV_10KV, LV)

val commonNode = lv.getRawGrid.getNodes.asScala
.filter(_.isSlack)
val mvNode = lv.getRawGrid.getTransformer2Ws.asScala
.toSeq(0)
.getNodeA
.copy()
.slack(false)
.build()

val commonNode = mvNode
.copy()
.subnet(3)
.build()

val mv = new SubGridContainer(
"3",
3,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -186,8 +186,12 @@ class InputDataProviderIT extends UnitSpec with InputDataCheck {
) match {
case AssetReadFailed(exception) =>
exception.getClass shouldBe classOf[SourceException]
exception.getMessage shouldBe s"edu.ie3.datamodel.exceptions.FailureException: 1 exception(s) occurred within \"Transformer2WTypeInput\" data, one is: " +
s"edu.ie3.datamodel.exceptions.FactoryException: An error occurred when creating instance of Transformer2WTypeInput.class."
exception.getMessage should startWith(
"1 exception(s) occurred within \"Transformer2WTypeInput\" data:"
)
exception.getMessage should include(
"Field \"uuid\" not found in EntityData"
)
case RepAssetTypes(
assetInformation: AssetInformation
) =>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,13 @@ import edu.ie3.datamodel.models.input.container.{
SystemParticipants,
}
import edu.ie3.datamodel.models.input.{AssetInput, NodeInput}
import edu.ie3.datamodel.models.voltagelevels.GermanVoltageLevelUtils._
import edu.ie3.datamodel.models.voltagelevels.GermanVoltageLevelUtils.*
import edu.ie3.osmogrid.guardian.run.RunGuardian
import edu.ie3.test.common.{GridSupport, MvTestData, UnitSpec}
import utils.GridContainerUtils.combine
import utils.{GridContainerUtils, VoltageUtils}

import scala.jdk.CollectionConverters._
import scala.jdk.CollectionConverters.*

class GridContainerUtilsSpec extends UnitSpec with GridSupport with MvTestData {
"GridContainerUtils" should {
Expand Down
22 changes: 11 additions & 11 deletions src/test/scala/edu/ie3/test/common/GridSupport.scala
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ import edu.ie3.datamodel.models.input.graphics.{
LineGraphicInput,
NodeGraphicInput,
}
import edu.ie3.datamodel.models.input.system._
import edu.ie3.datamodel.models.input.system.*
import edu.ie3.datamodel.models.input.system.characteristic.{
OlmCharacteristicInput,
ReactivePowerCharacteristic,
Expand All @@ -41,8 +41,8 @@ import edu.ie3.datamodel.models.voltagelevels.{
}
import edu.ie3.datamodel.utils.GridAndGeoUtils
import edu.ie3.osmogrid.io.input.AssetInformation
import edu.ie3.util.geo.GeoUtils._
import edu.ie3.util.quantities.PowerSystemUnits._
import edu.ie3.util.geo.GeoUtils.*
import edu.ie3.util.quantities.PowerSystemUnits.*
import edu.ie3.util.quantities.QuantityUtils.*
import org.locationtech.jts.geom.Point
import org.scalatestplus.mockito.MockitoSugar.mock
Expand All @@ -51,8 +51,8 @@ import tech.units.indriya.quantity.Quantities
import tech.units.indriya.unit.Units.PERCENT

import java.util.UUID
import javax.measure.quantity._
import scala.jdk.CollectionConverters._
import javax.measure.quantity.*
import scala.jdk.CollectionConverters.*

trait GridSupport {
val defaultLineTypeLv = new LineTypeInput(
Expand Down Expand Up @@ -260,12 +260,12 @@ trait GridSupport {
// include at least a single node for voltage level determination
val dummyNodeA = new NodeInput(
UUID.randomUUID(),
s"Dummy nodeA in $subgridNo",
s"Dummy nodeA in $subgridNo + 1",
Quantities.getQuantity(1.0d, StandardUnits.TARGET_VOLTAGE_MAGNITUDE),
true,
mock[Point],
voltLvlA,
subgridNo,
subgridNo + 1, // NodeA of Transformer needs to have different subgridNo
)

val dummyNodeB1 = new NodeInput(
Expand Down Expand Up @@ -375,21 +375,21 @@ trait GridSupport {

val topNode1 = new NodeInput(
UUID.randomUUID(),
s"Top node 1 in $subgridNo",
s"Top node 1 in $subgridNo + 1",
Quantities.getQuantity(1.0d, StandardUnits.TARGET_VOLTAGE_MAGNITUDE),
false,
mock[Point],
GermanVoltageLevelUtils.MV_10KV,
subgridNo,
subgridNo + 1, // NodeB of 3wTransformer needs to have different subgridNo
)
val topNode2 = new NodeInput(
UUID.randomUUID(),
s"Top node 2 in $subgridNo",
s"Top node 2 in $subgridNo + 2",
Quantities.getQuantity(1.0d, StandardUnits.TARGET_VOLTAGE_MAGNITUDE),
false,
mock[Point],
GermanVoltageLevelUtils.MV_20KV,
subgridNo,
subgridNo + 2, // NodeB of 3wTransformer needs to have different subgridNo
)

val lineInput = new LineInput(
Expand Down
Loading