Drexel dragonThe Math ForumDonate to the Math Forum



Search All of the Math Forum:

Views expressed in these public forums are not endorsed by Drexel University or The Math Forum.


Math Forum » Discussions » Software » comp.soft-sys.matlab

Topic: pde toolbox
Replies: 13   Last Post: Apr 23, 2013 4:29 PM

Advanced Search

Back to Topic List Back to Topic List Jump to Tree View Jump to Tree View   Messages: [ Previous | Next ]
srao Rao

Posts: 29
Registered: 7/16/10
Re: pde toolbox
Posted: Apr 23, 2013 12:21 PM
  Click to see the message monospaced in plain text Plain Text   Click to reply to this topic Reply

Alan_Weiss <aweiss@mathworks.com> wrote in message <kl5tsl$7hn$1@newscl01ah.mathworks.com>...
> On 4/22/2013 6:13 PM, Sashankh Rao wrote:
> > Alan_Weiss <aweiss@mathworks.com> wrote in message
> > <kj1cvc$fop$1@newscl01ah.mathworks.com>...

> >> On 3/25/2013 2:41 PM, Sashankh Rao wrote:
> >> > "Sashankh Rao" wrote in message >
> >> <kiq3me$m50$1@newscl01ah.mathworks.com>...
> >> >> "Bill Greene" wrote in message >>
> >> <ki2os3$gna$1@newscl01ah.mathworks.com>...
> >> >> > "Sashankh Rao" wrote in message >>
> >> <ki291f$56f$1@newscl01ah.mathworks.com>...
> >> >> > > > I then mesh it: [p,e,t] = initmesh(g);
> >> >> > > Then I create my boundary matrix using [Q,G,H,R] =
> >> pdebound(p2,e2);
> >> >> > > I then assemble other matrices using [K,M,F] = assema(p,t,c,a,f);
> >> >> > > Finally I solve the problem using u = assempde(K,M,F,Q,G,H,R);

> >> >> > > > Ah, I see that the documentation page I pointed you to
> >> doesn't >> > show you what to do with the pdebound function once
> >> you've created >> it--

> >> >> > sorry.
> >> >> > > That function is actually called by the PDE Toolbox routines--
> >> >> not by you.
> >> >> > If you don't want to do anything fancy, but simply want a
> >> solution, >> do this:
> >> >> > > b=@pdebound; % the "pdebound" function can have any name
> >> >> > % also define p,e,t,c,a,f
> >> >> > u=assempde(b,p,e,t,c,a,f);

> >> >> > > Regards,
> >> >> > > Bill
> >> >> > > ------------------------------------------
> >> >> > > As per the link below the size of the Q matrix in the boundary

> >> >> file is (N^2 ne) which for a one-dimensional system is (1 ne),
> >> where >> ne is the number of edges in the mesh. > > > > >>
> >> http://www.mathworks.com/help/pde/ug/boundary-conditions-for-scalar-pde.html

> >> >> > > > > However the size for the K and M matrices is (Np Np) where
> >> Np >> is the number of nodes in the matrix.
> >> >> > > > > So I see that the K matrix and Q matrix are not of the
> >> same >> dimensions and hence the error. I am not able to figure out
> >> how to >> fix this problem. Any help will be appreciated very much.

> >> >> > > > > Thank you.
> >> >> > > > > "Bill Greene" wrote in message >>

> >> <khfgev$sgb$1@newscl01ah.mathworks.com>...
> >> >> > > > Hi,
> >> >> > > > > > > "Sashankh Rao" wrote in message >>
> >> <khdu9o$j3c$1@newscl01ah.mathworks.com>...
> >> >> > > > > Using the Matlab pde toolbox I obtain a solution to the >>
> >> Poisson equation for a given geometry using dirichlet boundary >>
> >> conditions. First, I want to determine the gradient at all the >>
> >> boundary nodes. Is this possible using the toolbox? Second, I want to

> >> >> use these gradient values as an input boundary condition for the
> >> same >> boundary to solve a different equation (same geometry). Is
> >> this >> possible to do using the toolbox? Thanks.

