helical_forcing_e_generator() randomized.

This commit is contained in:
Miikka Vaisala
2019-06-27 15:59:58 +08:00
parent 9ae3411cce
commit fd6a5df0d6

View File

@@ -60,6 +60,16 @@ print_diagnostics(const AcMesh& mesh, const int& step, const AcReal& dt)
} }
*/ */
//The is a wrapper for genering random numbers with a chosen system.
static inline AcReal
get_random_number_01()
{
//TODO: Implement better randon number generator http://www.cplusplus.com/reference/random/
return AcReal(rand())/AcReal(RAND_MAX);
}
static inline AcReal3 static inline AcReal3
cross(const AcReal3& a, const AcReal3& b) cross(const AcReal3& a, const AcReal3& b)
{ {
@@ -113,7 +123,7 @@ helical_forcing_e_generator(AcReal3* e_force, const AcReal3 k_force)
k_cross_e = vec_norm(k_cross_e); k_cross_e = vec_norm(k_cross_e);
AcReal3 k_cross_k_cross_e = cross(k_force, k_cross_e); AcReal3 k_cross_k_cross_e = cross(k_force, k_cross_e);
k_cross_k_cross_e = vec_norm(k_cross_k_cross_e); k_cross_k_cross_e = vec_norm(k_cross_k_cross_e);
AcReal phi = 2.9; //TODO RANDOMIZE [0, 2pi] AcReal phi = AcReal(2.0)*AcReal(M_PI)*get_random_number_01();
AcReal3 ee_tmp1 = vec_multi_scal(cos(phi),k_cross_e); AcReal3 ee_tmp1 = vec_multi_scal(cos(phi),k_cross_e);
AcReal3 ee_tmp2 = vec_multi_scal(sin(phi), k_cross_k_cross_e); AcReal3 ee_tmp2 = vec_multi_scal(sin(phi), k_cross_k_cross_e);
@@ -337,6 +347,9 @@ run_simulation(void)
AcReal bin_crit_t = bin_save_t; AcReal bin_crit_t = bin_save_t;
/* initialize random seed: */
srand (312256655);
/* Step the simulation */ /* Step the simulation */
for (int i = 1; i < max_steps; ++i) { for (int i = 1; i < max_steps; ++i) {