Strange behaviour of pde-toolbox in labeling or a bug?

Hi, I'm new to pde-toolbox but this is kinda weird to me:
let's draw some rectangles in PDE Tollbox like:
but when I export Geometry Description and ... from Draw menu to matlab workspace and then decompose them using:
[g,bt] = decsg(gd,sf,ns) ;
plotting the resulted geometry by:
pdegplot(g)
this is what I get:
as could be seen, labels are randomly changed! any idea of what is happening here?
I'm using Matlab R2012b.

 Accepted Answer

Hi,
Your geometry is unusual in that none of the rectangles intersect each other. The algorithm in function decsg is designed to generally compute the intersections among the input entities and produce a completely new set of regions that are only related to the input entities. Generally, the number of output entities does not match the number of input entities and, as you have discovered, decsg assigns region numbers to these output entities in a way that is not easy to predict.
Bill

2 Comments

Thanks for your response Bill,
As a matter of fact the domain of my problem consists of many rectangular sub-domains which their side borders coincide with the neighboring sub-domains. Constructing 'c' and 'a' matrices, I need to know each sub-domain number to assign the correct values. For example for sub-domain 'R6' I have a sub-domain-number related function, 'F6' to assign.
So how can I access to the predefined(unchanged) sub-domain names(/numbers)? (as I know a common way is to use the 4th row of matrix 't' from 'initmesh' outputs, right?)
the problem domain and their changed sub-domain labels:

Sign in to comment.

More Answers (1)

Hi,
The way I have dealt with the problem of defining coefficient matrices when I have had geometries similar to yours is to simply ignore the sub-domain numbers. I write a function to define the coefficient as shown in this doc page:
This page also shows how you can compute the centroid of each triangle inside this function. Then you simply assign coefficient values based on this location. In your case you can use the x-coordinate to determine which rectangle the element is in.
Hope that helps.
Bill

3 Comments

Thanks a lot Bill for your help,
Finally I could assign coefficient values correctly but have run into a new problem. Would you or any body else suggest me the right way?
say it in words, the equation to be solved differs slightly in x- and y- directions. translated to matlab format, the 'a' coefficient is zero in x- direction but has some values in y- direction. How can I address this to the pde toolbox? Am I dealt with a system of two equations? if yes what can I do about 'u', which is just a scalar?
thanks,
Mohammad
Without knowing the physics of your problem, I can't really say much definitive. It is not uncommon to have a single scalar equation for u and a "c" coefficient that has different terms in the x and y directions to reflect different properties in those directions. But, for a single PDE, the "a" coefficient is also a scalar. If you have more than one value for "a", I would guess you are missing an equation. That would mean u is a vector with two components.
Bill
This is the equation of my interest actually:
the water flow equation in a porous media. Domain is in x-z plane.
How can I model it by Pde toolbox?
thanks,
Mohammad

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!