Changes between Version 18 and Version 19 of u/erica/OutflowFeedback


Ignore:
Timestamp:
10/30/17 13:49:30 (7 years ago)
Author:
Erica Kaminski
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • u/erica/OutflowFeedback

    v18 v19  
    5454
    5555
    56 = Some old research notes on running some test cases -> =
    57 === Oct 13, 2015 ===
    58 
    59 Am working with isotropic turbulence module to generate a turbulent sphere, which will then have collapse to a sink and produce radiation feedback.
    60 
    61 Offner et al. 2014 (attached to this page) says she seeds a uniform sphere with kmax = 2 waves. Here is an image of the initial condition:
    62 
    63 [[Image(offnerIC.png, 20%)]]
    64 
    65 This looks like much smaller modes than Kmax = 2..
    66 
    67 Setting Kmax = 2 in the isotropic turbulence module and looking at KE, mass, Vmag, Vx, Vy, Vz in projection (and 3D) shows:
    68 
    69 [[Image(kmax2.png, 50%)]]
    70 [[Image(3dkmax2.png, 50%)]]
    71 [[Image(kmax22.png, 50%)]]
    72 [[Image(3dkmax22.png, 50%)]]
    73 
    74 Seems like the module is working fairly well. Going to continue learning a bit more how the seeding is generated this week and then will define a spherical volume inside of the mesh. The initial condition for the sphere needs to be fleshed out a bit more.. I.e. put it in quiescent ambient? Low density ambient? etc...   
    7556
    7657
    77 AMR?
    78 Clump object, then forcing, to apply the seeding everywhere in the grid?
    79 
    80 
    81 
    82 === October 8, 2015 ===
    83 
    84 Learned today a bit about the way Astrobear generates a forcing function to perturb the grid in turbulence simulations. The grid is transformed into Fourier space so that each cell in Fourier space is given a wave vector. The wave vectors (with corresponding amplitude and phase information) will be summed to give a forcing function. The amplitudes are semi random in that they are weighted against the spectral index of the power spectrum one wishes to achieve (the amplitude is always orthogonal to the k vector, but how it is orthogonal is random). The phases are random. Once this spectrum is generated in Fourier space it is transformed back into physical space and saved into a variable for the forcing function. This forcing function (really an acceleration function) is then multiplied to every zone of the box for a specified fluid variable (by default the velocity). The forcing function is normalized so that it it produces purely solenoidal perturbations (i.e. the amplitude vector is perpendicular to the k vector). At each time step the velocity is shifted so that the average velocity is 0.
    85 
    86 The forcing function goes something like:
    87 
    88 [[latex($\vec{a}(x,y,z) = \sum_{k}{A_{\vec{k}}e^{i(\vec{k} \cdot \vec{x})}}$)]]
    89 
    90 
    91 
    92 where
    93 
    94 $\vec{A}_{\vec{k}}$ is a random complex vector subject to
    95 
    96 $|\vec{A}_{\vec{k}}| \propto k^{\beta}$ for $k < k_{\max}$
    97 
    98 and
    99 
    100 $\vec{A}_{\vec{k}} \cdot \vec{k} = 0$
    101 
    102 We also want $\vec{a}$ to be real, so
    103 
    104 $\vec{A}_{\vec{-k}} = \vec{A}_{\vec{k}}$
    105 
    106 However, in the code - it looks like both are chosen randomly, and then the real part of the transform is taken.  I have to think about the implications of this...
    107 
    108 [[latex($\vec{a}(x,y,z) = \mbox{REAL} \left ( \sum_{k}{\vec{A}_{\vec{k}}e^{i(\vec{k} \cdot \vec{x})}} \right )$)]]
    109 
    110 
    111 [[latex($\vec{a}(x,y,z) = \sum_{k}{ \mbox{REAL} \left ( \vec{A}_{\vec{k}}e^{i(\vec{k} \cdot \vec{x})} \right ) }$)]]
    112 
    113 
    114 [[latex($a^j(x,y,z) = \sum_{k}{  |A^j{\vec{k}}|\cos{(\vec{k} \cdot \vec{x}+\theta^j_{\vec{k}})} }$)]]
    115 
    116 where $A^j_{\vec{k}} = |A^j_{\vec{k}}| e^{-i \theta^j_{\vec{k}}}$
    117 
    118 Now when we combine the $\pm \vec{k}$ terms, we get
    119 
    120 $|A^j_{\vec{k}}| e^{-i \theta^j_{\vec{k}}} + |A^j_{\vec{-k}}| e^{-i \theta^j_{\vec{-k}}}$
    121 
    122