Discussion Closed This discussion was created more than 6 months ago and has been closed. To start a new discussion with a link back to this one, click here.

What is the difference between displacement and normal displacement?

Please login with a confirmed email address before reporting spam

Dear all,

I am investigating the deformation of a square thin plate with four fixed sides subjected to a uniform load.

I modeled the thin plate using shell units and got the results at steady state.

The simulation results are in the attached file. Figure 1 shows the displacement and Figure 2 shows the normal displacement.

My problem is that the normal displacement doesn't seem to cause any surface deformation. And it is not pointing in a direction perpendicular to the sheet.

What is the difference between normal displacement and displacement?

Thank you for your help.



15 Replies Last Post 12 ott 2023, 23:53 GMT-4
Henrik Sönnerlind COMSOL Employee

Please login with a confirmed email address before reporting spam

Posted: 1 year ago 3 ott 2023, 09:15 GMT-4

The variable named Displacement of shell normals ( not Normal displacement ) is a quantity measuring the rotation (in terms of displacement of tip of normal vector). It is the rotational degree of freedom in the shell formulation. Please refer to the theory section in the Shell chapter for more details.

-------------------
Henrik Sönnerlind
COMSOL
The variable named *Displacement of shell normals* ( not *Normal displacement* ) is a quantity measuring the rotation (in terms of displacement of tip of normal vector). It is the rotational degree of freedom in the shell formulation. Please refer to the theory section in the Shell chapter for more details.

Please login with a confirmed email address before reporting spam

Posted: 1 year ago 3 ott 2023, 09:38 GMT-4

The variable named Displacement of shell normals ( not Normal displacement ) is a quantity measuring the rotation (in terms of displacement of tip of normal vector). It is the rotational degree of freedom in the shell formulation. Please refer to the theory section in the Shell chapter for more details.

Thank you very much for your answer, it helped me a lot!

If Displacement of shell normals doesn't mean Normal displacement, then where can I find Normal displacement?

I need the displacement perpendicular to the initial shell surface, but I can't find the variable Normal displacement in the results.

>The variable named *Displacement of shell normals* ( not *Normal displacement* ) is a quantity measuring the rotation (in terms of displacement of tip of normal vector). It is the rotational degree of freedom in the shell formulation. Please refer to the theory section in the Shell chapter for more details. Thank you very much for your answer, it helped me a lot! If Displacement of shell normals doesn't mean Normal displacement, then where can I find Normal displacement? I need the displacement perpendicular to the initial shell surface, but I can't find the variable Normal displacement in the results.

Please login with a confirmed email address before reporting spam

Posted: 1 year ago 4 ott 2023, 02:42 GMT-4

I think to produce the plot you want, you simply need to create a plot of u, v or w (depending on whether your normal direction is the global x, y or z direction respectively... looks like z from the attachment above, in which case plot w).

Be sure to enable a displacement node under your plot so that you can see the physical displacement, (you can scale this displacement to achieve the desired graphical result).

I think to produce the plot you want, you simply need to create a plot of u, v or w (depending on whether your normal direction is the global x, y or z direction respectively... looks like z from the attachment above, in which case plot w). Be sure to enable a displacement node under your plot so that you can see the physical displacement, (you can scale this displacement to achieve the desired graphical result).

Henrik Sönnerlind COMSOL Employee

Please login with a confirmed email address before reporting spam

Posted: 1 year ago 4 ott 2023, 02:43 GMT-4

For simple cases, for example when the shell is flat in the XY-plane, then the easiest is to just plot the displacement in the Z-direction (w).

But for a general curved shell, you have to plot the dot product between the displacement field and the shell normal. Either you create it manually using an expression like shell.anX*u+shell.anY*v+shell.anZ*w, or you create a transformed displacement vector using Definitions -> Variable Utilities -> Vector Transform.

-------------------
Henrik Sönnerlind
COMSOL
For simple cases, for example when the shell is flat in the XY-plane, then the easiest is to just plot the displacement in the Z-direction (*w*). But for a general curved shell, you have to plot the dot product between the displacement field and the shell normal. Either you create it manually using an expression like *shell\.anX\*u+shell\.anY\*v+shell\.anZ\*w*, or you create a transformed displacement vector using **Definitions** -> **Variable Utilities** -> **Vector Transform**.

