MATLAB Answers

solving eigenvalues PDE problem

3 views (last 30 days)
Haya M
Haya M on 20 Mar 2020
Commented: Ravi Kumar on 23 Mar 2020
I'm working on solving an eigenvalue problem on a domain . I'm intersted on the eigenvalues on the left hand side of the domain. Hence, I used the pdetool to export the geometry and then generate the mesh (p,e,t) and map it to a certain map. Then I used the syntax 'solvepdeeig' to solve the problem, but Matlab can't accept my input i.e. solvepdeeig(b,e,p,t,1,q,1,r) says there is an erro. I think it only accepts solvepdeeig(model,evr), is there any way to turn this to a model or is there any other syntax to work on with the eigenvalues problems? Especially because I'm looking to extract the finite elements matrices after solving the PDE?
[SL: fixed formatting]

  0 Comments

Sign in to comment.

Accepted Answer

Ravi Kumar
Ravi Kumar on 21 Mar 2020
Hi Haya,
You need to setup the problem using new workflow:
model = createdpde;
Then assign the geometry to the model using decsg and geometryFromEdges functions, first export the geomery using the option in Draw menu of pdetool and then execute the following commands:
g = decsg(gd,sf,ns)
geometryFromEdge(model,g);
The fillin the rest of the details of the model using specifyCoefficient and applyBoundaryConditions function, check for the documentation on the syntax.
Once you are done defining the model, you can generate the mesh and solve for eigenvalue as:
generateMesh(model)
Reign = solvepdeeig(model,[-100, upperFreqLimit])
Regards,
Ravi

  5 Comments

Show 2 older comments
Ravi Kumar
Ravi Kumar on 21 Mar 2020
If you click OK, then the geometry data matrices (gd, sf, and ns) are exported to workspace. You can then execute the decsg command.
Ravi Kumar
Ravi Kumar on 23 Mar 2020
Hi Haya,
Were you able to get past this error? I don't think you need to enter anything. Looks like something might have been corrupted in the process. Try saving the setup into a file and reloading in a fresh session of the pdetool. Alternatively, if your geometry is simple, you can create it directly using the decsg() command, check the doc page of decsg().
Regards,
Ravi

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!