Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make SURF like VENT for tangential #14117

Open
drjfloyd opened this issue Jan 24, 2025 · 5 comments
Open

Make SURF like VENT for tangential #14117

drjfloyd opened this issue Jan 24, 2025 · 5 comments
Assignees

Comments

@drjfloyd
Copy link
Contributor

Working with @bwklein on a pyrosim user issue and I think it would be beneficial to have one way to specify tangential velocity. Right now for SURF we have VEL_T which is two components that are fixed and for HVAC have a vector for the flow.

We did vector for HVAC since that flow will change over time and would want the angle to be the same as flow rate changes. With VEL_T the flow is fixed and you can't have the angle stay the same if RAMP_V is being used. Also since VEL_T is two components you need to think about which component is 1 and which is 2 as the surface orientiation changes.

I propose we allow UVW on VENT to be used for any SURF_ID and not just HVAC. We could support backwards compatiblity and if a VEL_T is given create the vector. This might also simplify velo.f90 as we could do the same thing for any SURF rather than one thing for HVAC and one thing for other SURF.

@drjfloyd drjfloyd self-assigned this Jan 24, 2025
@bwklein
Copy link
Collaborator

bwklein commented Jan 24, 2025

@drjfloyd would it also be possible for the UVW input to be relative to the surface normal? As it is now, you have to consider the normal direction and then sign the unit vector values based on that. If instead, you could set UVW relative to the normal, it would make the input trivial and easy to copy, rotate, mirror, etc. without modifying the values per instance.

@drjfloyd
Copy link
Contributor Author

We would need to define the base VENT orienation for UVW and then how you should rotate it for an arbitrary VENT. Something like;

UVW is a vector defining the flow direction for outflow from the VENT. For an upward pointing surface UVW would represent the x,y, and z components. For surface pointing in other directions, the UVW directions can be determined by first rotating a vertically upward VENT about the x-axis and then about the y-axis. For example a VENT pointing with IOR=-2 would have UVW(3) pointing along the negaitve y-xais, UVW(1) would still be the postive x-axis, and UVW(2) would be pointing along the positive z-axis. To get IOR=1 you would first rotate about the x-axis to get IOR=-2 and then about the y-axis to get IOR=1. After those two rotations, UVW(3) would point along the positive x-axis, UVW(1) would point along the positive y-axis, and UVW(2) would point along the positive z-axis.

@bwklein
Copy link
Collaborator

bwklein commented Jan 24, 2025

@drjfloyd Yes, that's exactly the idea. I know that FDS has an auto-IOR (normal direction) function, and also the ability to explicitly set IOR for the VENT. We mirror this in PyroSim where we don't specify IOR by default, but the user can select the + or - direction for the given vent plane (X, Y or Z).

I also wondered about not even specifying the UVW at all, but have the unit vector defined by the magnitude of the flow and two angles, 'Azimuth' and 'Elevation'. As this is often what people 'know' about the flow. Like, -45 deg down [0 Azimuth, -45 Elevation], or 30 deg to the left and 10 degrees down [-30 Azimuth, -10 Elevation]. Then let FDS combine those angles with the flow velocity and the orientation of the vent to figure out the unit vector.

@drjfloyd
Copy link
Contributor Author

"down" wouldn't have meaning for a floor or ceiling vent unless down always meant the z-direction. In which case we are back to what we have now which is UVW defined in terms of the global coordinate system. Pyrosim can do whatever for the interface but we need something for input that has a strict definition.

@bwklein
Copy link
Collaborator

bwklein commented Jan 24, 2025

Based on the transformations you listed above.

For example, 'down' on a floor vent:

  • Z+ would be 'normal'
  • Azimuth angle would determine the movement in the X+/- direction, where positive angle would be X+ direction.
  • Elevation angle would determine the movement in the Y+/- direction, where positive angle would be Y- direction.
  • Down for the vent would be Y+ direction.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants