Difference between operator= and operator==
Dear all,
I have developed a boundary condition, which is very similar to the movingWallVelocity in foam extend. In this code, the velocity of the wall is updated according to a rigid body motion. Hence, it is a time-dependent condition. I tried two different ways to update the boundary values: 1- Code:
vectorField::operator=(Up + n*(Un - (n & Up)) + UNew); 2- Code:
vectorField::operator==(Up + n*(Un - (n & Up)) + UNew); Here, UNew is between 0-0.1 and it is varying by time. There is a big difference between the transient simulations of these cases, and I don't know which one is correct. According to this discussion, I know that: Quote:
Any comments or further explanations would be appreciated. Kind regards, Peyman |
On a vector field there is no difference - you are looking at the wrong place. For fvPatchField, a double - will force assignment for all types and single - will behave differently depending on type.
For example, on a fixedValue patch, op= does nothing and op== will force the new value onto a patch even though its type is Dec;armed as fixedValue. This is very important for the code to work correctly. However, your problem is somewhere else. Hrv |
All times are GMT -4. The time now is 09:48. |