Hi, I am using Gridap to solve and FE and then use it in optimization. i have non zero dirichlet boundary condition as displacement on a load line. to solve the finite element part i used below function

```
function stepDisp(fem_params,pth)
A_Disp(u,v,pth) = ((p->Em(p))∘pth) * ε(v) ⊙ (σfun∘(ε(u)))
a_Disp(u,v) = ∫(A_Disp(u,v,pth))fem_params.dΩ
b_Disp(v) = 0.0
op_Disp = AffineFEOperator(a_Disp ,b_Disp ,fem_params.U0_Disp ,fem_params.V0_Disp)
uh_out = solve(op_Disp)
return get_free_dof_values(uh_out)
end
```

and U0 is trial space

```
uApp1(x) = VectorValue(0.0,0.0)
uApp2(x) = VectorValue(0.0,0.0)
uApp3(x) = VectorValue(0.0,-vAppMax)
U0_Disp = TrialFESpace(V0_Disp ,[uApp1 ,uApp2 ,uApp3])
```

then i use results for topology optimization to do this i uses below objective

```
u_vec = stepDisp(fem_params,pth)
u_vec' * O_mat * u_vec
```

where o is a matrix defined on space.

however, as i run the problem it seems every thing is ok except in load line. as optimization delete material in places that there is no necessity, it delete material exactly on load line. and this is wring. could you please tell me where i am wrong in the code? my guess is that i get free dof from fe part and as there is dirichlet BC on load line, it doesn’t implement this into optimization part. but i cant solve this problem.

thank you in advance for your help