CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > Siemens > STAR-CCM+

2D Axisymmetric simulation with morphing boundary

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   September 6, 2018, 14:37
Default 2D Axisymmetric simulation with morphing boundary
  #1
Member
 
Join Date: Apr 2018
Location: UK
Posts: 78
Rep Power: 8
JM27 is on a distinguished road
Hi there, I am hoping to get some help on 2d axisymmetric simulation in ccm+. Been stuck on this for a few days now so any suggestions would be appreciated...

I am trying to run a 2d axisymmetric simulation with moving boundary using the mesh morpher solver. My set up involves a square domain with the right boundary set as the axis of symmetry. The top boundary is a pressure outlet at 100kPa and 300K (also initial conditions). The lhs boundary is a stationary wall (fixed boundary plane specification) and the bottom wall (radial axis) is moving according to a grid velocity.

I specify the grid velocity using a field function x(r,t) - which is a combination of an exponential function and a cosine. The grid velocity therefore changes as a function of time and radial position r.

I generate a trimmed cell mesh with prism layers on the moving boundary to capture the high gradients in this region. The models that I am using are:

Axisymmetric, Gradients, IF97 Water (compressible), implicit unsteady, laminar, segregated flow, and segregated fluid temperature.

Here goes my problem:

I initialize the problem and so far all looks good (or as I think it should). Upon trying to step the simulation, the following error comes up:

Non-zero radial coordinate found on axis boundary rhs

Maximum error was :0
Repair boundary using "Project to Axis...".
Command: StepSimulation
error: Server Error

I am surprised by this since I set up the domain/mesh as described in the user-guide for axisymmetric meshes, i.e. i) in Z=0 plane ii) with the axis of symmetry on the x-axis iii) mesh above y=0.

Anyway, I have tried using Project Axis but it still does not work. Instead, a floating point error comes up:

A floating point exception has occurred: floating point exception [Invalid operation]. The specific cause cannot be identified. Please refer to the troubleshooting section of the User's Guide.
Command: Unknown Command
error: Server Error


I think that the problem lies in my field function for the Grid Velocity. I have tried running the exact same thing but with a constant velocity i.e. I specify a constant value directly rather than as a function of exp and cos and it works. I have tried increasing the complexity of the function step by step by introducing the cos and exp function separately. The cos function works but not the exp.

An interesting thing I noticed is that the exponential function contains the dependence on the radial coordinate r i.e. e^br where b is a constant. cos is expressed in terms of time.


Please help.... I do not think this should be that difficult to set up and run
JM27 is offline   Reply With Quote

Old   September 6, 2018, 23:22
Question Hi..Just a doubt!
  #2
New Member
 
Ubuntu's Avatar
 
Siddharth
Join Date: Jul 2018
Posts: 26
Rep Power: 9
Ubuntu is on a distinguished road
Quote:
Originally Posted by JM27 View Post
I am trying to run a 2d axisymmetric simulation with moving boundary using the mesh morpher solver. My set up involves a square domain with the right boundary set as the axis of symmetry. The top boundary is a pressure outlet at 100kPa and 300K (also initial conditions). The lhs boundary is a stationary wall (fixed boundary plane specification) and the bottom wall (radial axis) is moving according to a grid velocity.

I specify the grid velocity using a field function x(r,t) - which is a combination of an exponential function and a cosine. The grid velocity therefore changes as a function of time and radial position r.
Will your domain look like a nozzle with variable area inlet in 3D?
Ubuntu is offline   Reply With Quote

Old   September 7, 2018, 05:39
Default
  #3
Member
 
Join Date: Apr 2018
Location: UK
Posts: 78
Rep Power: 8
JM27 is on a distinguished road
Hi Ubuntu,



No it will not have a variable area inlet in 3D...I am trying to model an ultrasonic cleaning tank.



I want the boundary motion in my simulation to account for the acoustic wave in the tank filled with water...So if I revolve my axisymmetric geometry to get 3D this would look just like a cylinder (or pipe) but with one end closed (moving wall) and the other end open to atmosphere (pressure outlet)...hope this clarifies
JM27 is offline   Reply With Quote

Old   September 7, 2018, 10:25
Wink Hi again
  #4
New Member
 
Ubuntu's Avatar
 
Siddharth
Join Date: Jul 2018
Posts: 26
Rep Power: 9
Ubuntu is on a distinguished road
Does the attachment look like what you wanted? more or less?

https://we.tl/t-9YMy02OVyQ

I had some free time.
Ubuntu is offline   Reply With Quote

Old   September 7, 2018, 11:01
Default oscillatory boundary motion as function of time and position
  #5
Member
 
Join Date: Apr 2018
Location: UK
Posts: 78
Rep Power: 8
JM27 is on a distinguished road
Hello again Ubuntu,

Thanks for your reply. Yes looks close enough to what I am trying to do.

