### Multi - control optimization and volume constraint implementation

148
views
0
4 months ago by
Hello everyone.
I wish to perform topology optimization so that I have more than one control parameter (P1 to P7). I have a function 'volfrac' that defines the volume fraction given these control parameters and so I intend integrate this to prescribe my volume constraint. The problem is the examples for structural optimization on the repository all have one parameter as the control (usually density). How do I define the volume constraint jacobian in a way that will accomodate a vector of control parameters rather than just one control parameter?

def jacobian(self, m):
Viii = volfrac(m[0],m[1],m[2],m[3],m[4],m[5],m[6])
self.tmpvec.vector()[:] = Viii
dintegral = assemble(derivative(self.tmpvec*dx, ?))
return [-dintegral]

What should be at '?' since my m is a vector ie. m = (Control(P1), Control(P2)........Control(P7))?
Community: FEniCS Project
Are you using pyadjoint or dolfin-adjoint? I assume your controls P1,... , P7 are just scalars and not fields. It would be helpful if you included more code or details.
written 12 weeks ago by Miguel