Please login with a confirmed email address before reporting spam

Posted: 1 year ago 4 ott 2023, 07:58 GMT-4

For simple cases, for example when the shell is flat in the XY-plane, then the easiest is to just plot the displacement in the Z-direction (w).

But for a general curved shell, you have to plot the dot product between the displacement field and the shell normal. Either you create it manually using an expression like shell.anX*u+shell.anY*v+shell.anZ*w, or you create a transformed displacement vector using Definitions -> Variable Utilities -> Vector Transform.

Many thanks for your kind and warm help. Your answers are concise and professional and solved my problem perfectly.

Best Regards, Jake

>For simple cases, for example when the shell is flat in the XY-plane, then the easiest is to just plot the displacement in the Z-direction (*w*). > >But for a general curved shell, you have to plot the dot product between the displacement field and the shell normal. Either you create it manually using an expression like *shell\.anX\*u+shell\.anY\*v+shell\.anZ\*w*, or you create a transformed displacement vector using **Definitions** -> **Variable Utilities** -> **Vector Transform**. Many thanks for your kind and warm help. Your answers are concise and professional and solved my problem perfectly. Best Regards, Jake

Please login with a confirmed email address before reporting spam

Posted: 1 year ago 4 ott 2023, 08:05 GMT-4
Updated: 1 year ago 4 ott 2023, 08:08 GMT-4

I think to produce the plot you want, you simply need to create a plot of u, v or w (depending on whether your normal direction is the global x, y or z direction respectively... looks like z from the attachment above, in which case plot w).

Be sure to enable a displacement node under your plot so that you can see the physical displacement, (you can scale this displacement to achieve the desired graphical result).

Thanks for the detailed response, it was very helpful.

Best Regards, Jake

>I think to produce the plot you want, you simply need to create a plot of u, v or w (depending on whether your normal direction is the global x, y or z direction respectively... looks like z from the attachment above, in which case plot w). > >Be sure to enable a displacement node under your plot so that you can see the physical displacement, (you can scale this displacement to achieve the desired graphical result). Thanks for the detailed response, it was very helpful. Best Regards, Jake

Please login with a confirmed email address before reporting spam

Posted: 1 year ago 4 ott 2023, 11:03 GMT-4

For simple cases, for example when the shell is flat in the XY-plane, then the easiest is to just plot the displacement in the Z-direction (w).

But for a general curved shell, you have to plot the dot product between the displacement field and the shell normal. Either you create it manually using an expression like shell.anX*u+shell.anY*v+shell.anZ*w, or you create a transformed displacement vector using Definitions -> Variable Utilities -> Vector Transform.

Dear Henrik,

It seems I have another problem.

Do the variables in the expression (shell.anX, shell.anY, shell.anZ) refer to the normal direction before the deformation or the normal direction after the deformation?

This may significantly affect the results because after deformation the material particles are no longer located in the direction normal to their initial position.

I looked up these variables in COMSOL, but there is no detailed description of them there.

It seems that in COMSOL, the coordinates after deformation (material coordinates) are denoted by uppercase (X,Y,Z) and the coordinates before deformation (spatial coordinates) by lowercase (x,y,z).

The relationship between them is (X,Y,Z)=(x,y,z)+(u,v,w). So (shell.anX, shell.anY, shell.anZ) represents the normal after deformation because it's uppercase? But I can't find lowercase (shell.anx, shell.any, shell.anz).

I am really confused about coordinates in COMSOL.

Best,
Jake

>For simple cases, for example when the shell is flat in the XY-plane, then the easiest is to just plot the displacement in the Z-direction (*w*). > >But for a general curved shell, you have to plot the dot product between the displacement field and the shell normal. Either you create it manually using an expression like *shell\.anX\*u+shell\.anY\*v+shell\.anZ\*w*, or you create a transformed displacement vector using **Definitions** -> **Variable Utilities** -> **Vector Transform**. Dear Henrik, It seems I have another problem. Do the variables in the expression (*shell.anX, shell.anY, shell.anZ*) refer to the normal direction before the deformation or the normal direction after the deformation? This may significantly affect the results because after deformation the material particles are no longer located in the direction normal to their initial position. I looked up these variables in COMSOL, but there is no detailed description of them there. It seems that in COMSOL, the coordinates after deformation (material coordinates) are denoted by uppercase (X,Y,Z) and the coordinates before deformation (spatial coordinates) by lowercase (x,y,z). The relationship between them is *(X,Y,Z)=(x,y,z)+(u,v,w)*. So (*shell.anX, shell.anY, shell.anZ*) represents the normal after deformation because it's uppercase? But I can't find lowercase (*shell.anx, shell.any, shell.anz*). I am really confused about coordinates in COMSOL. Best, Jake

