GithubHelp home page GithubHelp logo

Module refactoring about powsybl-dynawo HOT 8 CLOSED

powsybl avatar powsybl commented on September 25, 2024
Module refactoring

from powsybl-dynawo.

Comments (8)

geofjamg avatar geofjamg commented on September 25, 2024 1

On the other side, we understand that the current integration of Dynawo as an implementation of PowSyBl DynamicSimulation API, letting the user define the mapping with dynamic models is mainly oriented towards the use of Dynawo in its DynaWaltz flavour. So, we agree on renaming the related modules, files and classes.

Just wanted to confirm.

That's a good question, I have not idea if what has been done for the dynawaltz will be reusable or not (or some part) for dynaswing.
Maybe one day we will have a dynawo core module shared by dynawaltz and dynaswing integrations?
But for now as we we are very far from a dynaswing integration we should stay on proposed renaming and see later on.
@zamarrenolm @mathbagu are you ok?

from powsybl-dynawo.

zamarrenolm avatar zamarrenolm commented on September 25, 2024

Just one doubt about naming of modules and related code. A short explanation is required before asking the question.

Currently there are two PowSyBl APIs implemented in the project: LoadFlow and DynamicSimulation.

LoadFlow is implemented as a direct call to DynaFlow launcher, passing it only the IIDM Network and some parameters. The DynaFlow launcher is a C++ module in dynawo project (https://github.com/dynawo/dynaflow-launcher). We understand it is responsible for preparing required Dynawo simulation, establishing the mapping between Network equipment and dynamic models, setting its parameters, and executing the Dynawo simulation using a job file. In current version of DynaFlow integration we do not see how the results are put back in the Network, but we assume Dynawo will export an updated XIIDM that could be read after simulation has finished.

DynamicSimulation is implemented using a set of Dynawo-named classes that perform a similar function to what DynaFlow launcher is doing: they map Network equipment to dynamic models, assign its parameters and prepare the dynamic simulation building a job file. Currently results are recovered as curves in PowSyBl time series objects.

Our doubt is if we should rename all current Dynawo-named code to DynaWaltz-prefixed OR we keep it as it is, as current code in powsybl-dynawo could (eventually) support also the integration of the different flavors of Dynawo (DynaSwing, DynaWave, ...). In fact, what is done in DynaFlow launcher is functionally very similar to what is done in Java powsybl-dynawo integration ... we assume there is a specific launcher for DynaFlow for optimization purposes (and maybe hiding the complexity of the mapping to the user).

from powsybl-dynawo.

zamarrenolm avatar zamarrenolm commented on September 25, 2024

On the other side, we understand that the current integration of Dynawo as an implementation of PowSyBl DynamicSimulation API, letting the user define the mapping with dynamic models is mainly oriented towards the use of Dynawo in its DynaWaltz flavour. So, we agree on renaming the related modules, files and classes.

Just wanted to confirm.

from powsybl-dynawo.

geofjamg avatar geofjamg commented on September 25, 2024

(and maybe hiding the complexity of the mapping to the user).

Maybe I am wrong I think that if dynaflow launcher main purpose is to be able to optimize the (future) security analysis in more internal loop that what could have be done on Java integration side. @mathbagu do you remenber if it was the reason?

from powsybl-dynawo.

zamarrenolm avatar zamarrenolm commented on September 25, 2024

Agree.
Will proceed with the proposed renaming and consider the current Java integration as DynaWaltz integration.

from powsybl-dynawo.

rosiereflo avatar rosiereflo commented on September 25, 2024

DynaFlow was initially supposed to be integrated similarly to DynaWaltz. However our deadline and PowSybl team free time were not compatible so we had to go with this DynaFlow-Launcher solution. Most of the code of the DynaWaltz integration in PowSybl will be reusable for DynaSwing (it is mostly the models library and mapping that will change). On the end I don't know what the naming should be but I wanted to make sure you had the full context before taking a decision.

from powsybl-dynawo.

zamarrenolm avatar zamarrenolm commented on September 25, 2024

By the way @rosiereflo: in the current master branches of dynaflow-launcher and powsybl-dynawo integration I have not been able to see if the IIDM Network is updated after the calculation. Is this function already implemented ? is it being developed in a separate branch ?

from powsybl-dynawo.

rosiereflo avatar rosiereflo commented on September 25, 2024

You are perfectly right, this is something that we have to do but it is not started yet

from powsybl-dynawo.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.