User Tools

Site Tools


gtspring2009:research_projects:hyatt:blog

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
gtspring2009:research_projects:hyatt:blog [2009/03/22 12:40]
gibson
gtspring2009:research_projects:hyatt:blog [2010/02/02 07:55] (current)
Line 79: Line 79:
 -//​2009-03-21 [[jshyatt@gatech.edu|John Hyatt]]// -//​2009-03-21 [[jshyatt@gatech.edu|John Hyatt]]//
  
-{{gtspring2009:​gibson.png?​24}} Hi, John; good to see you're rolling on the nite fishing project. Some quick responses to your questions. ​+{{gtspring2009:​gibson.png?​24}} Hi, John; good to see you're rolling on the nite fishing project. Some quick responses to your questions. ​// John Gibson 2009-03-22//​ 
 + 
  
 1. Searching for new solutions from random data will sometimes work and sometimes fail, and it's not always easy to determine when to stop trying. I generally give up if the residual %%L2Norm(G(x))%% is not decreasing at least a few percent each Newton-hookstep iteration. The nth line of the file %%convergence.asc%% shows the residual of the nth Newton step. (from here on I'm using Newton as shorthand for Newton-hookstep). ​ 1. Searching for new solutions from random data will sometimes work and sometimes fail, and it's not always easy to determine when to stop trying. I generally give up if the residual %%L2Norm(G(x))%% is not decreasing at least a few percent each Newton-hookstep iteration. The nth line of the file %%convergence.asc%% shows the residual of the nth Newton step. (from here on I'm using Newton as shorthand for Newton-hookstep). ​
  