Henrik Sönnerlind COMSOL Employee

Please login with a confirmed email address before reporting spam

Posted: 1 year ago 5 ott 2023, 02:22 GMT-4

If you look at the description of, for example, shell.anX, it is Undeformed normal field, X-component. It is the normal in the original configuration.

As for the relation between material and spatial frame, I suggest that you read the section Analysis of Deformation in the Structural Mechanics Module User's Guide. It is quite the opposite as to what you assume above.

-------------------
Henrik Sönnerlind
COMSOL
If you look at the description of, for example, *shell.anX*, it is *Undeformed normal field, X-component*. It is the normal in the original configuration. As for the relation between material and spatial frame, I suggest that you read the section **Analysis of Deformation** in the **Structural Mechanics Module User's Guide**. It is quite the opposite as to what you assume above.

Please login with a confirmed email address before reporting spam

Posted: 1 year ago 5 ott 2023, 22:23 GMT-4
Updated: 1 year ago 6 ott 2023, 06:08 GMT-4

If you look at the description of, for example, shell.anX, it is Undeformed normal field, X-component. It is the normal in the original configuration.

As for the relation between material and spatial frame, I suggest that you read the section Analysis of Deformation in the Structural Mechanics Module User's Guide. It is quite the opposite as to what you assume above.

Thank you most sincerely, Henrik.

I carefully read the User's Guide and your Blog, 'What Is Geometric Nonlinearity?' and found the answer to the coordinate system.

Now, I have another question, since there are two sets of coordinate independent variables in COMSOL, (x,y,z) and (X,Y,Z), when I use a dependent variable, which coordinate independent variable does it refer to? When both sets of independent variables appear in an expression, how does COMSOL handle it?

For example, in the case of deformation of a shell, I would like to get the dot product of the original coordinates of the shell (X,Y,Z) and the coordinates of the shell after the deformation (x,y,z) and use it for coupling to other physical fields. The expression would be X·x+Y·y+Z·z, there are 6 independent variables in this expression. When I fill this expression into the interface of other physical fields, how does comsol determine the value of this expression at a point in space?

Is there a way for user to read the code in COMSOL? That way I can understand more intuitively how it works.

Best Regards,
Jake

>If you look at the description of, for example, *shell.anX*, it is *Undeformed normal field, X-component*. It is the normal in the original configuration. > >As for the relation between material and spatial frame, I suggest that you read the section **Analysis of Deformation** in the **Structural Mechanics Module User's Guide**. It is quite the opposite as to what you assume above. Thank you most sincerely, Henrik. I carefully read the User's Guide and your Blog, 'What Is Geometric Nonlinearity?' and found the answer to the coordinate system. Now, I have another question, since there are two sets of coordinate independent variables in COMSOL, (x,y,z) and (X,Y,Z), when I use a dependent variable, which coordinate independent variable does it refer to? When both sets of independent variables appear in an expression, how does COMSOL handle it? For example, in the case of deformation of a shell, I would like to get the dot product of the original coordinates of the shell (X,Y,Z) and the coordinates of the shell after the deformation (x,y,z) and use it for coupling to other physical fields. The expression would be *X·x+Y·y+Z·z*, there are 6 independent variables in this expression. When I fill this expression into the interface of other physical fields, how does comsol determine the value of this expression at a point in space? Is there a way for user to read the code in COMSOL? That way I can understand more intuitively how it works. Best Regards, Jake

Henrik Sönnerlind COMSOL Employee

Please login with a confirmed email address before reporting spam

Posted: 1 year ago 6 ott 2023, 08:49 GMT-4

