Given the model:
using ExaModels, JuMP, CUDA
model = Model()
@variable(model, ...)
@constraint(model, c1[i = ...], expr1... == 0.0)
@constraint(model, c2[i = ...], expr1... == 0.0)
@objective(model, Min, expr3...)
that would be converted with:
em = ExaModel(model; backend = CUDABackend())
It would be possible to use JuMP attributes to communicate part of the structure:
JuMP.set_attribute.(c1, ExaModels.ConstraintTag(), "c1")
JuMP.set_attribute.(c2, ExaModels.ConstraintTag(), "c2")
This way all the constraints in the c1 list would be tagged with "c1" (analogous for c2).
Hence, the step of grouping constraints could be done only within the tag groups, which would minimize the work.
Given the model:
that would be converted with:
It would be possible to use JuMP attributes to communicate part of the structure:
This way all the constraints in the
c1list would be tagged with"c1"(analogous forc2).Hence, the step of grouping constraints could be done only within the tag groups, which would minimize the work.