The main difference I notice is that in the attached video the oscillation seems to be varying only with time. In my case I need the oscillation to also be varying with position..mainly because I want the motion at the left wall (r=0.06m) to be fixed and the maximum motion to take place at the axis of symmetry (r=0).. in fact that is why i am using an exponential function of the form exp^(-br) in my field function...r is the radial position and b is a constant.
At r = 0 the mesh displacement would be maximum and minimum at r=0.06m (left boundary) the mesh displacement would be zero.

Can you explain how you did your simulation in CCM+ and any suggestions for my case?

That would be very helpful for me, thanks in advance!
JM27 is offline   Reply With Quote

Old   September 8, 2018, 01:36
Default
  #6
New Member
 
Ubuntu's Avatar
 
Siddharth
Join Date: Jul 2018
Posts: 26
Rep Power: 9
Ubuntu is on a distinguished road
Quote:
Originally Posted by JM27 View Post
Can you explain how you did your simulation in CCM+ and any suggestions for my case?
Sure, happy to.

I used the same boundary conditions as you described in your post (see attachment) except that I used laminar, without energy equation terms.

Quote:
Originally Posted by JM27 View Post
Non-zero radial coordinate found on axis boundary rhs
In my case, the axis boundary was along the X-axis, and the mesh was on the XY plane above y =0. I am not sure why it happens to you though you followed all these.

Regarding the morphing motion, I created a simple Field Function which looks like,
sin(2*$Time)
In your case, it will be like
exp(-$$Position[1])*sin(2*$Time)
The location of lab coordinate system is important when you use $$Position[].

Hope this helps you.
Attached Images
File Type: jpg BCs.jpg (25.5 KB, 23 views)
Ubuntu is offline   Reply With Quote

Old   September 8, 2018, 09:25
Default
  #7
Member
 
Join Date: Apr 2018
Location: UK
Posts: 78
Rep Power: 8
JM27 is on a distinguished road
Quote:
Originally Posted by Ubuntu View Post
Sure, happy to.
I really appreciate you trying to help out!
Quote:
Originally Posted by Ubuntu View Post
I used the same boundary conditions as you described in your post (see attachment) except that I used laminar, without energy equation terms.
I am also using laminar However, ccm+ won't let me run without specifying an energy model. I tried both Segregated Fluid Isothermal and Segregated Fluid Temperature and it still does not work
Quote:
Originally Posted by Ubuntu View Post
In my case, the axis boundary was along the X-axis, and the mesh was on the XY plane above y =0. I am not sure why it happens to you though you followed all these.
With regards to this problem, I have created a new geometry part (again based on the conditions for axisymmetric model) and regenerated a new mesh and this error no longer comes up
Quote:
Originally Posted by Ubuntu View Post
Regarding the morphing motion, I created a simple Field Function which looks like,
sin(2*$Time)
In your case, it will be like
exp(-$$Position[1])*sin(2*$Time)
The location of lab coordinate system is important when you use $$Position[].

Hope this helps you.
If you don't mind have a few questions about the morphing itself. It would be really helpful if you could answer these so I can cross-check my simulation setup with yours. I am using the following field function to specify Grid Velocity:

[((($$Position[1] <= 0.06) && ($$Position[0] <= 3e-4) ) ? (( (2*3.1416*33e3)*(0.2e-6) * (cos(2*3.1416*33e3*${Time}))*(exp(pow(-(-2e8)*$$Position[1],6))))) : 0 ),0,0]


I have also tried replacing $$Position[1] with $RadialCoordinate but still won't work. It does work if I get rid of the exp(pow(-(-2e8)*$$Position[1],6)) bit however

1) In your field function, do you use some kind of condition or do you specify the velocity as a vector directly, i.e. [x,y,z] components?
2) What mesh morpher solver conditions are you using? In my case, I'm using Morph from Zero and Recompute Interfaces
3) I was using a Fixed Boundary Plane Specification on my left boundary. I tried it using Floating as in your case but I keep getting this error:

SIGSEGV: memory access exception Command: StepSimulation
Processor: 0
Recoverability: Non-recoverable
ServerStack: [
libStarNeo.so: SignalHandler::signalHandlerFunction(int, siginfo*, void*),
libpthread.so.0(+0xf6d0),
libMorpherModel.so(+0x1534d6),
libMorpherModel.so(+0x1591ce),
libMorpherModel.so(+0x159af6),
libMorpherModel.so: ProMorpher::update(int const&, double const&),
libMorpherModel.so: ProMorpherMap::run(int, double),
libMorpherModel.so: MovingMeshSolverBase::updateThisTimeStep(FvReprese ntation const&),
libMorpherModel.so: MovingMeshSolverBase::commonTimeStepUpdate(unsigne d int const&),
libStarSolve.so: ImplicitUnsteadySolver:: preStep(),
libStarSolve.so: ImplicitUnsteadySolver::step(),
libStarSolve.so: SimulationIterator::startSimulation(RunnableSolver *, int, SimulationIterator::RunMode, bool),
libStarSolve.so(+0x1e6357),
libStarNeo.so: Controller::executeCommand(Command&, Properties const&, Properties&),
libStarNeo.so: Controller:: processCommands(),
libStarMachine.so: CommandController::SerialMasterCommandLoop::start( ),
libStarMachine.so: CommandController:: processCommands(),
libStarMachine.so: Machine::startServerHost(int, char**, std::map<std::string, unsigned int, std::less<std::string>, std::allocator<std: pair<std::string const, unsigned int> > >&),
libStarMachine.so: Machine::main(int, char**)]
Signal: SIGSEGV: memory access exception
error: Server Error

