Setting environment variables for a package "SCIP"

on line 86 …I am writing

JuMP.optimize!(m)
LoadError: MethodError: no method matching getindex(::Symbol, ::Int64)

in expression starting at D:\M A S T E R S S S S S S\chapter_4\work\codes\a-SCIP\ML-scip.jl:86

push_expr!(::SCIP.NonlinExpr, ::SCIP.ManagedSCIP, ::Expr) at nonlinear.jl:35

add_nonlinear_constraint(::SCIP.ManagedSCIP, ::Expr, ::Float64, ::Float64) at nonlinear.jl:180

set(::SCIP.Optimizer, ::MathOptInterface.NLPBlock, ::MathOptInterface.NLPBlockData) at nonlinear_constraints.jl:17

I searched for something like @expressions but found only @expression and @NLexpressions
there is no way to add multiple expressions like @NLexpressions ??

@odow

I doubted that I am still confused between @expression , @NLexpression and @constraint
so I hashed everything but making a model and adding the variables and optimizing it
but I found that there is a compilaton error

LoadError: Failed to precompile SCIP [82193955-e24f-5292-bf16-6f2c5261a85f] to C:\Users\mayar.madboly\.julia\compiled\v1.4\SCIP\a0EUw_U5N9T.ji.

For the expression question, please read the first post of Please read: make it easier to help you - #81 and provide a minimal reproducible example.

For the compilation error, please exit Julia, restart, and if you still have the error, post the complete text of the error. Did you remember to set the SCIPOPTDIR environment variable?

yes I set it

@odow
for the macro @constraints, I can use it for something like that ?

JuMP.@constraints(m, begin
    Bus_VoltageMagnitude_Constraint[i in Nodes_set], (0.9)^2<=(vRe[i])^2+(vIm[i])^2 <=(1.06)^2
    Smax[i in Nodes_set, j in Nodes_set], pij[i,j]^2 + qij[i,j]^2 ≤ S[i,j]^2
    Reactive_Nodal_Balance[i in Nodes_set], sum(qij[i,j] for j in Nodes_set) == q[i]+Qd[i]
    Active_Nodal_Balance[i in Nodes_set], sum(pij[i,j] for j in Nodes_set) == p[i]+Pd[i]
end)

given that qij and pij are defined using @expression not @NLexpression !

this is error

LoadError: MethodError: no method matching ^(::JuMP.GenericQuadExpr{Float64,JuMP.VariableRef}, ::Int64)
Closest candidates are:
  ^(!Matched::Float16, ::Integer) at math.jl:885
  ^(!Matched::Regex, ::Integer) at regex.jl:712
  ^(!Matched::Missing, ::Integer) at missing.jl:155
  ...
in expression starting at D:\M A S T E R S S S S S S\chapter_4\work\codes\a-SCIP\ML-scip.jl:88

Again, please provide a complete minimal working example. We need to see the code to offer advice.

If you are going to be building things that are not linear or quadratic, instead of

model = Model()
@variable(model, x)
@expression(model, ex, 2x + 1)
@constraint(model, ex^2 <= 1)

use

model = Model()
@variable(model, x)
@NLexpression(model, ex, 2x + 1)
@NLconstraint(model, ex^2 <= 1)
1 Like