From dd2ccafe5cf05a790a612e8a21c9d2e9443e6ba8 Mon Sep 17 00:00:00 2001
From: sniklas142 <niklas.schnierstein@googlemail.com>
Date: Mon, 14 Oct 2019 13:45:49 +0200
Subject: [PATCH] strip ou from field

---
 cpp/full_code/ornstein_uhlenbeck_process.cpp | 28 ++++++++++++++++++++
 cpp/full_code/ornstein_uhlenbeck_process.hpp |  3 +++
 2 files changed, 31 insertions(+)

diff --git a/cpp/full_code/ornstein_uhlenbeck_process.cpp b/cpp/full_code/ornstein_uhlenbeck_process.cpp
index 9351e01b..f5bcbb23 100644
--- a/cpp/full_code/ornstein_uhlenbeck_process.cpp
+++ b/cpp/full_code/ornstein_uhlenbeck_process.cpp
@@ -175,6 +175,34 @@ void ornstein_uhlenbeck_process<rnumber, be>::let_converge(void)
   }
 }
 
+template <class rnumber, field_backend be>
+void ornstein_uhlenbeck_process<rnumber, be>::strip_from_field(
+  field<rnumber, be, THREE> *src)
+{
+  assert(src->real_space_representation==false);
+
+  this->kk->CLOOP_K2(
+          [&](ptrdiff_t cindex,
+            ptrdiff_t xindex,
+            ptrdiff_t yindex,
+            ptrdiff_t zindex,
+            double k2){
+
+              if (k2 <= this->ou_kmax_squ && k2 >= this->ou_kmin_squ){
+
+                for(int cc=0; cc < 3; cc++){
+                  for(int imag=0; imag < 2; imag++){
+                    src->cval(cindex,cc,imag) = 0;
+                  }
+                }
+              }
+
+      }
+
+  );
+
+}
+
 template <class rnumber, field_backend be>
 void ornstein_uhlenbeck_process<rnumber,be>::add_to_field_replace(
   field<rnumber, be, THREE> *src, std::string uv)
diff --git a/cpp/full_code/ornstein_uhlenbeck_process.hpp b/cpp/full_code/ornstein_uhlenbeck_process.hpp
index e164860c..cf635988 100644
--- a/cpp/full_code/ornstein_uhlenbeck_process.hpp
+++ b/cpp/full_code/ornstein_uhlenbeck_process.hpp
@@ -62,6 +62,9 @@ class ornstein_uhlenbeck_process{
         void add_to_field_replace(
           field<rnumber,be,THREE> *src, std::string uv);
 
+        void strip_from_field(
+          field<rnumber, be, THREE> *src);
+
         void calc_ou_vorticity(void);
 
 
-- 
GitLab