I am running on 16GB ram so again surprised to have this come up. I am running out of ideas to try make this work
Your help is very much appreciated, at least I know I am on the right track Look forward to your reply!
JM27 is offline   Reply With Quote

Old   September 8, 2018, 22:26
Default
  #8
New Member
 
Ubuntu's Avatar
 
Siddharth
Join Date: Jul 2018
Posts: 26
Rep Power: 9
Ubuntu is on a distinguished road
Quote:
Originally Posted by JM27 View Post
1) In your field function, do you use some kind of condition or do you specify the velocity as a vector directly, i.e. [x,y,z] components?
2) What mesh morpher solver conditions are you using? In my case, I'm using Morph from Zero and Recompute Interfaces
3) I was using a Fixed Boundary Plane Specification on my left boundary. I tried it using Floating as in your case but I keep getting this error:
1. I didn't make it as a vector function. You can specify it as components so that you don't have to create a vector field function (Fig1 and 2)
2. I didn't change any solver settings of morpher (default). I went to respective boundaries and specified morpher conditions for each of them.
3. I am not sure why.

What is the equation you wish to put as field function? I wonder if that conditional statement in your field function is really necessary. May be placing a new coordinate system will help, I think.
Also I made some changes in the field function (Fig3) and did it again.
Check if this looks more like what you want.
https://we.tl/t-Vvft7y2mOc
Attached Images
File Type: png Fig1.PNG (21.1 KB, 11 views)
File Type: png Fig2.PNG (11.0 KB, 9 views)
File Type: png Fig3.PNG (5.5 KB, 9 views)
Ubuntu is offline   Reply With Quote

Old   September 11, 2018, 06:19
Default Motion field function
  #9
Member
 
Join Date: Apr 2018
Location: UK
Posts: 78
Rep Power: 8
JM27 is on a distinguished road
Hello again Ubuntu,

Thank for your reply and apologies for the delay in reply

Quote:
Originally Posted by Ubuntu View Post
1. I didn't make it as a vector function. You can specify it as components so that you don't have to create a vector field function (Fig1 and 2)
I have eliminated the use of the condition in my field function and just specified the components and it works okay. I think the condition is just an extra complication in this case...

Quote:
Originally Posted by Ubuntu View Post
2. I didn't change any solver settings of morpher (default). I went to respective boundaries and specified morpher conditions for each of them.
Ok, just wanted to double check

Quote:
Originally Posted by Ubuntu View Post
3. I am not sure why.

What is the equation you wish to put as field function? I wonder if that conditional statement in your field function is really necessary. May be placing a new coordinate system will help, I think.
Also I made some changes in the field function (Fig3) and did it again.
Check if this looks more like what you want.
https://we.tl/t-Vvft7y2mOc
Yes, this is more similar because motion at the side wall is fixed.
The equation I am using is of the form: const*exp(const*$$Position)*cos(const*${Time})

After lots of trial and error I figured that the memory access exception error was in fact coming from the field function. I eliminated the condition and declared the two functions, i.e. trigonometric and exponential, as two separate field functions. I create a third field function in which I reference the trig and exp function as vector components.

Still curious as to why it wouldn't work by simply putting the whole definition in a single field function, but I'm glad I finally managed to get the desired motion on the boundary

Hope this helps anyone having the same problem in the future. Thanks a lot Ubuntu for your help
JM27 is offline   Reply With Quote

Old   September 11, 2018, 07:50
Thumbs up
  #10
New Member
 
Ubuntu's Avatar
 
Siddharth
Join Date: Jul 2018
Posts: 26
Rep Power: 9
Ubuntu is on a distinguished road
Glad to know that you solved it.
Ubuntu is offline   Reply With Quote

Reply

Tags
axisymmetric, field function, floating point exception, grid velocity, morphing


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Radiation in semi-transparent media with surface-to-surface model? mpeppels CFX 11 August 22, 2019 08:30
Centrifugal fan-reverse flow in outlet lesds to a mass in flow field xiexing CFX 3 March 29, 2017 11:00
Domain Imbalance HMR CFX 5 October 10, 2016 06:57
An error has occurred in cfx5solve: volo87 CFX 5 June 14, 2013 18:44
[Commercial meshers] Trimmed cell and embedded refinement mesh conversion issues michele OpenFOAM Meshing & Mesh Conversion 2 July 15, 2005 05:15


All times are GMT -4. The time now is 15:57.