CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   Main CFD Forum (https://www.cfd-online.com/Forums/main/)
-   -   StarCCM+ user defined field function (https://www.cfd-online.com/Forums/main/238025-starccm-user-defined-field-function.html)

agairola August 18, 2021 13:17

StarCCM+ user defined field function
 
This is a very StarCCM+ syntax specific query. In my simulations I have recorded the mean velocity components in a local (cylindrical coordinate system) reference frame using a field mean monitor. Let's call these Ur, Ut and Uz. My question is -how do I create a vector field function for the velocity vector using these available components in the cylindrical coordinate system? I understand that if the components were originally recorded in the cartesian system (let's call them Ux, Uy and Uz) then the vector field function can be created as [${Ux},${Uy},${Uz}] but this is will not work if I have the components in cylindrical system. Any insight would be very helpful.

Thanks,
Anant

LuckyTran August 18, 2021 20:34

Did you make a monitor for the mean velocity as a vector or as scalar components? As a vector it's easy. As scalar components it becomes very cumbersome. Starccm automatically translates vectors from one representation to another easily. All you need to do is add a reference to the coordinate system in the call to the vector field function:

Velocity(@LocalCoordinateSystem("Laboratory.yourna mehere"))

And you can still tail it with [0] [1] [2] to access the r, theta, and z components. And don't forget the $ or $$ infront depending on what you are trying to do.


Btw I recommend you to just make a mean velocity monitor as a vector (it can be in any coordinate system) since you can easily convert to any other coordinate system on demand. I don't recommend doing it by components because you end up having to do this step of building a vector field from something that should have been a vector to begin with.

agairola August 19, 2021 11:27

Hi,

Thank you for the response. What you said makes prefect sense. However, unfortunately I did not have the foresight to save the velocity as a vector, I only saved the mean magnitude as a scalar quantity. I found another way to tackle this issue. For the interest of the general audience, here is how I did it-

I had saved the mean velocity components in the cylindrical coordinate system (let's call them Ur, Ut and Uz). So I then created a scalar field called "theta", defined as $${Position}(@CoordinateSystem("Laboratory.Cylindr ical 1"))[1] - this gives me the azimuthal location of all the points in the domain.

Then I created, Ux, Uy and Uz (the components in the cartesian coordinate system) as following-

Ux: ${Ur}*cos(${theta})-${Ut}*sin(${theta})
Uy: ${Ur}*sin(${theta})+${Ut}*cos(${theta})
Uz: Uz

This allowed me to create a mean vector field function, (let's call it velocity_vector) as [Ux, Uy Uz]. Effectively I did the conversion back to the cartesian components manually using the field functions described above.

The vector field function, velocity_vector can be decomposed into any arbitrarily defined local coordinate system, if needed as well by using $${velocity_vector}(@CoordinateSystem(Your choice of local reference frame put in quotes))[your choice of the component-0, 1 or 2]

PS when in doubt it's always best to save vector components in the cartesian coordinate system since that is the default choice for StarCCM+. The resulting components can then be transformed to any other local coordinate system easily.

Thank you once again for your response; I really appreciate it.

Regards,
Anant


All times are GMT -4. The time now is 07:24.