I don’t understand the physical meaning of the dot product that you suggest.

However, you must think of it this way: Any node in the mesh has one material coordinate and one spatial coordinate. The latter changes as an effect of deformation. So when you write X*x it means X*(X+u) = X^2 + X*u

In principle, variables refer to one of actually four frames. However, it does not end there: Fields can be contravariant or covariant in the ordinary tensor algebra meaning (in case non-orthonormal coordinate systems are used).

Some quantities do not have a natural 'frame'. The most obvious case is the displacement, since it actually defines the transformation between material frame and spatial frame.

In most cases, all of these considerations are subtleties that the end user seldom has to worry about. The exception is when working with advanced equation based modeling.

A rather unique feature in COMSOL, when compared to other commercial software, is that you can actually inspect the implementation details. Switch on Equation View from Show More Options. Under each node in the Model Builder tree, you can see variable definitions, weak contributions, constraints, etc. You can also use Ctrl+F to search for variable names and find their definitions.

-------------------
Henrik Sönnerlind
COMSOL
I don’t understand the physical meaning of the dot product that you suggest. However, you must think of it this way: Any node in the mesh has one material coordinate and one spatial coordinate. The latter changes as an effect of deformation. So when you write X\*x it means X\*(X+u) = X^2 + X\*u In principle, variables refer to one of actually four frames. However, it does not end there: Fields can be contravariant or covariant in the ordinary tensor algebra meaning (in case non-orthonormal coordinate systems are used). Some quantities do not have a natural 'frame'. The most obvious case is the displacement, since it actually defines the transformation between material frame and spatial frame. In most cases, all of these considerations are subtleties that the end user seldom has to worry about. The exception is when working with advanced equation based modeling. A rather unique feature in COMSOL, when compared to other commercial software, is that you can actually inspect the implementation details. Switch on *Equation View* from *Show More Options*. Under each node in the Model Builder tree, you can see variable definitions, weak contributions, constraints, etc. You can also use Ctrl+F to search for variable names and find their definitions.

Please login with a confirmed email address before reporting spam

Posted: 1 year ago 8 ott 2023, 06:18 GMT-4

I don’t understand the physical meaning of the dot product that you suggest.

However, you must think of it this way: Any node in the mesh has one material coordinate and one spatial coordinate. The latter changes as an effect of deformation. So when you write X*x it means X*(X+u) = X^2 + X*u

In principle, variables refer to one of actually four frames. However, it does not end there: Fields can be contravariant or covariant in the ordinary tensor algebra meaning (in case non-orthonormal coordinate systems are used).

Some quantities do not have a natural 'frame'. The most obvious case is the displacement, since it actually defines the transformation between material frame and spatial frame.

In most cases, all of these considerations are subtleties that the end user seldom has to worry about. The exception is when working with advanced equation based modeling.

A rather unique feature in COMSOL, when compared to other commercial software, is that you can actually inspect the implementation details. Switch on Equation View from Show More Options. Under each node in the Model Builder tree, you can see variable definitions, weak contributions, constraints, etc. You can also use Ctrl+F to search for variable names and find their definitions.

Please accept my endless gratitude, Henrik.

In fact, the dot product I suggested does not contain any physical meaning and is just an example of the problem I am currently experiencing.

Let me describe my problem by measuring the distances before and after shell deformation as an example:

A square thin shell with one side fixed. Apply a force perpendicular to the direction of the shell surface on the opposite side of the fixed side and the shell will bend and deform. I need to get the distance function D between the deformed shell and the original shell plane. However, if I use the undeformed coordinates (X,Y) as independent variables, the distance D(X0,Y0) at the point (X0,Y0) cannot be expressed in terms of the coordinates (X0,Y0) of that point.

The following pictures show the expression of distance D under different independent variables. As you can see, D(X0,Y0) can only be expressed by the coordinates of another point(X1,Y1) (i.e. the expression you gave).
Expression of height function D with different independent variables
Fig.1 Expression of height function D with different independent variables

Best Regards,
Jake

