Multi - control optimization and volume constraint implementation

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  
Please login to add an answer/comment or follow this question.

Similar posts:
Search »