Boundary condition

Asked by Sanjib Mondal

Hello Support Team,
Is there any other way to define the boundary condition rather than writing some code like WhereZero(.....)?
In Details: I have a 3D cubic mesh where there is a surface tag 'Flaw' (very complex shape). Now I want to use that surface (Flaw) as my boundary. So is there any easy way to use that surface tag boundary condition rather than defining the equation of the flaw inside WhereZero(..)? Thank you for your time and I am looking forward to you.
Regards,
Sanjib Mondal

Question information

Language:
English Edit question
Status:
Solved
For:
esys-escript Edit question
Assignee:
No assignee Edit question
Solved by:
Lutz Gross
Solved:
Last query:
Last reply:
Revision history for this message
Lutz Gross (l-gross) said :
#1

Do you want to apply a Dirichlet (u=0) or Neumann boundary condition or is this in fact a contact condition?

PS: we are encouraging users to use https://github.com/esys-escript/esys-escript.github.io/issues for Q&A.

Revision history for this message
Sanjib Mondal (s-mondal) said :
#2

Hello Lutz,
Thank you for your reply.
I used the following boundary condition,
𝜎i𝑗ni = 0,
where (ni) is an outer normal field.

Revision history for this message
Lutz Gross (l-gross) said :
#3

When you say you want to use "surface (Flaw)" do you have a meshed both faces of the flaw ? Or is the flaw meshed by a single surface?

Revision history for this message
Sanjib Mondal (s-mondal) said :
#4

Hello Lutz,
It has 4 different surfaces. However, in the mesh file, I have defined it in a single physical surface by the name Flaw. Finally, I want to use that Flaw surface as my boundary condition. Thanks.

Revision history for this message
Lutz Gross (l-gross) said :
#5

I guess my question was not very clear:
Let's assume the flaw is horizontal to simply things: To define a boundary in the strict sense of the word the flaw is a hole of some thickness or even zero thickness. Did you mesh the top and bottom face of that flaw even if the thickness is (almost) zero - something like this:

                          start end point of flaw
  top face o------o-----o-----o-----o
  bottom face \----o-----o----o-------/
the flaw

  o-----o is an element.

If this is the situation and you want to apply 𝜎i𝑗ni = 0 there is nothing you need to do even if the flaw has zero thickness and FE nodes across the gap of the flaw don't match. This condition is automatically being applied but keep in mind that there is no constraint on the displacement so contact of faces or penetration is *not* model.

Revision history for this message
Sanjib Mondal (s-mondal) said :
#6

Hello Lutz,
Thank you for your nice clarification. I understand that for applying 𝜎i𝑗ni = 0 in the boundary I have nothing to do as it will automatically apply in my boundary surface.

Sorry, I should say at the beginning that I want to apply displacement in my flaw boundary (The flaw is completely surrounded by some elements as it is in the middle of my rectangular mesh and it is not visible from the outside of this rectangular block) which I can do by defining the equation of that flaw inside WhereZero(....) condition.

However, my current flaw is a Funnel-shaped which has 6 different surfaces (top, bottom and four other side surfaces) and I want to apply the displacement only in the top and 4 other side surfaces (not at the bottom surface). That's why I made a physical surface named Flaw in my mesh with only the Top and 4 other side surfaces of my Funnel-shaped flaw where I want to apply the displacement.

As the equation for the Funnel is complex to define inside the WhereZero() condition, I am searching an alternative way (if possible) to apply the displacement in the Tagged surface (Flaw) in my mesh directly. Thank you for your help.

Revision history for this message
Best Lutz Gross (l-gross) said :
#7

You would not used whereZero but tagging for this but you need to convert the surface element tagging into
node tagging:

from esys.escript.pdetools import MaskFromBoundaryTag
m=MaskFromBoundaryTag(domain, "Flaw")

Revision history for this message
Sanjib Mondal (s-mondal) said :
#8

Hello Lutz,

Great !! This is exactly what I am looking for. Thank you very much for your help.

Regards,
Sanjib

Revision history for this message
Sanjib Mondal (s-mondal) said :
#9

Thanks Lutz Gross, that solved my question.