>I don’t understand the physical meaning of the dot product that you suggest. > >However, you must think of it this way: Any node in the mesh has one material coordinate and one spatial coordinate. The latter changes as an effect of deformation. So when you write X\*x it means X\*(X+u) = X^2 + X\*u > >In principle, variables refer to one of actually four frames. However, it does not end there: Fields can be contravariant or covariant in the ordinary tensor algebra meaning (in case non-orthonormal coordinate systems are used). > >Some quantities do not have a natural 'frame'. The most obvious case is the displacement, since it actually defines the transformation between material frame and spatial frame. > >In most cases, all of these considerations are subtleties that the end user seldom has to worry about. The exception is when working with advanced equation based modeling. > >A rather unique feature in COMSOL, when compared to other commercial software, is that you can actually inspect the implementation details. Switch on *Equation View* from *Show More Options*. Under each node in the Model Builder tree, you can see variable definitions, weak contributions, constraints, etc. You can also use Ctrl+F to search for variable names and find their definitions. Please accept my endless gratitude, Henrik. In fact, the dot product I suggested does not contain any physical meaning and is just an example of the problem I am currently experiencing. Let me describe my problem by measuring the distances before and after shell deformation as an example: A square thin shell with one side fixed. Apply a force perpendicular to the direction of the shell surface on the opposite side of the fixed side and the shell will bend and deform. I need to get the distance function *D* between the deformed shell and the original shell plane. However, if I use the undeformed coordinates *(X,Y)* as independent variables, the distance *D(X0,Y0)* at the point *(X0,Y0)* cannot be expressed in terms of the coordinates *(X0,Y0)* of that point. The following pictures show the expression of distance *D* under different independent variables. As you can see, *D(X0,Y0)* can only be expressed by the coordinates of another point*(X1,Y1)* (i.e. the expression you gave). ![Expression of height function D with different independent variables](https://i.postimg.cc/QxmDGGZ8/beam-displacement.png) Fig.1 Expression of height function *D* with different independent variables Best Regards, Jake

Henrik Sönnerlind COMSOL Employee

Please login with a confirmed email address before reporting spam

Posted: 1 year ago 9 ott 2023, 08:02 GMT-4

It seems like no picture was attached.

-------------------
Henrik Sönnerlind
COMSOL
It seems like no picture was attached.

Please login with a confirmed email address before reporting spam

Posted: 1 year ago 9 ott 2023, 09:44 GMT-4
Updated: 1 year ago 9 ott 2023, 09:48 GMT-4

It seems like no picture was attached.

Picture has been added in the attachment.

Thanks again.

Best Regards,
Jake

>It seems like no picture was attached. Picture has been added in the attachment. Thanks again. Best Regards, Jake


Henrik Sönnerlind COMSOL Employee

Please login with a confirmed email address before reporting spam

Posted: 1 year ago 12 ott 2023, 02:01 GMT-4

First, it should be noted that this is an issue only in the case of geometric nonlinearity. For a geometrically linear case, the approximation is such that the distance is just the displacement.

In the geometrically nonlinear case, you must be careful about the definitions. As you say, the distance can be seen as just 'y'. For the sake of clarity, let's consider the 1D case shown in your graph. You can then either think of the distance function as D(X), or D(x), or D(s) where 's' is the arc length along the deformed structure. If you are going to make a graph, you can get either or. Plot 'y' vs. either X, x, or Arc Length. The latter assumes that spatial frame is selected in the dataset.

For the plate, it is more complicated, so using something similar to arc length seems difficult. As I understand it (there are several possible variants), you want to plot D(x,y) projected on the original square in the XY-plane. In that case, there should be some regions where no data is available (similar to X>X0 in the 1D case).

You can do this by using a General Extrusion operator and map data between the two frames. You would then plot an expression like genext1(z) or, equivalently genext1(w).

-------------------
Henrik Sönnerlind
COMSOL
First, it should be noted that this is an issue only in the case of geometric nonlinearity. For a geometrically linear case, the approximation is such that the distance is just the displacement. In the geometrically nonlinear case, you must be careful about the definitions. As you say, the distance can be seen as just 'y'. For the sake of clarity, let's consider the 1D case shown in your graph. You can then either think of the distance function as D(X), or D(x), or D(s) where 's' is the arc length along the deformed structure. If you are going to make a graph, you can get either or. Plot 'y' vs. either X, x, or Arc Length. The latter assumes that spatial frame is selected in the dataset. For the plate, it is more complicated, so using something similar to arc length seems difficult. As I understand it (there are several possible variants), you want to plot D(x,y) projected on the original square in the XY-plane. In that case, there should be some regions where no data is available (similar to X>X0 in the 1D case). You can do this by using a *General Extrusion* operator and map data between the two frames. You would then plot an expression like *genext1(z)* or, equivalently *genext1(w)*.

Please login with a confirmed email address before reporting spam

Posted: 1 year ago 12 ott 2023, 23:53 GMT-4
Updated: 1 year ago 12 ott 2023, 23:58 GMT-4

First, it should be noted that this is an issue only in the case of geometric nonlinearity. For a geometrically linear case, the approximation is such that the distance is just the displacement.

In the geometrically nonlinear case, you must be careful about the definitions. As you say, the distance can be seen as just 'y'. For the sake of clarity, let's consider the 1D case shown in your graph. You can then either think of the distance function as D(X), or D(x), or D(s) where 's' is the arc length along the deformed structure. If you are going to make a graph, you can get either or. Plot 'y' vs. either X, x, or Arc Length. The latter assumes that spatial frame is selected in the dataset.

For the plate, it is more complicated, so using something similar to arc length seems difficult. As I understand it (there are several possible variants), you want to plot D(x,y) projected on the original square in the XY-plane. In that case, there should be some regions where no data is available (similar to X>X0 in the 1D case).

You can do this by using a General Extrusion operator and map data between the two frames. You would then plot an expression like genext1(z) or, equivalently genext1(w).

Dear Henrik,

I really appreciate your help. I have carefully studied the knowledge associated with General Extrusion, and after actually trying it out, I realize it doesn't apply to my problem.

Actually, I'm not trying to plot the distance results. I need to fill in the expression for D in COMSOL to accomplish manually coupling multiphysics.

Allow me to briefly describe my physical model: there is a thin film flow on a shell (not necessarily planar), the shell is deformed by fluid pressure, and the fluid pressure is related to the deformation of the shell in a certain direction (perpendicular to the direction of the film flow).

Since COMSOL uses (X,Y) as the default independent variable, I need to fill in the expression for D with (X,Y) as the independent variable to complete the multiphysics coupling.

The figure used to depict the physical model has been attached as an annex.

Best Regards,
Jake

>First, it should be noted that this is an issue only in the case of geometric nonlinearity. For a geometrically linear case, the approximation is such that the distance is just the displacement. > >In the geometrically nonlinear case, you must be careful about the definitions. As you say, the distance can be seen as just 'y'. For the sake of clarity, let's consider the 1D case shown in your graph. You can then either think of the distance function as D(X), or D(x), or D(s) where 's' is the arc length along the deformed structure. If you are going to make a graph, you can get either or. Plot 'y' vs. either X, x, or Arc Length. The latter assumes that spatial frame is selected in the dataset. > >For the plate, it is more complicated, so using something similar to arc length seems difficult. As I understand it (there are several possible variants), you want to plot D(x,y) projected on the original square in the XY-plane. In that case, there should be some regions where no data is available (similar to X>X0 in the 1D case). > >You can do this by using a *General Extrusion* operator and map data between the two frames. You would then plot an expression like *genext1(z)* or, equivalently *genext1(w)*. Dear Henrik, I really appreciate your help. I have carefully studied the knowledge associated with General Extrusion, and after actually trying it out, I realize it doesn't apply to my problem. Actually, I'm not trying to plot the distance results. I need to fill in the expression for *D* in COMSOL to accomplish manually coupling multiphysics. Allow me to briefly describe my physical model: there is a thin film flow on a shell (not necessarily planar), the shell is deformed by fluid pressure, and the fluid pressure is related to the deformation of the shell in a certain direction (perpendicular to the direction of the film flow). Since COMSOL uses (X,Y) as the default independent variable, I need to fill in the expression for D with (X,Y) as the independent variable to complete the multiphysics coupling. The figure used to depict the physical model has been attached as an annex. Best Regards, Jake

Note that while COMSOL employees may participate in the discussion forum, COMSOL® software users who are on-subscription should submit their questions via the Support Center for a more comprehensive response from the Technical Support team.