PDE solver: Using mixed boundary conditions along curved domain boundaries

2 次查看(过去 30 天)
Dear all,
I am working with a 2-dimensional linearly elastic problem. For PDEs build with
model = createpde(2)
etc. one can specify mixed boundary conditions. If I consider a rectangular box with boundaries aligned with the x and y coordinate system then a boundary condition (say along an edge parallel to the x-axis)
applyBoundaryCondition(model,'mixed',...
'Edge',1,'u',0.05,'EquationIndex',2,... % Dirichlet part y-displacement
'q',zeros(2),'g',[0; 0]); % Neumann part in x-direction (no tangential stress)
fixes the normal displacement of the boundary (in y-direction in that case) as well as the tangential stress at the boundary. Importantly, the 'EquationIndex' argument that has to be used refers to the Cartesian y-displacement component to which the Dirichlet condition is applied in this example.
Now I was wondering if one can use that so the same physics can be achieved along a curved domain boundary (fixing normal displacements and tangential stress simultaneously), say "Edge 1" is now is the boundary of a disk. The problem is that using the same syntax my understanding is that I would still fix all along the curved boundary, but the analog boundary conditon to the rectangular case described at the beginning would now actually be (for components in cylindrical coordinates) and (fixing radial (normal) displacement and tangential stress), which would requires to constrain linear combinations of the Cartesian Components accordingly. Is there any way to achieve that with the current PDE Toolbox Capacities?
Thanks in advance for any thoughts on this.

回答(1 个)

Avni Agrawal
Avni Agrawal 2024-2-6
I understand that you want to achieve similar boundary conditions along curved boundaries as you do along straight boundaries. However, you'll need to adapt the boundary condition specification to account for the differences in coordinate systems. For a curved boundary, such as the boundary of a disk, you'll need to express the boundary conditions in terms of the appropriate coordinate system, such as cylindrical coordinates.
Here's a simplified example of how you can apply mixed boundary conditions along a curved boundary using cylindrical coordinates:
model = createpde(2);
R = 1; % Radius of the disk
geometryFromEdges(model,@circleg);
% Define the boundary conditions in cylindrical coordinates
applyBoundaryCondition(model,'mixed',...
'Edge',1,'r',0.05,'EquationIndex',2,... % Radial displacement
'q',zeros(2),'g',[0; 0]); % Tangential stress
% Solve the PDE
generateMesh(model);
results = solvepde(model);
In this code snippet, the boundary condition for the curved boundary (Edge 1) fixes the radial displacement (normal displacement in cylindrical coordinates) and the tangential stress. Adjust the values and equations according to your specific problem requirements.
I hope this helps!

Community Treasure Hunt

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

Start Hunting!

Translated by