Solve a semilinear elliptic PDE in Matlab as part of an distributed optimal control problem
4 views (last 30 days)
Show older comments
Hey everyone,
I need to put in the following PDE into Matlab and solve it via FEM. The PDE is part of an complete optimal control problem, but if I know, how to put in the PDE, I will probably also know the rest.
Here, y is the solution to the PDE in H^1_0(D) (the state operator) and u in L^2(D) is the control operator (fixed function). D is the unitsquare in R^2 and x \in R^2.
a and r are just random functions (also fixed).
My problem is, that I don't know, how to put in nonconstant values or functions into the standard specifyCoefficients enviroment.
PDE:
- \nabla * ( a(x,\omega) \nabla y(x,\omega)) + r(x,\omega) (y(x,\omega))^3 = u(x)
y(x,\omega)=0
I know how to put in the dirichlet boundary condition, but struggle with the nonboundary part. In general I would like to have something like similar to −∇⋅(c∇u)+au=f, but with nonfixed c,a,f.
model=createpde();
geometryFromEdges(model,@squareg);
applyBoundaryCondition(model,'dirichlet','Edge',1:model.Geometry.NumEdges,'u',0);
rightHandSide= ' (put in the fixed funtion here) '
coefficient= 'my function a'
distributedControl= 'u.^2' ; % so that overall I have u^3 in matlab
specifyCoefficients(model,'m',0,...
'd',0,...
'c',coefficient,...
'a',distributedControl,...
'f',righHandSide);
generateMesh(model,'Hmax',hmax);
pdemesh(model);
Unfortunatly this approach doesn't work and I'm not sure how I can make it work. I would appreciate any help.
Best,
Tobias
0 Comments
Answers (0)
See Also
Categories
Find more on Boundary Conditions in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!