# Dynamic expreesion name in JuMP

**URL:** <https://discourse.julialang.org/t/dynamic-expreesion-name-in-jump/80995>\
**Category:** Optimization (Mathematical)\
**Tags:** question\
**Created:** [May 13, 2022, 5:11am UTC](https://discourse.julialang.org/t/dynamic-expreesion-name-in-jump/80995 "2022-05-13T05:11:29Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![manoj.centura](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/manoj.centura/32/216443_2.png) [@manoj.centura](https://discourse.julialang.org/u/manoj.centura)\
**Post date:** [May 13, 2022, 5:11am UTC](https://discourse.julialang.org/t/dynamic-expreesion-name-in-jump/80995/1 "2022-05-13T05:11:29Z")

</div>

Hi All,  
is there a way to create dynamic expression name in Julia? like the code given below Julia 1.2

```nohighlight
mod2=Model()
@variable(mod2,x[i in 1:13])
@variable(mod2,y[i in 1:13])
@constraint(mod2, [i in 1:13], x[i]+y[i]>=30)
for i in 1:13
temp$i= @expression(mod2,x[i]+y[i]+3)
@constraint(mod2,temp$i<=100)
end
print(mod2)

Thanks
```

---

<div class="post-metadata">

**Author:** ![jd-foster](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jd-foster/32/35824_2.png) [@jd-foster](https://discourse.julialang.org/u/jd-foster)\
**Post date:** [May 13, 2022, 5:36am UTC](https://discourse.julialang.org/t/dynamic-expreesion-name-in-jump/80995/2 "2022-05-13T05:36:29Z")

</div>

Can you use a Julia container?

```julia
temp = Array{AffExpr}(undef, 13)
for i in 1:13
   temp[i] = @expression(mod2,x[i]+y[i]+3)
end

@constraint(mod2, [i=1:13], temp[i] <= 100)

```

---

<div class="post-metadata">

**Author:** ![math\_opt](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/math_opt/32/25317_2.png) [@math\_opt](https://discourse.julialang.org/u/math_opt)\
**Post date:** [May 13, 2022, 5:36am UTC](https://discourse.julialang.org/t/dynamic-expreesion-name-in-jump/80995/3 "2022-05-13T05:36:32Z")

</div>

```julia
mod2=Model()
@variable(mod2,x[i in 1:13])
@variable(mod2,y[i in 1:13])
@constraint(mod2, [i in 1:13], x[i]+y[i]>=30)

temp = Vector{Any}(undef, 13)
for i in 1:13
    temp[i]= @expression(mod2,x[i]+y[i]+3)
end
@constraint(mod2,temp .<= 100)

print(mod2)

```

---

<div class="post-metadata">

**Author:** ![jd-foster](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jd-foster/32/35824_2.png) [@jd-foster](https://discourse.julialang.org/u/jd-foster)\
**Post date:** [May 13, 2022, 5:37am UTC](https://discourse.julialang.org/t/dynamic-expreesion-name-in-jump/80995/4 "2022-05-13T05:37:10Z")

</div>

Nice answer 😋

---

<div class="post-metadata">

**Author:** ![manoj.centura](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/manoj.centura/32/216443_2.png) [@manoj.centura](https://discourse.julialang.org/u/manoj.centura)\
**Post date:** [May 25, 2022, 2:15pm UTC](https://discourse.julialang.org/t/dynamic-expreesion-name-in-jump/80995/5 "2022-05-25T14:15:11Z")

</div>

**EDIT(odow): this was asked as a separate question: [Dynamic NL expression in julia](https://discourse.julialang.org/t/dynamic-nl-expression-in-julia/81658)**

Hi, I am using Juniper to solve MNILP and with array of nonlinear expression i am getting invalid model error. is there a way to generate nonlinear expression names in a loop like

```julia
@variable(model,x)
zz=0.0
for i in 1:5
    for j in 1:5
        global zz=zz+1
        println(zz)
        xmm_$zz=@NLexpression(model,x+x*x+zz)
    end
end
println(model)
```
