lanl-ansi / PowerModels.jl

A Julia/JuMP Package for Power Network Optimization
https://lanl-ansi.github.io/PowerModels.jl/stable/
Other
388 stars 145 forks source link

Variable Name Conventions #26

Open ccoffrin opened 8 years ago

ccoffrin commented 8 years ago

I propose the following a standard naming convention for the polar and rectangular variable spaces, let "v" be a complex number, then:

ccoffrin commented 8 years ago

Another challenge is how to deal with variable products. It has been convenient to use w for the product of two voltages (i.e. v). But we need a more general rule for the product of other complex numbers.

I suggest if x and y are complex numbers then xy can be represented as,

Due to the convenient existence of w, which looks like vv, we can use it as a shorthand of these cases,

ccoffrin commented 8 years ago

In light of this convention, and that S is the standard value for complex power, should p and q be renamed sr and si?

kaarthiksundar commented 8 years ago

We can do the following: at instances where there is no standard agreed upon naming convention like p and q for sr and si, we can follow your proposed scheme.

rb004f commented 8 years ago

I don't think we can rename p and q as sr and si. To many people "know" what p and q mean, and to replace that may cause too much confusion. I tend to agree with Kaarthik here, where we use sr and si whenever there is not an agreed upon notation.

ccoffrin commented 8 years ago

If we adopt @kaarthiksundar's suggestion, what is the list of standard agreed upon names?

Another option is for some parameters like p and q to have two aliases for the same set of variables, the typical name and the standardized convention. It's unclear to me if JuMP could handle that.

kaarthiksundar commented 8 years ago

@ccoffrin I am pretty (95%) sure JuMP cannot handle that. I have been experimenting with variable names for quite some time and in my experience, that is not possible.

I guess the only agreed upon names are p, q and w.

mlubin commented 8 years ago

It could handle it with some hacks, but would need to be convinced that it's worth making the scoping more complicated and confusing than it already is. You could just use your own dictionary.

rb004f commented 8 years ago

I think if we carefully document that p and q are the exception to the convention (and why), this will be ok. w is a somewhat newer convention, so maybe that can be changed without too much heart burn?

ccoffrin commented 8 years ago

I like the w notation and It's very nice in the SDP models. I think we have a plan.

we can revisit multiple aliases at a later time, if this becomes supported in JuMP.

rb004f commented 8 years ago

works for me

ccoffrin commented 6 years ago

A proposal for dual value naming conventions,

Some common examples,

frederikgeth commented 6 years ago

I'd like to make a proposal as well.

Classically, power system people define impedance as z = r + j x and admittance as y = g + j b. At the moment, the parameter symbols defining impedance of a pi-section in PowerModels are like that for the series element. However, c is used for the shunt susceptance. In more generic context, cmay refer to capacitance, which relates to reactance as x = 1/(2pif*c). This causes unnecessary confusion. I would expect shunt susceptance to be named b or actually b_sh to avoid name conflicts.

ccoffrin commented 6 years ago

@frederikgeth, you make a good point. I think c is a legacy name we picked up from Matpower. This will be revised to something more reasonable in #214. I am thinking g_fr, b_fr and g_to, b_to are what we will end up using for the line charge elements.

ccoffrin commented 5 years ago

Review the use of underscores in p_dc and q_dc, is inconsistent with other variable naming conventions.