Comments (4)
@spdomin:
@gantech and I have identified something that we need to reorganize in the actuator line execute function. The way it is currently set up, the first thing that happens is that if there is motion, the blades get moved and all the ghosting information gets updated by calling initialize(). Then the velocity is sampled in this new location, forces computed, and forces applied to the source term.
There is a problem with this. Along the actuator line, because it is a lifting line, it creates a bound vortex with its axis along the line. The velocity that we sample is supposed to be the "freestream" velocity. That is a fuzzy thing with a rotor, but the main point is that you don't want to sample any of the upwash or downwash of the bound vortex. There are a few options, but I think the most convenient is to sample right smack in the center of the bound vortex where its own induced velocity is zero, so you are sampling the "freestream". If you move the line, and then sample, you're moving the line away from the center of the bound vortex, and then you sample some of the upwash. It would only work if there was some sort of subiterations going on in which the actuator line forces kept getting updated during the subiterations because the bound vortex would move, too. But here, the line is being treated explicitly in time. It makes a significant difference in the lift you end up computing. So, it is better to keep the blade where it last was, sample the velocity, then move it, and then apply the force.
I know this is getting long... But, I don't think this is as simple as moving the initialize() function call down in the execute command. Because there is a parallel_sum_including_ghosts() call at the end to sum up all the contributions to the source term, I'm thinking it is not okay to change the ghosting midway through execute by moving the initialize() function call downward. See what I'm saying? Any thoughts?
from nalu.
Pasting in what @gantech wrote by email:
Hello,
Iām starting a conversation reg. an issue Matt C bought up on github.
My comments:
Matt is talking about lines near 524 in ActuatorLine.C in the integrateFAST branch (https://github.com/gantech/Nalu/blob/integrateFAST/src/ActuatorLine.C#L524). I see that the execute function parallel communicates coordinates, velocity and viscosity fields before line 524 here.
// parallel communicate data to the ghosted elements; again can communicate points to element ranks
if ( NULL != actuatorLineGhosting_ ) {
std::vector< const stk::mesh::FieldBase _> ghostFieldVec;
// fields that are needed
ghostFieldVec.push_back(coordinates);
ghostFieldVec.push_back(velocity);
ghostFieldVec.push_back(viscosity);
stk::mesh::communicate_field_data(actuatorLineGhosting, ghostFieldVec);
}
The new call to initialize near line 524 will destroy (and recreate? this ghosting in manage_ghosting()?) As I understand it, only the actuator_line_source and actuator_line_source fields are affected between line 524 and the call to parallel_sum_including_ghosts() at the end of the execute function. Is my understanding correct?
ganesh
from nalu.
An update on the above. I went ahead and moved things around in the original actuator line code (not Ganesh's integrate FAST branch), to sample at the old line location, and then move the line, and it all runs fine, but I need to test and make sure everything is really working okay. @spdomin if you could comment on what Ganesh more clearly articulated than I did, that would be helpful.
from nalu.
This effort has been transitioned to Jira.
from nalu.
Related Issues (20)
- Update TPLs HOT 1
- It shows that yaml-cpp/yaml.h not found during make, but I can find the yaml.h for 100% sure HOT 1
- SST and projected LOW clash
- Deprecate SuperLU HOT 3
- Six-DOF Falling 2D Sphere with overset HOT 1
- VOF (no surface tension) Prescribed Mesh Motion (elastic analogy) HOT 1
- Neo-Hookean Solid Mesh Analogy HOT 1
- OpenSSL requirement while building manually HOT 1
- Favre-averaged stress failure on forced reset at restart HOT 1
- Convert MeshDisplacementEQS to solely consolidated HOT 1
- Mac build warning HOT 3
- Hex27 in non-consolidated mode is not supported
- Questions about building Nalu under Ubuntu HOT 2
- Data probes working with overset?
- Data probe and mesh motion
- NOC on/off not fully working HOT 1
- 1.5.2 build issue HOT 4
- Portions of Non-conformal boundaries that do not overlap HOT 2
- Unexpected Error with Increasing MPI ranks related to search alg. HOT 2
- Mac build issue (Trilinos STK) HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
š Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ššš
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ā¤ļø Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from nalu.