When solving a PDE, how to assign different conductivity values to different volume regions?
2 views (last 30 days)
Show older comments
Hi,
I am trying to solve an electrostatic PDE, where the electrical conductivity changes within the volume of the solution.
For example, I have a cylinder, with two electrodes at the top and bottom of the cylinder. The conductivity however changes radially within the cylinder.
My current pseudocode:
%Create PDE model
model = createpde();
sensor = importGeometry(model,modelName(ii));
figure
pdegplot(model,'FaceLabels','on');
%Apply PDE coefficients
k = 1; %k is the conductivity in S/mm, but only relevent if using neumann boundary conditions
specifyCoefficients(model,'m',0,'d',0,'c',k,'a',0,'f',0);
%Apply boundary conditions
%Positive Ring
applyBoundaryCondition(model,'dirichlet','face',[posRing1(ii)],'u',0);
%Negative Ring
%applyBoundaryCondition(model,'dirichlet','face',negRing(ii),'u',1);
Is it possible to have the k value vary for different regions? I've found a solution online for thermal diffusion problems, but instead of rewriting my whole program using the thermal analogy, I assumed there is a method for generic PDE problems.
What would be nice is if I could apply the conductivity values like how is done for the boundary conditions.
Any help is greatly appreciated.
0 Comments
Accepted Answer
Ravi Kumar
on 13 Apr 2018
Hi Mark,
You sure can!
Use 'Cell' parameter in specifyCoefficients, like:
specifyCoefficients(model,'Cell',1,'m',0,'d',0,'c',k1,'a',0,'f',0);
specifyCoefficients(model,'Cell',2,'m',0,'d',0,'c',k2,'a',0,'f',0);
You can plot the geometry with Cell labels on using:
pdegplot(model,'CellLabels','on')
-Ravi
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!