> >> >> > > > > > > Yes, this is definitely possible. I'll try to point
> >> you >> in the right direction.
> >> >> > > > > > > The function pdegrad can be used to calculate the >>
> >> gradient of the solution at the
> >> >> > > > element centroids.
> >> >> > > > >>
> >> http://www.mathworks.com/help/pde/ug/pdegrad.html?searchHighlight=pdegrad
> >> >> > > > Then the function pdeprtni can be used to interpolate these
> >> >> centroid values back
> >> >> > > > to the nodes.
> >> >> > > > http://www.mathworks.com/help/pde/ug/pdeprtni.html

> >> >> > > > > > > Using these gradient values in the boundary conditions
> >> >> will require you to write your
> >> >> > > > own boundary condition function, referred to as a "boundary
> >> >> file" in the PDE
> >> >> > > > Toolbox documentation.
> >> >> > > > http://www.mathworks.com/help/pde/ug/pdebound.html

> >> >> > > > > > > This documentation page has some examples of how to
> >> write >> such a function.
> >> >> > > > >>
> >> http://www.mathworks.com/help/pde/ug/boundary-conditions-for-scalar-pde.html
> >> >> > > > > > > Bill
> >> >>
> >> >> Hi Bill,
> >> >>
> >> >> I have another question related to the above thread.
> >> >> I am trying to impose the Neumann condition at nodes on the

> >> boundary. >> To do this I need to pass additional information to
> >> pdebound as shown >> below.

> >> >>
> >> >> function [qmatrix,gmatrix,hmatrix,rmatrix] = >>

> >> pdebound2(p,e,u,time,u2bn,loc)
> >> >>
> >> >> where u2bn and loc are the additional data. However, I get the >>

> >> following error in trying to do so:
> >> >>
> >> >> Input argument "u2bn" is undefined.
> >> >> Error in ==> pdebound2 at 13
> >> >>
> >> >> Looks like pdebound will not accept additional data. I am using
> >> >> b = @pdebound;
> >> >>
> >> >> to assemble my boundary matrix.
> >> >>
> >> >> Thanks for taking time to help me. Really appreciate it.
> >> >>
> >> >> Sashankh

> >> >
> >> > Hi Bill,
> >> >
> >> > I think I figured this out. I declared my additional data as global
> >> > variables. Thanks.
> >> >
> >> > Sashankh

> >>
> >> I'm glad that global variables work for you. But there are other ways
> >> of passing parameters that are less rigid. See, for example,
> >> http://www.mathworks.com/help/optim/ug/passing-extra-parameters.html#bskkr4z
> >>
> >>
> >> Alan Weiss
> >> MATLAB mathematical toolbox documentation

> >
> > Hi Alan,
> >
> > I just saw your message. Thanks for the tip. I have another question
> > for you and Bill.
> >
> > I have got my program to run correctly. However, I seem to require a
> > highly refined mesh to arrive at the desired accuracy. Now I am
> > looking to optimize it. Is it possible to use quadratic finite
> > elements (triangular) in the pde toolbox instead of the linear
> > elements (triangular) which it uses by default?
> > Thanks for your help,
> > Sashankh

>
> As far as I know, you cannot use quadratic finite elements.
>
> Have you tried jiggling the mesh a few times? That often helps give
> better accuracy. And, if you have MATLAB R2013a, you can try the new
> meshing algorithm, though I have no idea whether that will help.
>
> Good luck,
>
> Alan Weiss
> MATLAB mathematical toolbox documentation


Hi Alan,

I did try to jiggle the mesh a few times. Currently, the global convergence rate of my solution is first order. Hence, I need to refine my mesh a number of times before I can arrive at the desired accuracy. I would like to have second order convergence. Any suggestion as to how I can do this using the pde toolbox? Thanks.



Point your RSS reader here for a feed of the latest messages in this topic.

[Privacy Policy] [Terms of Use]

© Drexel University 1994-2014. All Rights Reserved.
The Math Forum is a research and educational enterprise of the Drexel University School of Education.