PageRenderTime 54ms CodeModel.GetById 16ms RepoModel.GetById 0ms app.codeStats 1ms

/trunk/DOC/html/compute__force_8cc-source.html

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

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