Complex 3D, Boundary normals for point cloud, traction condition #1633
Replies: 6 comments 15 replies
-
|
You need to compute using some method by yourself, and then pass into DeepXDE. We will have a paper on arXiv in this or next week about 3D complex boundary. |
Beta Was this translation helpful? Give feedback.
-
|
Hello @lululxvi , For this issue, I did some tests on a 2D plate with a simple circular curve. In the first case, I defined the normals through the torch.atan2 function to define the angles as shown: Here n1 and n2 are calculated inside the function using simple cos and sines. Second, I am calculating the normals for my boundary and saved in a 'CSV' file and here I am calling it and defining it through tensor for multiplication (the commented line). I ran both the cases for 50,000 iterations and found out that the loss for the second case converges very slowly compared to first case and also takes more time. After 50000, for first case: loss = Why is this happening? Is there any other way of defining normals? I have a point cloud, and I am using pyvista library for visualization and computing normals through its function. This loss and time is important for training 3D geometry. |
Beta Was this translation helpful? Give feedback.
-
|
@ruchitkini please check our repo based on DeepXDE (https://github.com/imcs-compsim/pinns_for_comp_mech). You will find what you need. It does not yet include 3d examples, but it should be very straightforward to implement since we use GMSH to generate geometries, which includes already boundary normals. @maxdanwitz |
Beta Was this translation helpful? Give feedback.
-
|
Hey getting boundary normals is very easy. Just use stl geometry. The main challenge is to obtain the derivative for the Neumann or Robin BC. This probably requires fiddling with the source code. I am currently implementing the same which I am calling PointSetNeumannBC which follows PointSetBC. |
Beta Was this translation helpful? Give feedback.
-
|
Hello again, I am still not able to get the indices for the required boundary points so that I can fit my normals into traction calculation as got some reference from repo provided by @tsarikahin . |
Beta Was this translation helpful? Give feedback.
-
|
Hi @praksharma, Could you please share the PointSetNeumannBC function that you have implemented, if you don't mind? Thanks a lot, |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Hello @lululxvi and deepxde community,
I would like to know if there is any way to calculate boundary normal for arbitrary 3D geometry implemented using PointCloud in deepxde. I am trying to do linear elasticity analysis and for traction conditions, I need the normal vector. Could anyone suggest how can that be done?
Currently, I am trying the finite difference approach, where the tangent can be calculated using the nearby points and then a normal vector from the tangent. It works well for 2D with a sufficient number of points but I am facing problems to generalise it on 3D geometry. Any help would be appreciated.
Thank you.
Beta Was this translation helpful? Give feedback.
All reactions