-2. Note that there are **two distinct iterative algorithms** in findorbit'​s Newton-GMRES-hookstep algorithm: **Newton-hookstep iteration**,​ which takes small steps %%x' = x + dx%% towards a better solution, and **GMRES iteration**,​ which is an iterative solution method to solve for the %%dx%% of the Newton equation %%DG dx = -G(x)%% (where %%G(x) = 0%% is the equation to be solved). Each step in the Newton iteration requires computing a new %%dx%, so there is a complete iterative GMRES solution nested inside each Newton ​iteration. Please read over [[docs:​utils:​findorbit#​mathematics]] to learn the essentials of the algorithm. ​+2. Note that there are **two distinct iterative algorithms** in findorbit'​s Newton-GMRES-hookstep algorithm: **Newton-hookstep iteration**,​ which takes small steps %%x' = x + dx%% towards a better solution, and **GMRES iteration**,​ which is an iterative solution method to solve for the %%dx%% of the Newton equation %%DG dx = -G(x)%% (where %%G(x) = 0%% is the equation to be solved). Each step in the Newton iteration requires computing a new %%dx%%, so there is a complete iterative GMRES solution nested inside each single ​Newton ​step. Please read over [[docs:​utils:​findorbit#​mathematics]] to learn the essentials of the algorithm. ​
  
 3. I believe from your notes that it's the GMRES iteration that is failing to converge rather than the Newton iteration. There are two options. (a) You can increase the number of GMRES iterations with findorbit'​s %%-Ng%% or %%--Ngmres%% option. Try 60 instead of the default 40. (b) You can increase the integration time from the default 10.0 to 15.0 or 20.0, using the %%-T%% option. The convergence rate of GMRES iteration is governed by the eigenvalues of the linearized finite-time Navier-Stokes map %%Df^T(u)%%. A larger integration time %%T%% will enhance the separation between the contracting and expanding eigenvalues (at the cost of making %%f^T%% more nonlinear and expensive to compute). I recommend (b).  3. I believe from your notes that it's the GMRES iteration that is failing to converge rather than the Newton iteration. There are two options. (a) You can increase the number of GMRES iterations with findorbit'​s %%-Ng%% or %%--Ngmres%% option. Try 60 instead of the default 40. (b) You can increase the integration time from the default 10.0 to 15.0 or 20.0, using the %%-T%% option. The convergence rate of GMRES iteration is governed by the eigenvalues of the linearized finite-time Navier-Stokes map %%Df^T(u)%%. A larger integration time %%T%% will enhance the separation between the contracting and expanding eigenvalues (at the cost of making %%f^T%% more nonlinear and expensive to compute). I recommend (b). 
Line 107: Line 109:
 (I think this is right, but it's been a while since I did conformal mapping.) I don't know if anyone'​s had success ​ (I think this is right, but it's been a while since I did conformal mapping.) I don't know if anyone'​s had success ​
 with this kind of effort. with this kind of effort.
 +
 +8-)  OK, I will give those things a shot this evening and see how they go.  I will also look at the documentation stuff you put here sometime in the next few days.  Thanks!
 +
 +Once I'm done trying out all the options for findorbit I'm going to try to move things into Mathematica - or Matlab, if that doesn'​t work.  (I'm already familiar with Mathematica,​ but have never made videos with data from another program.) ​ I may need help with file conversion but I'll cross that bridge when I come to it.  ​
 +
 +Also, the conformal mapping thing was just a thought - now that I know how much trouble computer stuff is, I will hold off on that until later. ​ --- //​2009-03-21 [[jshyatt@gatech.edu|John Hyatt]]//
 +
 +{{gtspring2009:​jshyatt.jpg?​24}} After a couple unsuccessful attempts to put a thumbnail in front of my posts I have uploaded 2 too-big pics onto gtspring2009 and don't know how to get rid of them.  -//​[[jshyatt@gatech.edu|John Hyatt]] 2009-03-21 15:30//
 +
 +{{gtspring2009:​jshyatt.jpg?​24}} I've been running more findorbits today with the original, troublesome randomfield I made the other day, with no success so far.  I'm trying it one more time with higher T integration and steps before I give it up and try another randomfield. ​ I have 3 questions:  ​
 +
 +1) I'm sure there'​s an answer to this somewhere else (like that BASH command thing you posted here) but can't find it...how do I make a program list its own runtime when it completes or terminates? ​ When I run these I leave them alone for an hour or so and come back later, but I'm curious just how long they take.  ​
 +2) Is there a way to make a randomfield that is "far away" from another one?  That is, if a particular randomfield doesn'​t work and I want to try one that is not near it, can I set that up?  I know that "​near"​ and "​far"​ are not easily-defined concepts here, and I'm at some point I guess going to start making those time charts to get my initial guesses, but since right now I'm just trying to familiarize myself with the possible equilibria and how likely they are to show up, it'd be nice to know.  ​
 +3) Is there a good way to port output tables from cygwin into a .txt format or something? ​ I think this is another thing I should be able to look up but can't seem to find.  I specifically want the tables of GMRES numbers that output from findorbit without having to manually type them in, without all the other junk.  I'd like to be able to see how they converge (or don't) from multiple tries.
 +
 +Answers to any of these questions (particularly #2) would be greatly appreciated!  ​
 +
 +-//​[[jshyatt@gatech.edu|John Hyatt]] 2009-03-26 23:01//
 +
 +{{gtspring2009:​jshyatt.jpg?​24}} Update - After 2 successful Newton iterations (taking all night), GMRes for the 3rd iteration mysteriously failed. ​ This is the first time that even one iteration for this field worked, though - but I will try a new random field today and during the wedding I'm going to this weekend.
 +
 +-//​[[jshyatt@gatech.edu|John Hyatt]] 2009-03-27 12:32//
 +
 +{{gtspring2009:​jshyatt.jpg?​24}} The simulation I started Friday is still running. ​ I'll update when it's done.  ​
 +
 +-//​[[jshyatt@gatech.edu|John Hyatt]] 2009-03-30 10:13//
 +
 +{{gtspring2009:​gibson.png?​24}} Responses. ​
 +
 +1. The Unix "​time"​ command will tell you how much CPU time a process consumes. Usage: "time findorbit ...."​. ​
 +For more run "man time" at the Unix prompt. ​
 +
 +2. You can determine the distance between two fields with [[docs:​utils:​l2dist|L2Dist]]. ​
 +Are you starting your searches using output from [[docs:​utils:​randomfield]]?​ It would be better to use
 +initial guesses randomly distributed within the invariant measure of the flow, by taking samples of 
 +turbulent simulations. ​
 +
 +3. findorbit.cpp stores convergence data in the file %%convergence.asc%%. This is an ASCII file (same
 +as .txt). Should be readable in Windows as well as cygwin. The first line in the file tells you 
 +what the columns are; for more on the meaning of those columns you can look in the source code
 +and particularly the comments that explain the algorithm.  ​
 +
 +// John Gibson 2009-04-01 //
 +
 +{{gtspring2009:​jshyatt.jpg?​24}} 1. Thanks, ​
 +2. Yes I am (at least this time) - Dr Cvitanovic suggested I do in order to get a feel for what can go wrong with findorbit, and that kind of thing. ​ I was going to ask you about that more sophisticated stuff as soon as this one is done running...unfortunately,​ my computer blue-screened on me for completely un-Channelflow-related reasons and killed my findorbit run.  But (and here I feel like I've learned something useful) I figured out that I can just start the run again from the most recent output from the findorbit command (unewtN.ff, N being the most recent run).  I can also try now with a smaller GMRes - I upped it some because I was still having trouble with it not converging, but it took forever. ​ Now maybe that it has run some I can try with smaller T?  ​
 +3. OK, will look at this tomorrow.
 +
 +// [[jshyatt@gatech.edu|John Hyatt]] 2009-04-03 2:50//
 +
 +{{gtspring2009:​jshyatt.jpg?​24}} ​ Questions for Predrag, John G, or whoever:  ​
 +
 +1) I have an exam on Monday so I'll be pretty busy until then, but I'd like to start looking for equilibria now/​soon. ​ I think that means I need to talk to John G about how to find a good starting point, but maybe other people can help?  I also need to get a PACE account, which I think Predrag told me he could help with.  ​
 +
 +2) When Channelflow gives output for the findorbit command it produces a bunch of .ff files from the original field (one for each Newton step). ​ I wanted to make sure I understand this right: ​ each of these is the previous field plus the adjustment from the Newton step, right? ​ i.e. it isn't just a .ff file containing the adjustment. ​ This means that if it hasn't converged by the time the program terminates, you can just take the latest output and use it as a new input to keep going, right? ​ //John Hyatt 2009-04-09 13:47//
 +
 +{{gtspring2009:​gibson.png?​24}} I am at your disposal: johnfgibson on skype, 617 441-3609 by phone. If you want to
 +talk during the day and I'm not on skype, send me an email and I'll turn it on. Yes, the unewt3.ff file is the previous field plus the adjustment. It's the current best approximation to the solution. // John Gibson 2009-04-09 15:21 EST//
gtspring2009/research_projects/hyatt/blog.1237750836.txt.gz · Last modified: 2009/03/22 12:40 by gibson