diff --git a/wetb/hawc2/htc_contents.py b/wetb/hawc2/htc_contents.py
index bd40ea4e2b004e22c953d6b472d774a7e53ee865..2df59c6014deb1c32c413f7b1863f21297463a71 100644
--- a/wetb/hawc2/htc_contents.py
+++ b/wetb/hawc2/htc_contents.py
@@ -14,6 +14,7 @@ from builtins import zip
 from builtins import int
 from builtins import str
 from future import standard_library
+import os
 standard_library.install_aliases()
 from collections import OrderedDict
 import collections
@@ -119,8 +120,8 @@ class HTCContents(object):
                 ending = "__%d" % (1 + float("0%s" % ending.replace("__", "")))
             self[contents.name_ + ending] = contents
 
-    def add_section(self, name, allow_duplicate_section=False):
-        if name in self and allow_duplicate_section is False:
+    def add_section(self, name, allow_duplicate=False):
+        if name in self and allow_duplicate is False:
             return self[name]
         section = HTCSection(name)
         self._add_contents(section)
@@ -363,8 +364,9 @@ class HTCDefaults(object):
 
     def add_mann_turbulence(self, L=29.4, ae23=1, Gamma=3.9, seed=1001, high_frq_compensation=True,
                             filenames=None,
-                            no_grid_points=(4096, 32, 32), box_dimension=(6000, 100, 100),
-                            std_scaling=(1, .8, .5)):
+                            no_grid_points=(16384, 32, 32), box_dimension=(6000, 100, 100),
+                            dont_scale=False,
+                            std_scaling=None):
         wind = self.add_section('wind')
         wind.turb_format = 1
         mann = wind.add_section('mann')
@@ -383,15 +385,38 @@ class HTCDefaults(object):
             setattr(mann, 'filename_%s' % c, filename)
         for c, n, dim in zip(['u', 'v', 'w'], no_grid_points, box_dimension):
             setattr(mann, 'box_dim_%s' % c, "%d %.4f" % (n, dim / (n - 1)))
-        if std_scaling is None:
+        if dont_scale:
             mann.dont_scale = 1
         else:
             try:
                 del mann.dont_scale
             except KeyError:
                 pass
+        if std_scaling is not None:
             mann.std_scaling = "%f %f %f" % std_scaling
+        else:
+            try:
+                del mann.std_scaling
+            except KeyError:
+                pass
+            
+
+
+    def add_turb_export(self, filename="export_%s.turb", samplefrq = None):
+        exp = self.wind.add_section('turb_export', allow_duplicate=True)
+        for uvw in 'uvw':
+            exp.add_line('filename_%s'%uvw, [filename%uvw])
+        sf = samplefrq or max(1,int( self.wind.mann.box_dim_u[1]/(self.wind.wsp[0] * self.deltat())))
+        exp.samplefrq = sf
+        if "time" in self.output:
+            exp.time_start = self.output.time[0]
+        else:
+            exp.time_start = 0
+        exp.nsteps = (self.simulation.time_stop[0]-exp.time_start[0]) / self.deltat()
+        for vw in 'vw':
+            exp.add_line('box_dim_%s'%vw, self.wind.mann['box_dim_%s'%vw].values)
 
+        
 
     def import_dtu_we_controller_input(self, filename):
         dtu_we_controller = [dll for dll in self.dll if dll.name[0] == 'dtu_we_controller'][0]
diff --git a/wetb/hawc2/htc_file.py b/wetb/hawc2/htc_file.py
index 2ae9e14518d7c0f06903f92904e35d594bdcdcb3..087fb242f3e9aefa4eaa9a9a24573daebe11891d 100644
--- a/wetb/hawc2/htc_file.py
+++ b/wetb/hawc2/htc_file.py
@@ -197,7 +197,7 @@ class HTCFile(HTCContents, HTCDefaults):
         with open(filename, 'w', encoding='cp1252') as fid:
             fid.write(str(self))
 
-    def set_name(self, name, htc_folder="htc", log_folder="log", res_folder="res"):
+    def set_name(self, name, htc_folder="htc", log_folder="log", res_folder="res", animation_folder='animation', visualization_folder="visualization"):
         #if os.path.isabs(folder) is False and os.path.relpath(folder).startswith("htc" + os.path.sep):
         self.contents #load if not loaded
         fmt_folder = lambda folder : "./" + os.path.relpath(folder).replace("\\", "/")
@@ -207,6 +207,10 @@ class HTCFile(HTCContents, HTCDefaults):
             self.simulation.logfile = os.path.join(fmt_folder(log_folder), "%s.log" % name).replace("\\", "/")
         elif 'test_structure' in self and 'logfile' in self.test_structure:  # hawc2aero
             self.test_structure.logfile = os.path.join(fmt_folder(log_folder), "%s.log" % name).replace("\\", "/")
+        if 'simulation' in self and 'animation' in self.simulation:
+            self.simulation.animation = os.path.join(fmt_folder(animation_folder), "%s.dat" % name).replace("\\", "/")
+        if 'simulation' in self and 'visualization' in self.simulation:
+            self.simulation.visualization = os.path.join(fmt_folder(visualization_folder), "%s.hdf5" % name).replace("\\", "/")
         self.output.filename = os.path.join(fmt_folder(res_folder), "%s" % name).replace("\\", "/")
 
     def set_time(self, start=None, stop=None, step=None):
@@ -354,6 +358,20 @@ class HTCFile(HTCContents, HTCDefaults):
 
         if errorcode or 'Elapsed time' not in log:
             raise Exception (str(stdout) + str(stderr))
+        
+    def deltat(self):
+        return self.simulation.newmark.deltat[0]
+    
+    def get_body(self, name):
+        lst = [b for b in self.new_htc_structure if b.name_=="main_body" and b.name[0]==name]
+        if len(lst)==1:
+            return lst[0]
+        else:
+            if len(lst)==0:
+                raise ValueError("Body '%s' not found"%name)
+            else:
+                raise NotImplementedError()
+        
 
 class H2aeroHTCFile(HTCFile):
     def __init__(self, filename=None, modelpath=None):
diff --git a/wetb/hawc2/tests/test_htc_file.py b/wetb/hawc2/tests/test_htc_file.py
index 8d2515f26998fb4fe134a7935f8d278c76a73d82..e96d3d16ee9cc69f3c9acdf35f7f23c687c7c8dd 100644
--- a/wetb/hawc2/tests/test_htc_file.py
+++ b/wetb/hawc2/tests/test_htc_file.py
@@ -159,6 +159,25 @@ class TestHtcFile(unittest.TestCase):
             self.assertEqual(a.strip(), b.strip())
         self.assertEqual(htcfile.wind.turb_format[0], 1)
         self.assertEqual(htcfile.wind.turb_format.comments, "")
+        
+    def test_add_turb_export(self):
+        htc = HTCFile()
+        htc.add_mann_turbulence(30.1, 1.1, 3.3, 102, False)
+        htc.set_time(100,700,0.02)
+        htc.add_turb_export()
+        s = """begin turb_export;
+  filename_u\texport_u.turb;
+  filename_v\texport_v.turb;
+  filename_w\texport_w.turb;
+  samplefrq\t7;
+  time_start\t100;
+  nsteps\t30000.0;
+  box_dim_v\t32 3.2258;
+  box_dim_w\t32 3.2258;
+end turb_export;"""
+        for a, b in zip(s.split("\n"), str(htc.wind.turb_export).split("\n")):
+            self.assertEqual(a.strip(), b.strip())
+
   
   
     def test_sensors(self):