PageRenderTime 29ms CodeModel.GetById 17ms RepoModel.GetById 0ms app.codeStats 1ms

/trunk/DOC/html/compute__force__old_8cc-source.html

https://bitbucket.org/mchandra/tarang-mpi-old
HTML | 1794 lines | 1793 code | 0 blank | 1 comment | 0 complexity | 818cea299c6668652146f48c97d6ab59 MD5 | raw file
Possible License(s): GPL-3.0

Large files files are truncated, but you can click here to view the full file

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
  3. <title>TARANG-MPI: compute_force_old.cc Source File</title>
  4. <link href="doxygen.css" rel="stylesheet" type="text/css">
  5. <link href="tabs.css" rel="stylesheet" type="text/css">
  6. </head><body>
  7. <!-- Generated by Doxygen 1.5.6 -->
  8. <div class="navigation" id="top">
  9. <div class="tabs">
  10. <ul>
  11. <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
  12. <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
  13. <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
  14. <li class="current"><a href="files.html"><span>Files</span></a></li>
  15. </ul>
  16. </div>
  17. <h1>compute_force_old.cc</h1><a href="compute__force__old_8cc.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
  18. <a name="l00002"></a>00002 <span class="comment">// SPECTRAL Version 1.0</span>
  19. <a name="l00003"></a>00003 <span class="comment">// Date: 16 Sept. 2007</span>
  20. <a name="l00004"></a>00004 <span class="comment">// Author: M. K. Verma</span>
  21. <a name="l00005"></a>00005 <span class="comment">// Filename: compute_add_force.cc</span>
  22. <a name="l00006"></a>00006
  23. <a name="l00007"></a>00007 <span class="preprocessor">#include "<a class="code" href="IncFluid_8h.html" title="Class declaration of IncFluid, Incompressible fluid (V field).">IncFluid.h</a>"</span>
  24. <a name="l00008"></a>00008
  25. <a name="l00009"></a>00009 <span class="comment">/*=============================================================================</span>
  26. <a name="l00010"></a>00010 <span class="comment"></span>
  27. <a name="l00011"></a>00011 <span class="comment"> Compute_force()</span>
  28. <a name="l00012"></a>00012 <span class="comment"> With parameters that is passed from the main prog</span>
  29. <a name="l00013"></a>00013 <span class="comment"> For fluid, passive-scalar, mhd, mangnetic-temperature</span>
  30. <a name="l00014"></a>00014 <span class="comment"> For RB-convection:</span>
  31. <a name="l00015"></a>00015 <span class="comment"> </span>
  32. <a name="l00016"></a>00016 <span class="comment"> For Pr_large, u_small: nlin1 = T[(U.grad)U1] - Ra*Pr*T(k) </span>
  33. <a name="l00017"></a>00017 <span class="comment"> For Pr_large, u_large: nlin1 = T[(U.grad)U1] - T(k) </span>
  34. <a name="l00018"></a>00018 <span class="comment"> For Pr_small or 0, u_small: nlin1 = T[(U.grad)U1] - T(k) </span>
  35. <a name="l00019"></a>00019 <span class="comment"> For Pr_small or 0, u_large: nlin1 = T[(U.grad)U1] - Ra*T(k) </span>
  36. <a name="l00020"></a>00020 <span class="comment"></span>
  37. <a name="l00021"></a>00021 <span class="comment">=================================================================================*/</span>
  38. <a name="l00022"></a>00022
  39. <a name="l00023"></a>00023 <span class="keywordtype">void</span> <a class="code" href="classIncFluid.html#dc1a9fbdb5ca973f18c5b16ef6bae753">IncFluid::Compute_force</a>()
  40. <a name="l00024"></a>00024 {
  41. <a name="l00025"></a>00025 <span class="keywordflow">switch</span> (<a class="code" href="classIncFluid.html#be6a535bbf3b51ff6b226f9d1ce0e2e3" title="forcing procedure, eg, 0 for decaying">force_field_proc</a>)
  42. <a name="l00026"></a>00026 {
  43. <a name="l00027"></a>00027 <span class="keywordflow">case</span> (0) : <a class="code" href="classIncFluid.html#18abdeb2ccca346327f99c8fd81b1f1b">Compute_force_decay</a>(); <span class="keywordflow">break</span>; <span class="comment">// Decaying </span>
  44. <a name="l00028"></a>00028 <span class="keywordflow">case</span> (1) : <a class="code" href="classIncFluid.html#bc1b70c0993e23bc253beb12e22cb171">Compute_force_const_energy_helicity_supply</a>(); <span class="keywordflow">break</span>;
  45. <a name="l00029"></a>00029 <span class="keywordflow">case</span> (2) : <a class="code" href="classIncFluid.html#427206858e52e4c0091ba4b0caec6c7c">Compute_force_const_energy_helicity</a>(); <span class="keywordflow">break</span>;
  46. <a name="l00030"></a>00030 <span class="keywordflow">case</span> (3) : <a class="code" href="classIncFluid.html#61e150904c23f3bd85d7bb18efb22916">Compute_force_Taylor_Green</a>(); <span class="keywordflow">break</span>;
  47. <a name="l00031"></a>00031 <span class="keywordflow">case</span> (4) : <a class="code" href="classIncFluid.html#3e40e36bb1392df4485bdbf30c682d17">Compute_force_ABC</a>(); <span class="keywordflow">break</span>;
  48. <a name="l00032"></a>00032 <span class="keywordflow">case</span> (5) : <a class="code" href="classIncFluid.html#2f2382a476338166dc905d0c61866b52" title="Read F(k) for some modes as initial condition.">Compute_force_given_modes_SIMPLE</a>(); <span class="keywordflow">break</span>;
  49. <a name="l00033"></a>00033 <span class="keywordflow">case</span> (6) : <a class="code" href="classIncFluid.html#dc7dc27576110bc046c422bf8d311b57" title="Read V(k) for some modes as initial condition.">Compute_force_given_modes_VORTICITY</a>(); <span class="keywordflow">break</span>;
  50. <a name="l00034"></a>00034 <span class="keywordflow">case</span> (11) : <a class="code" href="classIncFluid.html#e0293b45a04a6373b6ee8e158d7ee7be">Compute_force_Liquid_metal</a>(); <span class="keywordflow">break</span>;
  51. <a name="l00035"></a>00035 }
  52. <a name="l00036"></a>00036 }
  53. <a name="l00037"></a>00037
  54. <a name="l00038"></a>00038 <span class="comment">//</span>
  55. <a name="l00039"></a>00039 <span class="comment">//</span>
  56. <a name="l00040"></a>00040
  57. <a name="l00041"></a>00041 <span class="keywordtype">void</span> <a class="code" href="classIncFluid.html#dc1a9fbdb5ca973f18c5b16ef6bae753">IncFluid::Compute_force</a>(<a class="code" href="classIncSF.html" title="Incompressible scalar field IncSF.">IncSF</a>&amp; T)
  58. <a name="l00042"></a>00042 {
  59. <a name="l00043"></a>00043 <span class="keywordflow">switch</span> (<a class="code" href="classIncFluid.html#be6a535bbf3b51ff6b226f9d1ce0e2e3" title="forcing procedure, eg, 0 for decaying">force_field_proc</a>)
  60. <a name="l00044"></a>00044 {
  61. <a name="l00045"></a>00045 <span class="keywordflow">case</span> (0) : <a class="code" href="classIncFluid.html#18abdeb2ccca346327f99c8fd81b1f1b">Compute_force_decay</a>(T); <span class="keywordflow">break</span>; <span class="comment">// Decaying </span>
  62. <a name="l00046"></a>00046 <span class="keywordflow">case</span> (1) : <a class="code" href="classIncFluid.html#bc1b70c0993e23bc253beb12e22cb171">Compute_force_const_energy_helicity_supply</a>(T); <span class="keywordflow">break</span>;
  63. <a name="l00047"></a>00047 <span class="keywordflow">case</span> (2) : <a class="code" href="classIncFluid.html#427206858e52e4c0091ba4b0caec6c7c">Compute_force_const_energy_helicity</a>(T); <span class="keywordflow">break</span>;
  64. <a name="l00048"></a>00048 <span class="keywordflow">case</span> (3) : <a class="code" href="classIncFluid.html#61e150904c23f3bd85d7bb18efb22916">Compute_force_Taylor_Green</a>(T); <span class="keywordflow">break</span>;
  65. <a name="l00049"></a>00049 <span class="keywordflow">case</span> (4) : <a class="code" href="classIncFluid.html#3e40e36bb1392df4485bdbf30c682d17">Compute_force_ABC</a>(T); <span class="keywordflow">break</span>;
  66. <a name="l00050"></a>00050 <span class="keywordflow">case</span> (5) : <a class="code" href="classIncFluid.html#2f2382a476338166dc905d0c61866b52" title="Read F(k) for some modes as initial condition.">Compute_force_given_modes_SIMPLE</a>(T); <span class="keywordflow">break</span>;
  67. <a name="l00051"></a>00051 <span class="keywordflow">case</span> (6) : <a class="code" href="classIncFluid.html#dc7dc27576110bc046c422bf8d311b57" title="Read V(k) for some modes as initial condition.">Compute_force_given_modes_VORTICITY</a>(T); <span class="keywordflow">break</span>;
  68. <a name="l00052"></a>00052 }
  69. <a name="l00053"></a>00053 }
  70. <a name="l00054"></a>00054
  71. <a name="l00055"></a>00055 <span class="comment">//</span>
  72. <a name="l00056"></a>00056 <span class="comment">//</span>
  73. <a name="l00057"></a>00057
  74. <a name="l00058"></a>00058 <span class="keywordtype">void</span> <a class="code" href="classIncFluid.html#dc1a9fbdb5ca973f18c5b16ef6bae753">IncFluid::Compute_force</a>(<a class="code" href="classIncVF.html" title="Incompressible vector field IncVF.">IncVF</a>&amp; W)
  75. <a name="l00059"></a>00059 {
  76. <a name="l00060"></a>00060 <span class="keywordflow">switch</span> (<a class="code" href="classIncFluid.html#be6a535bbf3b51ff6b226f9d1ce0e2e3" title="forcing procedure, eg, 0 for decaying">force_field_proc</a>)
  77. <a name="l00061"></a>00061 {
  78. <a name="l00062"></a>00062 <span class="keywordflow">case</span> (0) : <a class="code" href="classIncFluid.html#18abdeb2ccca346327f99c8fd81b1f1b">Compute_force_decay</a>(W); <span class="keywordflow">break</span>; <span class="comment">// Decaying </span>
  79. <a name="l00063"></a>00063 <span class="keywordflow">case</span> (1) : <a class="code" href="classIncFluid.html#bc1b70c0993e23bc253beb12e22cb171">Compute_force_const_energy_helicity_supply</a>(W); <span class="keywordflow">break</span>;
  80. <a name="l00064"></a>00064 <span class="keywordflow">case</span> (2) : <a class="code" href="classIncFluid.html#427206858e52e4c0091ba4b0caec6c7c">Compute_force_const_energy_helicity</a>(W); <span class="keywordflow">break</span>;
  81. <a name="l00065"></a>00065 <span class="keywordflow">case</span> (3) : <a class="code" href="classIncFluid.html#61e150904c23f3bd85d7bb18efb22916">Compute_force_Taylor_Green</a>(W); <span class="keywordflow">break</span>;
  82. <a name="l00066"></a>00066 <span class="keywordflow">case</span> (4) : <a class="code" href="classIncFluid.html#3e40e36bb1392df4485bdbf30c682d17">Compute_force_ABC</a>(W); <span class="keywordflow">break</span>;
  83. <a name="l00067"></a>00067 <span class="keywordflow">case</span> (5) : <a class="code" href="classIncFluid.html#2f2382a476338166dc905d0c61866b52" title="Read F(k) for some modes as initial condition.">Compute_force_given_modes_SIMPLE</a>(W); <span class="keywordflow">break</span>;
  84. <a name="l00068"></a>00068 <span class="keywordflow">case</span> (6) : <a class="code" href="classIncFluid.html#dc7dc27576110bc046c422bf8d311b57" title="Read V(k) for some modes as initial condition.">Compute_force_given_modes_VORTICITY</a>(W); <span class="keywordflow">break</span>;
  85. <a name="l00069"></a>00069 <span class="keywordflow">case</span> (11): <a class="code" href="classIncFluid.html#ad6c3c6c555db37ffbfc05338862d65d">Compute_force_DYNAMO_SIX_MODE</a>(W); <span class="keywordflow">break</span>;
  86. <a name="l00070"></a>00070 }
  87. <a name="l00071"></a>00071 }
  88. <a name="l00072"></a>00072
  89. <a name="l00073"></a>00073 <span class="comment">//</span>
  90. <a name="l00074"></a>00074 <span class="comment">//</span>
  91. <a name="l00075"></a>00075
  92. <a name="l00076"></a>00076 <span class="keywordtype">void</span> <a class="code" href="classIncFluid.html#dc1a9fbdb5ca973f18c5b16ef6bae753">IncFluid::Compute_force</a>(<a class="code" href="classIncVF.html" title="Incompressible vector field IncVF.">IncVF</a>&amp; W, <a class="code" href="classIncSF.html" title="Incompressible scalar field IncSF.">IncSF</a>&amp; T)
  93. <a name="l00077"></a>00077 {
  94. <a name="l00078"></a>00078 <span class="keywordflow">switch</span> (<a class="code" href="classIncFluid.html#be6a535bbf3b51ff6b226f9d1ce0e2e3" title="forcing procedure, eg, 0 for decaying">force_field_proc</a>)
  95. <a name="l00079"></a>00079 {
  96. <a name="l00080"></a>00080 <span class="keywordflow">case</span> (0) : <a class="code" href="classIncFluid.html#18abdeb2ccca346327f99c8fd81b1f1b">Compute_force_decay</a>(W, T); <span class="keywordflow">break</span>; <span class="comment">// Decaying </span>
  97. <a name="l00081"></a>00081 <span class="keywordflow">case</span> (1) : <a class="code" href="classIncFluid.html#bc1b70c0993e23bc253beb12e22cb171">Compute_force_const_energy_helicity_supply</a>(W, T); <span class="keywordflow">break</span>;
  98. <a name="l00082"></a>00082 <span class="keywordflow">case</span> (2) : <a class="code" href="classIncFluid.html#427206858e52e4c0091ba4b0caec6c7c">Compute_force_const_energy_helicity</a>(W, T); <span class="keywordflow">break</span>;
  99. <a name="l00083"></a>00083 <span class="keywordflow">case</span> (3) : <a class="code" href="classIncFluid.html#61e150904c23f3bd85d7bb18efb22916">Compute_force_Taylor_Green</a>(W, T); <span class="keywordflow">break</span>;
  100. <a name="l00084"></a>00084 <span class="keywordflow">case</span> (4) : <a class="code" href="classIncFluid.html#3e40e36bb1392df4485bdbf30c682d17">Compute_force_ABC</a>(W, T); <span class="keywordflow">break</span>;
  101. <a name="l00085"></a>00085 <span class="keywordflow">case</span> (5) : <a class="code" href="classIncFluid.html#2f2382a476338166dc905d0c61866b52" title="Read F(k) for some modes as initial condition.">Compute_force_given_modes_SIMPLE</a>(W, T); <span class="keywordflow">break</span>;
  102. <a name="l00086"></a>00086 <span class="keywordflow">case</span> (6) : <a class="code" href="classIncFluid.html#dc7dc27576110bc046c422bf8d311b57" title="Read V(k) for some modes as initial condition.">Compute_force_given_modes_VORTICITY</a>(W, T); <span class="keywordflow">break</span>;
  103. <a name="l00087"></a>00087 }
  104. <a name="l00088"></a>00088 }
  105. <a name="l00089"></a>00089
  106. <a name="l00090"></a>00090 <span class="comment">/*=============================================================================</span>
  107. <a name="l00091"></a>00091 <span class="comment"></span>
  108. <a name="l00092"></a>00092 <span class="comment"> Force for RB turbulence</span>
  109. <a name="l00093"></a>00093 <span class="comment"></span>
  110. <a name="l00094"></a>00094 <span class="comment">=================================================================================*/</span>
  111. <a name="l00095"></a>00095
  112. <a name="l00096"></a><a class="code" href="classIncFluid.html#b2d03a8cb79862962274a275f673d253">00096</a> <span class="keywordtype">void</span> <a class="code" href="classIncFluid.html#b2d03a8cb79862962274a275f673d253">IncFluid::Compute_force_RB</a>(<a class="code" href="classIncSF.html" title="Incompressible scalar field IncSF.">IncSF</a>&amp; T, <a class="code" href="basis__basicfn__inline_8h.html#b3383e72bb58d5e6faf0501cd117acfa">DP</a> Ra, <a class="code" href="basis__basicfn__inline_8h.html#b3383e72bb58d5e6faf0501cd117acfa">DP</a> Pr, <span class="keywordtype">string</span> Pr_switch, <span class="keywordtype">string</span> RB_Uscaling)
  113. <a name="l00097"></a>00097 {
  114. <a name="l00098"></a>00098
  115. <a name="l00099"></a>00099 <span class="comment">// For the velocity field</span>
  116. <a name="l00100"></a>00100 <span class="keywordflow">if</span> (Pr_switch == <span class="stringliteral">"PRLARGE"</span>)
  117. <a name="l00101"></a>00101 {
  118. <a name="l00102"></a>00102 <span class="keywordflow">if</span> (RB_Uscaling == <span class="stringliteral">"USMALL"</span>)
  119. <a name="l00103"></a>00103 *<a class="code" href="classIncVF.html#e5fe0abba839d872aa2250b165953fb4" title="Force along x .">Force1</a> = (Ra*Pr)*(*T.<a class="code" href="classCSF.html#3b75b0fe8368d57759f1a67a050e6367" title=".">F</a>); <span class="comment">// (u.grad)u-Ra*Pr*theta </span>
  120. <a name="l00104"></a>00104
  121. <a name="l00105"></a>00105 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (RB_Uscaling == <span class="stringliteral">"ULARGE"</span>)
  122. <a name="l00106"></a>00106 *<a class="code" href="classIncVF.html#e5fe0abba839d872aa2250b165953fb4" title="Force along x .">Force1</a> = (*T.<a class="code" href="classCSF.html#3b75b0fe8368d57759f1a67a050e6367" title=".">F</a>); <span class="comment">// (u.grad)u-theta </span>
  123. <a name="l00107"></a>00107 }
  124. <a name="l00108"></a>00108
  125. <a name="l00109"></a>00109 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((Pr_switch == <span class="stringliteral">"PRSMALL"</span>) || (Pr_switch == <span class="stringliteral">"PRZERO"</span>))
  126. <a name="l00110"></a>00110 {
  127. <a name="l00111"></a>00111 <span class="keywordflow">if</span> (RB_Uscaling == <span class="stringliteral">"USMALL"</span>)
  128. <a name="l00112"></a>00112 *<a class="code" href="classIncVF.html#e5fe0abba839d872aa2250b165953fb4" title="Force along x .">Force1</a> = (Ra)*(*T.<a class="code" href="classCSF.html#3b75b0fe8368d57759f1a67a050e6367" title=".">F</a>); <span class="comment">// (u.grad)u-theta</span>
  129. <a name="l00113"></a>00113
  130. <a name="l00114"></a>00114 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (RB_Uscaling == <span class="stringliteral">"ULARGE"</span>)
  131. <a name="l00115"></a>00115 *<a class="code" href="classIncVF.html#e5fe0abba839d872aa2250b165953fb4" title="Force along x .">Force1</a> = (Pr)*(*T.<a class="code" href="classCSF.html#3b75b0fe8368d57759f1a67a050e6367" title=".">F</a>); <span class="comment">// (u.grad)u-theta</span>
  132. <a name="l00116"></a>00116 }
  133. <a name="l00117"></a>00117
  134. <a name="l00118"></a>00118
  135. <a name="l00119"></a>00119 *<a class="code" href="classIncVF.html#80f54d518c56490879a060daab0b11cd" title="Force along y .">Force2</a> = 0.0;
  136. <a name="l00120"></a>00120 *<a class="code" href="classIncVF.html#9165c41fad6098c9798d207972ae918c" title="Force along z .">Force3</a> = 0.0;
  137. <a name="l00121"></a>00121
  138. <a name="l00122"></a>00122 <span class="comment">// For the temperature field</span>
  139. <a name="l00123"></a>00123
  140. <a name="l00124"></a>00124 <span class="keywordflow">if</span> (Pr_switch == <span class="stringliteral">"PRZERO"</span>)
  141. <a name="l00125"></a>00125 *T.<a class="code" href="classIncSF.html#024757d3273e5cb1e89b3bad3b0fa336" title="Force array for scalar .">Force</a> = 0.0; <span class="comment">// Do nothing; Nonlinear term (u.grad)T does not exist- see single-time step</span>
  142. <a name="l00126"></a>00126
  143. <a name="l00127"></a>00127 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Pr_switch == <span class="stringliteral">"PRLARGE"</span>)
  144. <a name="l00128"></a>00128 *T.<a class="code" href="classIncSF.html#024757d3273e5cb1e89b3bad3b0fa336" title="Force array for scalar .">Force</a> = *<a class="code" href="classCVF.html#77e2105a2d7d2a35cc65987f28951841" title=".">V1</a>; <span class="comment">// F(T) = ux(k) </span>
  145. <a name="l00129"></a>00129
  146. <a name="l00130"></a>00130 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Pr_switch == <span class="stringliteral">"PRSMALL"</span>)
  147. <a name="l00131"></a>00131 *T.<a class="code" href="classIncSF.html#024757d3273e5cb1e89b3bad3b0fa336" title="Force array for scalar .">Force</a> = complex&lt;DP&gt;(1/Pr, 0)*((*<a class="code" href="classCVF.html#77e2105a2d7d2a35cc65987f28951841" title=".">V1</a>)); ; <span class="comment">//F(T) = ux(k)/Pr</span>
  148. <a name="l00132"></a>00132
  149. <a name="l00133"></a>00133 <span class="keywordflow">if</span> (<a class="code" href="classIncVF.html#ea2b44d03dea059e159fc7bf56db553b" title="Alias switch: ALIAS or DEALIAS.">alias_switch</a> == <span class="stringliteral">"DEALIAS"</span>) <a class="code" href="classIncVF.html#6f8d2554e1cc9bed9a3c351cf0a7b5d9">Dealias_force</a>(T);
  150. <a name="l00134"></a>00134
  151. <a name="l00135"></a>00135 }
  152. <a name="l00136"></a>00136
  153. <a name="l00137"></a><a class="code" href="classIncFluid.html#bca4ff3fa01026825950d6746251078c">00137</a> <span class="keywordtype">void</span> <a class="code" href="classIncFluid.html#b2d03a8cb79862962274a275f673d253">IncFluid::Compute_force_RB</a>(<a class="code" href="classIncVF.html" title="Incompressible vector field IncVF.">IncVF</a>&amp; W, <a class="code" href="classIncSF.html" title="Incompressible scalar field IncSF.">IncSF</a>&amp; T, <a class="code" href="basis__basicfn__inline_8h.html#b3383e72bb58d5e6faf0501cd117acfa">DP</a> Ra, <a class="code" href="basis__basicfn__inline_8h.html#b3383e72bb58d5e6faf0501cd117acfa">DP</a> Pr, <span class="keywordtype">string</span> Pr_switch, <span class="keywordtype">string</span> RB_Uscaling)
  154. <a name="l00138"></a>00138 {
  155. <a name="l00139"></a>00139 <a class="code" href="classIncFluid.html#b2d03a8cb79862962274a275f673d253">IncFluid::Compute_force_RB</a>(T, Ra, Pr, Pr_switch, RB_Uscaling);
  156. <a name="l00140"></a>00140
  157. <a name="l00141"></a>00141 *W.<a class="code" href="classIncVF.html#e5fe0abba839d872aa2250b165953fb4" title="Force along x .">Force1</a> = 0.0;
  158. <a name="l00142"></a>00142 *W.<a class="code" href="classIncVF.html#80f54d518c56490879a060daab0b11cd" title="Force along y .">Force2</a> = 0.0;
  159. <a name="l00143"></a>00143 *W.<a class="code" href="classIncVF.html#9165c41fad6098c9798d207972ae918c" title="Force along z .">Force3</a> = 0.0;
  160. <a name="l00144"></a>00144
  161. <a name="l00145"></a>00145 <span class="keywordflow">if</span> (<a class="code" href="classIncVF.html#ea2b44d03dea059e159fc7bf56db553b" title="Alias switch: ALIAS or DEALIAS.">alias_switch</a> == <span class="stringliteral">"DEALIAS"</span>) W.<a class="code" href="classIncVF.html#6f8d2554e1cc9bed9a3c351cf0a7b5d9">Dealias_force</a>();
  162. <a name="l00146"></a>00146 }
  163. <a name="l00147"></a>00147
  164. <a name="l00148"></a>00148
  165. <a name="l00149"></a>00149 <span class="comment">/*=============================================================================</span>
  166. <a name="l00150"></a>00150 <span class="comment"></span>
  167. <a name="l00151"></a>00151 <span class="comment"> Decaying turbulence</span>
  168. <a name="l00152"></a>00152 <span class="comment"> force = 0.0; </span>
  169. <a name="l00153"></a>00153 <span class="comment"></span>
  170. <a name="l00154"></a>00154 <span class="comment">=================================================================================*/</span>
  171. <a name="l00155"></a>00155
  172. <a name="l00156"></a>00156
  173. <a name="l00157"></a>00157 <span class="keywordtype">void</span> <a class="code" href="classIncFluid.html#18abdeb2ccca346327f99c8fd81b1f1b">IncFluid::Compute_force_decay</a>()
  174. <a name="l00158"></a>00158 {
  175. <a name="l00159"></a>00159 *<a class="code" href="classIncVF.html#e5fe0abba839d872aa2250b165953fb4" title="Force along x .">Force1</a> = 0.0;
  176. <a name="l00160"></a>00160 *<a class="code" href="classIncVF.html#80f54d518c56490879a060daab0b11cd" title="Force along y .">Force2</a> = 0.0;
  177. <a name="l00161"></a>00161 *<a class="code" href="classIncVF.html#9165c41fad6098c9798d207972ae918c" title="Force along z .">Force3</a> = 0.0;
  178. <a name="l00162"></a>00162
  179. <a name="l00163"></a>00163 <span class="keywordflow">if</span> (<a class="code" href="classIncVF.html#ea2b44d03dea059e159fc7bf56db553b" title="Alias switch: ALIAS or DEALIAS.">alias_switch</a> == <span class="stringliteral">"DEALIAS"</span>) <a class="code" href="classIncVF.html#6f8d2554e1cc9bed9a3c351cf0a7b5d9">Dealias_force</a>();
  180. <a name="l00164"></a>00164 }
  181. <a name="l00165"></a>00165
  182. <a name="l00166"></a>00166 <span class="keywordtype">void</span> <a class="code" href="classIncFluid.html#18abdeb2ccca346327f99c8fd81b1f1b">IncFluid::Compute_force_decay</a>(<a class="code" href="classIncSF.html" title="Incompressible scalar field IncSF.">IncSF</a>&amp; T)
  183. <a name="l00167"></a>00167 {
  184. <a name="l00168"></a>00168 <a class="code" href="classIncFluid.html#dc1a9fbdb5ca973f18c5b16ef6bae753">Compute_force</a>();
  185. <a name="l00169"></a>00169
  186. <a name="l00170"></a>00170 *T.<a class="code" href="classIncSF.html#024757d3273e5cb1e89b3bad3b0fa336" title="Force array for scalar .">Force</a> = 0.0;
  187. <a name="l00171"></a>00171
  188. <a name="l00172"></a>00172 <span class="keywordflow">if</span> (<a class="code" href="classIncVF.html#ea2b44d03dea059e159fc7bf56db553b" title="Alias switch: ALIAS or DEALIAS.">alias_switch</a> == <span class="stringliteral">"DEALIAS"</span>) <a class="code" href="classIncVF.html#6f8d2554e1cc9bed9a3c351cf0a7b5d9">Dealias_force</a>(T);
  189. <a name="l00173"></a>00173 }
  190. <a name="l00174"></a>00174
  191. <a name="l00175"></a>00175 <span class="keywordtype">void</span> <a class="code" href="classIncFluid.html#18abdeb2ccca346327f99c8fd81b1f1b">IncFluid::Compute_force_decay</a>(<a class="code" href="classIncVF.html" title="Incompressible vector field IncVF.">IncVF</a>&amp; W)
  192. <a name="l00176"></a>00176 {
  193. <a name="l00177"></a>00177 <a class="code" href="classIncFluid.html#dc1a9fbdb5ca973f18c5b16ef6bae753">Compute_force</a>();
  194. <a name="l00178"></a>00178
  195. <a name="l00179"></a>00179 *W.<a class="code" href="classIncVF.html#e5fe0abba839d872aa2250b165953fb4" title="Force along x .">Force1</a> = 0.0;
  196. <a name="l00180"></a>00180 *W.<a class="code" href="classIncVF.html#80f54d518c56490879a060daab0b11cd" title="Force along y .">Force2</a> = 0.0;
  197. <a name="l00181"></a>00181 *W.<a class="code" href="classIncVF.html#9165c41fad6098c9798d207972ae918c" title="Force along z .">Force3</a> = 0.0;
  198. <a name="l00182"></a>00182
  199. <a name="l00183"></a>00183 <span class="keywordflow">if</span> (<a class="code" href="classIncVF.html#ea2b44d03dea059e159fc7bf56db553b" title="Alias switch: ALIAS or DEALIAS.">alias_switch</a> == <span class="stringliteral">"DEALIAS"</span>) <a class="code" href="classIncVF.html#6f8d2554e1cc9bed9a3c351cf0a7b5d9">Dealias_force</a>(W);
  200. <a name="l00184"></a>00184 }
  201. <a name="l00185"></a>00185
  202. <a name="l00186"></a>00186 <span class="keywordtype">void</span> <a class="code" href="classIncFluid.html#18abdeb2ccca346327f99c8fd81b1f1b">IncFluid::Compute_force_decay</a>(<a class="code" href="classIncVF.html" title="Incompressible vector field IncVF.">IncVF</a>&amp; W, <a class="code" href="classIncSF.html" title="Incompressible scalar field IncSF.">IncSF</a> &amp;T)
  203. <a name="l00187"></a>00187 {
  204. <a name="l00188"></a>00188 <a class="code" href="classIncFluid.html#dc1a9fbdb5ca973f18c5b16ef6bae753">Compute_force</a>(W);
  205. <a name="l00189"></a>00189
  206. <a name="l00190"></a>00190 *T.<a class="code" href="classIncSF.html#024757d3273e5cb1e89b3bad3b0fa336" title="Force array for scalar .">Force</a> = 0.0;
  207. <a name="l00191"></a>00191
  208. <a name="l00192"></a>00192 <span class="keywordflow">if</span> (<a class="code" href="classIncVF.html#ea2b44d03dea059e159fc7bf56db553b" title="Alias switch: ALIAS or DEALIAS.">alias_switch</a> == <span class="stringliteral">"DEALIAS"</span>) <a class="code" href="classIncVF.html#6f8d2554e1cc9bed9a3c351cf0a7b5d9">Dealias_force</a>(W, T);
  209. <a name="l00193"></a>00193 }
  210. <a name="l00194"></a>00194
  211. <a name="l00195"></a>00195
  212. <a name="l00196"></a>00196
  213. <a name="l00197"></a>00197 <span class="comment">/*=============================================================================</span>
  214. <a name="l00198"></a>00198 <span class="comment"></span>
  215. <a name="l00199"></a>00199 <span class="comment"> Force with constant energy and helicity supply rates</span>
  216. <a name="l00200"></a>00200 <span class="comment"> Note: sk != +1 or -1. Maximum helicity state requires V field to be</span>
  217. <a name="l00201"></a>00201 <span class="comment"> maximum helical, which is zero probability state.</span>
  218. <a name="l00202"></a>00202 <span class="comment"></span>
  219. <a name="l00203"></a>00203 <span class="comment">=================================================================================*/</span>
  220. <a name="l00204"></a>00204
  221. <a name="l00205"></a>00205
  222. <a name="l00206"></a>00206 <span class="keywordtype">void</span> <a class="code" href="classIncFluid.html#bc1b70c0993e23bc253beb12e22cb171">IncFluid::Compute_force_const_energy_helicity_supply</a>()
  223. <a name="l00207"></a>00207 {
  224. <a name="l00208"></a>00208
  225. <a name="l00209"></a>00209 <a class="code" href="basis__basicfn__inline_8h.html#b3383e72bb58d5e6faf0501cd117acfa">DP</a> inner_radius = (*force_field_para)(1);
  226. <a name="l00210"></a>00210 <a class="code" href="basis__basicfn__inline_8h.html#b3383e72bb58d5e6faf0501cd117acfa">DP</a> outer_radius = (*force_field_para)(2);
  227. <a name="l00211"></a>00211 <a class="code" href="basis__basicfn__inline_8h.html#b3383e72bb58d5e6faf0501cd117acfa">DP</a> energy_supply = (*force_field_para)(3);
  228. <a name="l00212"></a>00212 <a class="code" href="basis__basicfn__inline_8h.html#b3383e72bb58d5e6faf0501cd117acfa">DP</a> epsh_by_k_epse = (*force_field_para)(4); <span class="comment">// Hk(k)/(k*e(k))</span>
  229. <a name="l00213"></a>00213
  230. <a name="l00214"></a>00214 <span class="comment">// cout &lt;&lt; *V1 &lt;&lt; *V2 &lt;&lt; *V3 &lt;&lt; endl;</span>
  231. <a name="l00215"></a>00215 <span class="keywordtype">int</span> nf = <a class="code" href="universal__basic_8cc.html#eef7d1e9930fbcb3e626248fb7724e80" title="No of modes in the shell[inner_radius, outer_radius).">Get_number_modes_in_shell</a>(<a class="code" href="classIncVF.html#e8078b9a5c1dfbd111f91dd31560983c" title="Basis type: FOUR or SCFT.">basis_type</a>, <a class="code" href="classIncVF.html#52274608af455b18d27c6e2a9c72c007" title="Size of complex array of CVF, force etc.">N</a>, inner_radius, outer_radius, <a class="code" href="classIncVF.html#cead0e8840176d9682256d90a339d18c" title="Conversion factor for grid to actual wavenumber: .">kfactor</a>);
  232. <a name="l00216"></a>00216 <a class="code" href="basis__basicfn__inline_8h.html#b3383e72bb58d5e6faf0501cd117acfa">DP</a> energy_supply_per_mode = energy_supply / nf;
  233. <a name="l00217"></a>00217
  234. <a name="l00218"></a>00218 <span class="keywordtype">int</span> kx_max = ((int) outer_radius/<a class="code" href="classIncVF.html#cead0e8840176d9682256d90a339d18c" title="Conversion factor for grid to actual wavenumber: .">kfactor</a>[1]) + 1;
  235. <a name="l00219"></a>00219 <span class="keywordtype">int</span> ky_max = ((int) outer_radius/<a class="code" href="classIncVF.html#cead0e8840176d9682256d90a339d18c" title="Conversion factor for grid to actual wavenumber: .">kfactor</a>[2]) + 1;
  236. <a name="l00220"></a>00220 <span class="keywordtype">int</span> kz_max = ((int) outer_radius/<a class="code" href="classIncVF.html#cead0e8840176d9682256d90a339d18c" title="Conversion factor for grid to actual wavenumber: .">kfactor</a>[3]) + 1;
  237. <a name="l00221"></a>00221
  238. <a name="l00222"></a>00222 <span class="keywordtype">int</span> lx, ly, lz;
  239. <a name="l00223"></a>00223 <a class="code" href="basis__basicfn__inline_8h.html#b3383e72bb58d5e6faf0501cd117acfa">DP</a> kkmag, alpha_k, beta_k, ek, sk, temp;
  240. <a name="l00224"></a>00224 TinyVector&lt;complx,3&gt; vorticity;
  241. <a name="l00225"></a>00225
  242. <a name="l00226"></a>00226 *<a class="code" href="classIncVF.html#e5fe0abba839d872aa2250b165953fb4" title="Force along x .">Force1</a> = 0.0; *<a class="code" href="classIncVF.html#80f54d518c56490879a060daab0b11cd" title="Force along y .">Force2</a> = 0.0; *<a class="code" href="classIncVF.html#9165c41fad6098c9798d207972ae918c" title="Force along z .">Force3</a> = 0.0;
  243. <a name="l00227"></a>00227
  244. <a name="l00228"></a>00228 <span class="keywordtype">int</span> kx_min;
  245. <a name="l00229"></a>00229 <span class="keywordflow">if</span> (<a class="code" href="classIncVF.html#e8078b9a5c1dfbd111f91dd31560983c" title="Basis type: FOUR or SCFT.">basis_type</a> == <span class="stringliteral">"FOUR"</span>)
  246. <a name="l00230"></a>00230 kx_min = -kx_max;
  247. <a name="l00231"></a>00231 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classIncVF.html#e8078b9a5c1dfbd111f91dd31560983c" title="Basis type: FOUR or SCFT.">basis_type</a> == <span class="stringliteral">"SCFT"</span>)
  248. <a name="l00232"></a>00232 kx_min = 0;
  249. <a name="l00233"></a>00233
  250. <a name="l00234"></a>00234 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> kx = kx_min; kx &lt;= kx_max; kx++)
  251. <a name="l00235"></a>00235 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> ky = -ky_max; ky &lt;= ky_max; ky++)
  252. <a name="l00236"></a>00236 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> kz = 0; kz &lt;= kz_max; kz++)
  253. <a name="l00237"></a>00237 {
  254. <a name="l00238"></a>00238 lx = <a class="code" href="universal__inline_8h.html#5dece882ac0d6ab919e7fef1e55b55de" title="Get local array index l1 given grid waveno kx.">Get_lx</a>(<a class="code" href="classIncVF.html#e8078b9a5c1dfbd111f91dd31560983c" title="Basis type: FOUR or SCFT.">basis_type</a>, kx, <a class="code" href="classIncVF.html#52274608af455b18d27c6e2a9c72c007" title="Size of complex array of CVF, force etc.">N</a>);
  255. <a name="l00239"></a>00239 ly = <a class="code" href="universal__inline_8h.html#ab6eb8a9549b5df3e5432bd1da9726be" title="3D: Get array index l2 given grid waveno ky.">Get_ly3D</a>(<a class="code" href="classIncVF.html#e8078b9a5c1dfbd111f91dd31560983c" title="Basis type: FOUR or SCFT.">basis_type</a>, ky, <a class="code" href="classIncVF.html#52274608af455b18d27c6e2a9c72c007" title="Size of complex array of CVF, force etc.">N</a>);
  256. <a name="l00240"></a>00240 lz = kz;
  257. <a name="l00241"></a>00241
  258. <a name="l00242"></a>00242 <span class="keywordflow">if</span> ( (lx &gt;= 0) &amp;&amp; (lx &lt; <a class="code" href="basis__basicfn_8cc.html#5b280d17c0a165711d64dda77338d027">local_N1</a>) )
  259. <a name="l00243"></a>00243 {
  260. <a name="l00244"></a>00244 kkmag = <a class="code" href="universal__inline_8h.html#df8a1e8cb2ee7e271672276eb766f28f" title="3D: If WAVENOACTUAL ; else if WAVENOGRID .">Kmagnitude</a>(<a class="code" href="classIncVF.html#e8078b9a5c1dfbd111f91dd31560983c" title="Basis type: FOUR or SCFT.">basis_type</a>, lx, ly, lz, <a class="code" href="classIncVF.html#52274608af455b18d27c6e2a9c72c007" title="Size of complex array of CVF, force etc.">N</a>, <a class="code" href="classIncVF.html#cead0e8840176d9682256d90a339d18c" title="Conversion factor for grid to actual wavenumber: .">kfactor</a>);
  261. <a name="l00245"></a>00245 <span class="keywordflow">if</span> ((kkmag &gt;= inner_radius) &amp;&amp; (kkmag &lt; outer_radius))
  262. <a name="l00246"></a>00246 {
  263. <a name="l00247"></a>00247 ek = <a class="code" href="classCVF.html#136d808dc6530c487d0a52fb986108c5" title="Return modal energy for grid index (i1,i2,i3).">CV_Modal_energy</a>(lx, ly, lz);
  264. <a name="l00248"></a>00248
  265. <a name="l00249"></a>00249 <span class="keywordflow">if</span> (ek &gt; <a class="code" href="basis__basicfn__inline_8h.html#41373c04f336e4cea8c3db37eea29e9f">MYEPS</a>)
  266. <a name="l00250"></a>00250 {
  267. <a name="l00251"></a>00251 temp = energy_supply_per_mode/ (2*ek);
  268. <a name="l00252"></a>00252 sk = <a class="code" href="classCVF.html#1d21e4c4d57845f7c6576440c1b55926" title="Return modal helicity for the grid index (i1,i2,i3).">CV_Modal_helicity</a>(lx, ly, lz) / (kkmag * ek);
  269. <a name="l00253"></a>00253
  270. <a name="l00254"></a>00254 alpha_k = temp * (1-sk*epsh_by_k_epse) / (1 - sk*sk);
  271. <a name="l00255"></a>00255 beta_k = temp * (epsh_by_k_epse - sk) / (1 - sk*sk);
  272. <a name="l00256"></a>00256
  273. <a name="l00257"></a>00257 <a class="code" href="classCVF.html#0d53a1e7fac99381342302237975c224" title="vorticity = modal vorticity for grid index (i1,i2,i3).">CV_Modal_vorticity</a>(lx, ly, lz, vorticity);
  274. <a name="l00258"></a>00258 (*Force1)(lx, ly, lz) = alpha_k * (*<a class="code" href="classCVF.html#77e2105a2d7d2a35cc65987f28951841" title=".">V1</a>)(lx, ly, lz) + beta_k * vorticity(0);
  275. <a name="l00259"></a>00259 (*Force2)(lx, ly, lz) = alpha_k * (*<a class="code" href="classCVF.html#baeccade011a2b615777dc89f2710929" title=".">V2</a>)(lx, ly, lz) + beta_k * vorticity(1);
  276. <a name="l00260"></a>00260 (*Force3)(lx, ly, lz) = alpha_k * (*<a class="code" href="classCVF.html#9f69a238438f20339b5c7e05faa3d1f6" title=".">V3</a>)(lx, ly, lz) + beta_k * vorticity(2);
  277. <a name="l00261"></a>00261
  278. <a name="l00262"></a>00262 <span class="keywordflow">if</span> (<a class="code" href="classIncVF.html#e8078b9a5c1dfbd111f91dd31560983c" title="Basis type: FOUR or SCFT.">basis_type</a> == <span class="stringliteral">"SCFT"</span>)
  279. <a name="l00263"></a>00263 (*Force1)(lx, ly, lz) = <a class="code" href="basis__basicfn__inline_8h.html#45e47d389068d212e193dd103c7e4adc" title="I = sqrt(-1).">I</a> * (*<a class="code" href="classIncVF.html#e5fe0abba839d872aa2250b165953fb4" title="Force along x .">Force1</a>)(lx, ly, lz);
  280. <a name="l00264"></a>00264 <span class="comment">// because of V1(x) = V1(k..) sin(kx*x)*exp(i ky y) </span>
  281. <a name="l00265"></a>00265 }
  282. <a name="l00266"></a>00266 }
  283. <a name="l00267"></a>00267 }
  284. <a name="l00268"></a>00268 }
  285. <a name="l00269"></a>00269
  286. <a name="l00270"></a>00270 <span class="comment">// if ( (alias_switch == "DEALIAS") &amp;&amp; (Is_alias_array(basis_type, N, *V1, outer_radius, kfactor) == 1) )</span>
  287. <a name="l00271"></a>00271 <span class="comment">// Dealias_force();</span>
  288. <a name="l00272"></a>00272
  289. <a name="l00273"></a>00273 }
  290. <a name="l00274"></a>00274
  291. <a name="l00275"></a>00275
  292. <a name="l00276"></a>00276 <span class="comment">//</span>
  293. <a name="l00277"></a>00277 <span class="comment">// Scalar</span>
  294. <a name="l00278"></a>00278 <span class="comment">//</span>
  295. <a name="l00279"></a>00279
  296. <a name="l00280"></a>00280 <span class="keywordtype">void</span> <a class="code" href="classIncFluid.html#bc1b70c0993e23bc253beb12e22cb171">IncFluid::Compute_force_const_energy_helicity_supply</a>(<a class="code" href="classIncSF.html" title="Incompressible scalar field IncSF.">IncSF</a>&amp; T)
  297. <a name="l00281"></a>00281 {
  298. <a name="l00282"></a>00282 <a class="code" href="basis__basicfn__inline_8h.html#b3383e72bb58d5e6faf0501cd117acfa">DP</a> inner_radius = (*force_field_para)(1);
  299. <a name="l00283"></a>00283 <a class="code" href="basis__basicfn__inline_8h.html#b3383e72bb58d5e6faf0501cd117acfa">DP</a> outer_radius = (*force_field_para)(2);
  300. <a name="l00284"></a>00284 <a class="code" href="basis__basicfn__inline_8h.html#b3383e72bb58d5e6faf0501cd117acfa">DP</a> energy_supply = (*force_field_para)(3);
  301. <a name="l00285"></a>00285 <a class="code" href="basis__basicfn__inline_8h.html#b3383e72bb58d5e6faf0501cd117acfa">DP</a> epsh_by_k_epse = (*force_field_para)(4); <span class="comment">// Hk(k)/(k*e(k))</span>
  302. <a name="l00286"></a>00286 <a class="code" href="basis__basicfn__inline_8h.html#b3383e72bb58d5e6faf0501cd117acfa">DP</a> energy_supply_scalar = (*force_field_para)(5);
  303. <a name="l00287"></a>00287
  304. <a name="l00288"></a>00288
  305. <a name="l00289"></a>00289 <span class="keywordtype">int</span> nf = <a class="code" href="universal__basic_8cc.html#eef7d1e9930fbcb3e626248fb7724e80" title="No of modes in the shell[inner_radius, outer_radius).">Get_number_modes_in_shell</a>(<a class="code" href="classIncVF.html#e8078b9a5c1dfbd111f91dd31560983c" title="Basis type: FOUR or SCFT.">basis_type</a>, <a class="code" href="classIncVF.html#52274608af455b18d27c6e2a9c72c007" title="Size of complex array of CVF, force etc.">N</a>, inner_radius, outer_radius, <a class="code" href="classIncVF.html#cead0e8840176d9682256d90a339d18c" title="Conversion factor for grid to actual wavenumber: .">kfactor</a>);
  306. <a name="l00290"></a>00290 <a class="code" href="basis__basicfn__inline_8h.html#b3383e72bb58d5e6faf0501cd117acfa">DP</a> energy_supply_per_mode = energy_supply / nf;
  307. <a name="l00291"></a>00291 <a class="code" href="basis__basicfn__inline_8h.html#b3383e72bb58d5e6faf0501cd117acfa">DP</a> energy_supply_scalar_per_mode = energy_supply_scalar / nf;
  308. <a name="l00292"></a>00292
  309. <a name="l00293"></a>00293 <span class="keywordtype">int</span> kx_max = ((int) outer_radius/<a class="code" href="classIncVF.html#cead0e8840176d9682256d90a339d18c" title="Conversion factor for grid to actual wavenumber: .">kfactor</a>[1]) + 1;
  310. <a name="l00294"></a>00294 <span class="keywordtype">int</span> ky_max = ((int) outer_radius/<a class="code" href="classIncVF.html#cead0e8840176d9682256d90a339d18c" title="Conversion factor for grid to actual wavenumber: .">kfactor</a>[2]) + 1;
  311. <a name="l00295"></a>00295 <span class="keywordtype">int</span> kz_max = ((int) outer_radius/<a class="code" href="classIncVF.html#cead0e8840176d9682256d90a339d18c" title="Conversion factor for grid to actual wavenumber: .">kfactor</a>[3]) + 1;
  312. <a name="l00296"></a>00296
  313. <a name="l00297"></a>00297 <span class="keywordtype">int</span> lx, ly, lz;
  314. <a name="l00298"></a>00298 <a class="code" href="basis__basicfn__inline_8h.html#b3383e72bb58d5e6faf0501cd117acfa">DP</a> kkmag, alpha_k, beta_k, alpha_k_scalar, ek, sk, temp;
  315. <a name="l00299"></a>00299 TinyVector&lt;complx,3&gt; vorticity;
  316. <a name="l00300"></a>00300
  317. <a name="l00301"></a>00301
  318. <a name="l00302"></a>00302 *<a class="code" href="classIncVF.html#e5fe0abba839d872aa2250b165953fb4" title="Force along x .">Force1</a> = 0.0; *<a class="code" href="classIncVF.html#80f54d518c56490879a060daab0b11cd" title="Force along y .">Force2</a> = 0.0; *<a class="code" href="classIncVF.html#9165c41fad6098c9798d207972ae918c" title="Force along z .">Force3</a> = 0.0;
  319. <a name="l00303"></a>00303 *T.<a class="code" href="classIncSF.html#024757d3273e5cb1e89b3bad3b0fa336" title="Force array for scalar .">Force</a> = 0.0;
  320. <a name="l00304"></a>00304
  321. <a name="l00305"></a>00305 <span class="keywordtype">int</span> kx_min;
  322. <a name="l00306"></a>00306 <span class="keywordflow">if</span> (<a class="code" href="classIncVF.html#e8078b9a5c1dfbd111f91dd31560983c" title="Basis type: FOUR or SCFT.">basis_type</a> == <span class="stringliteral">"FOUR"</span>)
  323. <a name="l00307"></a>00307 kx_min = -kx_max;
  324. <a name="l00308"></a>00308 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classIncVF.html#e8078b9a5c1dfbd111f91dd31560983c" title="Basis type: FOUR or SCFT.">basis_type</a> == <span class="stringliteral">"SCFT"</span>)
  325. <a name="l00309"></a>00309 kx_min = 0;
  326. <a name="l00310"></a>00310
  327. <a name="l00311"></a>00311 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> kx = kx_min; kx &lt;= kx_max; kx++)
  328. <a name="l00312"></a>00312 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> ky = -ky_max; ky &lt;= ky_max; ky++)
  329. <a name="l00313"></a>00313 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> kz = 0; kz &lt;= kz_max; kz++)
  330. <a name="l00314"></a>00314 {
  331. <a name="l00315"></a>00315 lx = <a class="code" href="universal__inline_8h.html#5dece882ac0d6ab919e7fef1e55b55de" title="Get local array index l1 given grid waveno kx.">Get_lx</a>(<a class="code" href="classIncVF.html#e8078b9a5c1dfbd111f91dd31560983c" title="Basis type: FOUR or SCFT.">basis_type</a>, kx, <a class="code" href="classIncVF.html#52274608af455b18d27c6e2a9c72c007" title="Size of complex array of CVF, force etc.">N</a>);
  332. <a name="l00316"></a>00316 ly = <a class="code" href="universal__inline_8h.html#ab6eb8a9549b5df3e5432bd1da9726be" title="3D: Get array index l2 given grid waveno ky.">Get_ly3D</a>(<a class="code" href="classIncVF.html#e8078b9a5c1dfbd111f91dd31560983c" title="Basis type: FOUR or SCFT.">basis_type</a>, ky, <a class="code" href="classIncVF.html#52274608af455b18d27c6e2a9c72c007" title="Size of complex array of CVF, force etc.">N</a>);
  333. <a name="l00317"></a>00317 lz = kz;
  334. <a name="l00318"></a>00318
  335. <a name="l00319"></a>00319 <span class="keywordflow">if</span> ( (lx &gt;= 0) &amp;&amp; (lx &lt; <a class="code" href="basis__basicfn_8cc.html#5b280d17c0a165711d64dda77338d027">local_N1</a>) )
  336. <a name="l00320"></a>00320 {
  337. <a name="l00321"></a>00321 kkmag = <a class="code" href="universal__inline_8h.html#df8a1e8cb2ee7e271672276eb766f28f" title="3D: If WAVENOACTUAL ; else if WAVENOGRID .">Kmagnitude</a>(<a class="code" href="classIncVF.html#e8078b9a5c1dfbd111f91dd31560983c" title="Basis type: FOUR or SCFT.">basis_type</a>, lx, ly, lz, <a class="code" href="classIncVF.html#52274608af455b18d27c6e2a9c72c007" title="Size of complex array of CVF, force etc.">N</a>, <a class="code" href="classIncVF.html#cead0e8840176d9682256d90a339d18c" title="Conversion factor for grid to actual wavenumber: .">kfactor</a>);
  338. <a name="l00322"></a>00322 <span class="keywordflow">if</span> ((kkmag &gt;= inner_radius) &amp;&amp; (kkmag &lt; outer_radius))
  339. <a name="l00323"></a>00323 {
  340. <a name="l00324"></a>00324 ek = <a class="code" href="classCVF.html#136d808dc6530c487d0a52fb986108c5" title="Return modal energy for grid index (i1,i2,i3).">CV_Modal_energy</a>(lx, ly, lz);
  341. <a name="l00325"></a>00325 <span class="keywordflow">if</span> (ek &gt; <a class="code" href="basis__basicfn__inline_8h.html#41373c04f336e4cea8c3db37eea29e9f">MYEPS</a>)
  342. <a name="l00326"></a>00326 {
  343. <a name="l00327"></a>00327 temp = energy_supply_per_mode/ (2*ek);
  344. <a name="l00328"></a>00328 sk = <a class="code" href="classCVF.html#1d21e4c4d57845f7c6576440c1b55926" title="Return modal helicity for the grid index (i1,i2,i3).">CV_Modal_helicity</a>(lx, ly, lz) / (kkmag * ek);
  345. <a name="l00329"></a>00329
  346. <a name="l00330"></a>00330 alpha_k = temp * (1-sk*epsh_by_k_epse) / (1 - sk*sk);
  347. <a name="l00331"></a>00331 beta_k = temp * (epsh_by_k_epse - sk) / (1 - sk*sk);
  348. <a name="l00332"></a>00332
  349. <a name="l00333"></a>00333 <a class="code" href="classCVF.html#0d53a1e7fac99381342302237975c224" title="vorticity = modal vorticity for grid index (i1,i2,i3).">CV_Modal_vorticity</a>(lx, ly, lz, vorticity);
  350. <a name="l00334"></a>00334 (*Force1)(lx, ly, lz) = alpha_k * (*<a class="code" href=

Large files files are truncated, but you can click here to view the full file