From f8a16eb16396eab28e56cf4a121fb77b547acbf1 Mon Sep 17 00:00:00 2001
From: "Joachim Wuttke (o)" <j.wuttke@fz-juelich.de>
Date: Tue, 17 Nov 2020 09:04:08 +0100
Subject: [PATCH] rm old directory devtools/ad-hoc/JWu

---
 devtools/ad-hoc/JWu/bornplot2.py         | 167 -----------------------
 devtools/ad-hoc/JWu/par_changed.py       |  35 -----
 devtools/ad-hoc/JWu/partial_history.txt  |  44 ------
 devtools/ad-hoc/JWu/perf-log-old2yaml.py | 127 -----------------
 4 files changed, 373 deletions(-)
 delete mode 100644 devtools/ad-hoc/JWu/bornplot2.py
 delete mode 100644 devtools/ad-hoc/JWu/par_changed.py
 delete mode 100644 devtools/ad-hoc/JWu/partial_history.txt
 delete mode 100755 devtools/ad-hoc/JWu/perf-log-old2yaml.py

diff --git a/devtools/ad-hoc/JWu/bornplot2.py b/devtools/ad-hoc/JWu/bornplot2.py
deleted file mode 100644
index 25a2fa25e8a..00000000000
--- a/devtools/ad-hoc/JWu/bornplot2.py
+++ /dev/null
@@ -1,167 +0,0 @@
-"""
-Utilities to plot form factors of particles in Born approximation
-"""
-import numpy
-import matplotlib as mpl
-import matplotlib.pyplot as plt
-import bornagain as ba
-from bornagain import nanometer, degree, angstrom, deg2rad
-
-
-class BinRange:
-    def __init__(self, vmin, vmax, n):
-        self.vmin = vmin
-        self.vmax = vmax
-        self.n = n
-
-    def origin_index(self):
-        return int((0.-self.vmin)/(self.vmax-self.vmin)*self.n)
-
-    def range(self):
-        return self.vmax - self.vmin
-
-
-class DetPars:
-    def __init__(self, bins_per_dimension, y_min, y_max, z_min, z_max):
-        self.y = BinRange(y_min, y_max, bins_per_dimension)
-        self.z = BinRange(z_min, z_max, bins_per_dimension)
-
-    def rectangle(self):
-        return self.y.vmin, self.y.vmax, self.z.vmin, self.z.vmax
-
-
-class Result:
-    def __init__(self, idx, data, title=""):
-        self.idx = idx
-        self.data = data
-        self.title = title
-
-
-def make_plot(results, detPars, name, nrow=1):
-    """Make a plot consisting of one detector image for each Result in results,
-    plus one common color scale.
-
-    :param results: List of simulation results
-    :param detPars: Detector limits
-    :param name: Filename for plot during save
-    :param nrow: Number of rows for different plots
-    """
-    mpl.rcParams['image.interpolation'] = 'none'
-    n = len(results)
-    ncol = 1+(n-1)//nrow
-    # Parameters as fraction of subfig size.
-    yskip = 0.2  # +ncol*0.02
-    bottomskip = yskip
-    topskip = yskip/2
-    xskip = 0.21
-    leftskip = xskip
-    rightskip = 0.28+ncol*0.03
-    xtot = ncol*1.0 + (ncol-1)*xskip + leftskip + rightskip
-    ytot = nrow*1.0 + (nrow-1)*yskip + bottomskip + topskip
-    # We need parameters as fraction of total fig size.
-    xskip /= xtot
-    leftskip /= xtot
-    rightskip /= xtot
-    yskip /= ytot
-    bottomskip /= ytot
-    topskip /= ytot
-    # Set total figure dimensions.
-    ftot = 5
-    fontsize = 18+36.0/(ncol+2)
-    # Create the figure 'fig' and its subplots axes ('tmp'->'axes').
-    fig, tmp = plt.subplots(nrow, ncol, figsize=(ftot*xtot, ftot*ytot))
-    if n > 1:
-        axes = tmp.flat
-    else:
-        axes = [tmp]
-    # Always the same color scale, to facilitate comparisons between figures.
-    norm = mpl.colors.LogNorm(1e-10, 1)
-    # Plot the subfigures.
-    for res in results:
-        ax = axes[res.idx]
-        im = ax.imshow(res.data,
-                       norm=norm,
-                       extent=detPars.rectangle(),
-                       aspect=1)
-        ax.set_xlabel(r'$k_y/k_x$', fontsize=fontsize)
-        if res.idx % ncol == 0:
-            ax.set_ylabel(r'$k_z/k_x$', fontsize=fontsize)
-        if res.title != "":
-            ax.set_title(res.title, fontsize=fontsize)
-        ax.tick_params(axis='both', which='major', labelsize=fontsize*21/24)
-    # Adjust whitespace around and between subfigures.
-    plt.subplots_adjust(wspace=xskip, hspace=yskip,
-                        left=leftskip, right=1-rightskip,
-                        bottom=bottomskip, top=1-topskip)
-    # Plot the color scale.
-    cbar_ax = fig.add_axes([1-rightskip+0.4*xskip, bottomskip,
-                            0.25*xskip, 1-bottomskip-topskip])
-    cb = fig.colorbar(im, cax=cbar_ax)
-    cb.set_label(r'$\left|F(q)\right|^2/V^{\,2}$', fontsize=fontsize)
-    # Output to file or display.
-    plt.savefig(name+".pdf", format="pdf", bbox_inches='tight')
-    plt.show()
-
-
-def get_sample(ff, trafo):
-    """Build and return a sample consisting of uncorrelated particles with given
-    form factor and transformation operator
-
-    :param ff: Form factor
-    :param trafo: Optional rotation
-    """
-    # defining materials
-    m_ambience = ba.HomogeneousMaterial("Air", 0.0, 0.0)
-    m_particle = ba.HomogeneousMaterial("Particle", 1e-5, 0)
-
-    # collection of particles
-    particle = ba.Particle(m_particle, ff)
-    particle_layout = ba.ParticleLayout()
-    if trafo is not None:
-        particle.setRotation(trafo)
-        particle_layout.addParticle(particle)
-    else:
-        particle_layout.addParticle(particle)
-
-    air_layer = ba.Layer(m_ambience)
-    air_layer.addLayout(particle_layout)
-
-    multi_layer = ba.MultiLayer()
-    multi_layer.addLayer(air_layer)
-    return multi_layer
-
-
-def get_simulation(detPars, ff, trafo=None):
-    """Create and return GISAXS simulation
-
-    :param detPars: Detector limits
-    :param sample
-    """
-    simulation = ba.GISASSimulation()
-    detector = ba.RectangularDetector(detPars.y.n, detPars.y.range(), detPars.z.n, detPars.z.range())
-    detector.setPerpendicularToSampleX(1., -detPars.y.vmin, -detPars.z.vmin)
-    simulation.setDetector(detector)
-    simulation.setBeamParameters(1.0*nanometer, 0, 0)
-    sample = get_sample(ff, trafo)
-    simulation.setSample(sample)
-    return simulation
-
-
-def run_sim(simulation, detPars):
-    """Run simulation and return plottable results
-    """
-    simulation.runSimulation()
-    data = simulation.result().array()
-    nor = data[detPars.z.n - detPars.z.origin_index() - 1, detPars.y.origin_index()]
-    data /= nor
-    return data + 1e-80  # for log scale
-
-
-def run_simulation(detPars, ff, trafo=None):
-    """Create simulation, run it, and return plottable results
-
-    :param detPars: Detector limits
-    :param ff: Form factor
-    :param trafo: Optional rotation
-    """
-    return run_sim( get_simulation(detPars, tt, trafo), detPars )
diff --git a/devtools/ad-hoc/JWu/par_changed.py b/devtools/ad-hoc/JWu/par_changed.py
deleted file mode 100644
index 426fb1b2695..00000000000
--- a/devtools/ad-hoc/JWu/par_changed.py
+++ /dev/null
@@ -1,35 +0,0 @@
-"""
-Plot form factors.
-"""
-import bornagain as ba
-from   bornagain import nanometer, degree
-import bornplot2 as bp
-import math
-import inspect
-
-det = bp.DetPars( 400, -.25, .25, -.25, .25 )
-n    = 3
-results = []
-edge = 30
-
-title = 'E=30'
-trafo = ba.RotationY(26.5651*degree)
-ff = ba.FormFactorTruncatedCube(edge*nanometer,2*nanometer)
-sim = bp.get_simulation(det,ff,trafo)
-
-data = bp.run_sim( sim, det )
-results.append( bp.Result(0, data, title) )
-
-pool = ff.getParameterPool()
-print( pool.getParameterNames() )
-print( ff.getLength() )
-print( ff.volume() )
-pool.setParameterValue('Length', 10 )
-print( ff.getLength() )
-print( ff.volume() )
-
-title = 'E=10'
-data = bp.run_sim( sim, det )
-results.append( bp.Result(1, data, title) )
-
-bp.make_plot( results, det, "tmp" )
diff --git a/devtools/ad-hoc/JWu/partial_history.txt b/devtools/ad-hoc/JWu/partial_history.txt
deleted file mode 100644
index 7db891cf5e3..00000000000
--- a/devtools/ad-hoc/JWu/partial_history.txt
+++ /dev/null
@@ -1,44 +0,0 @@
-# Release 1.2.0
-| date                | hostname   | sysinfo       | tr | total    | MultiLayer   | CylindersInD | RotatedPyram | CoreShell    | SquareLattic | RadialParaCr | HexParaCryst | SSCA         | Mesocrystal  | PolMagCyl    |
-| 2015-06-30 15:16:12 | jcnsopc126 | linuxx8664gcc | 0  | 20.120   | 1.686        | 1.156        | 1.947        | 0.974        | 2.814        | 1.177        | 2.055        | 3.835        | 1.831        | 2.644        |
-| 2015-06-30 15:16:37 | jcnsopc126 | linuxx8664gcc | 0  | 20.044   | 1.678        | 1.176        | 2.018        | 0.979        | 2.829        | 1.202        | 2.069        | 3.835        | 1.823        | 2.436        |
-| 2015-06-30 15:17:36 | jcnsopc126 | linuxx8664gcc | 0  | 20.347   | 1.699        | 1.319        | 2.010        | 1.003        | 2.822        | 1.197        | 2.031        | 3.861        | 1.890        | 2.515        |
-| 2015-06-30 15:19:12 | jcnsopc126 | linuxx8664gcc | 0  | 19.853   | 1.684        | 1.156        | 1.951        | 0.979        | 2.815        | 1.187        | 2.026        | 3.798        | 1.832        | 2.426        |
-
-# Release 1.3.0
-| date                | hostname   | sysinfo       | tr | total    | MultiLayer   | CylindersInD | RotatedPyram | CoreShell    | SquareLattic | RadialParaCr | HexParaCryst | SSCA         | Mesocrystal  | PolMagCyl    |
-| 2015-07-31 14:38:50 | jcnsopc63  | linuxx8664gcc | 0  | 15.590   | 1.537        | 0.977        | 1.673        | 0.855        | 2.524        | 0.996        | 1.874        | 1.505        | 1.581        | 2.068        |
-
-# after some development, why it is slower now not clear (there was minor OutputData refactoring
-| date                | hostname   | sysinfo       | tr | total    | MultiLayer   | CylindersInD | RotatedPyram | CoreShell    | SquareLattic | RadialParaCr | HexParaCryst | SSCA         | Mesocrystal  | PolMagCyl    |
-| 2015-09-23 14:54:52 | jcnsopc126 | linuxx8664gcc | 0  | 17.658   | 1.692        | 1.148        | 1.602        | 0.983        | 2.793        | 1.174        | 2.163        | 1.742        | 1.868        | 2.495        |
-
-# after masking
-| date                | hostname   | sysinfo       | tr | total    | MultiLayer   | CylindersInD | RotatedPyram | CoreShell    | SquareLattic | RadialParaCr | HexParaCryst | SSCA         | Mesocrystal  | PolMagCyl    |
-| 2015-09-28 17:19:17 | jcnsopc126 | linuxx8664gcc | 0  | 21.595   | 2.108        | 1.412        | 1.888        | 1.275        | 3.615        | 1.496        | 2.478        | 2.139        | 2.340        | 2.845 |
-
-# working on mask performance
-| date                | hostname   | sysinfo       | tr | total    | MultiLayer   | CylindersInD | RotatedPyram | CoreShell    | SquareLattic | RadialParaCr | HexParaCryst | SSCA         | Mesocrystal  | PolMagCyl    |
-| 2015-09-29 11:41:26 | jcnsopc126 | linuxx8664gcc | 0  | 18.188   | 1.793        | 1.172        | 1.647        | 1.012        | 2.945        | 1.290        | 2.197        | 1.798        | 1.849        | 2.486 |
-| 2015-09-29 11:46:58 | jcnsopc126 | linuxx8664gcc | 0  | 17.975   | 1.852        | 1.165        | 1.586        | 0.977        | 2.834        | 1.183        | 2.136        | 1.860        | 1.879        | 2.502 |
-
-# after RectangularDetector refactoring
-| date                | hostname   | sysinfo       | tr | total    | MultiLayer   | CylindersInD | RotatedPyram | CoreShell    | SquareLattic | RadialParaCr | HexParaCryst | SSCA         | Mesocrystal  | PolMagCyl    |
-| 2015-10-21 10:42:06 | jcnsopc126 | linuxx8664gcc | 0  | 19.284   | 1.781        | 1.333        | 1.785        | 1.133        | 3.145        | 1.404        | 2.156        | 1.847        | 1.884        | 2.818        |
-| 2015-10-21 10:42:30 | jcnsopc126 | linuxx8664gcc | 0  | 19.756   | 1.737        | 1.336        | 1.842        | 1.200        | 3.262        | 1.397        | 2.116        | 1.912        | 2.013        | 2.942|
-
-# PreRelease state. Seems that much worser. Simulation normalize?
-| date                | hostname   | sysinfo       | tr | total    | MultiLayer   | CylindersInD | RotatedPyram | CoreShell    | SquareLattic | RadialParaCr | HexParaCryst | SSCA         | Mesocrystal  | PolMagCyl    |
-| 2015-10-28 17:04:26 | jcnsopc126 | linuxx8664gcc | 0  | 25.693   | 2.573        | 1.693        | 2.410        | 1.472        | 4.134        | 1.748        | 2.856        | 2.376        | 2.715        | 3.716|
-
-# PreRelease. Moved checkPolarizationPresent() out of the loop.
-| date                | hostname   | sysinfo       | tr | total    | MultiLayer   | CylindersInD | RotatedPyram | CoreShell    | SquareLattic | RadialParaCr | HexParaCryst | SSCA         | Mesocrystal  | PolMagCyl    |
-| 2015-10-29 09:17:30 | jcnsopc126 | linuxx8664gcc | 0  | 20.586   | 2.386        | 1.166        | 1.773        | 0.890        | 3.449        | 1.195        | 2.570        | 1.687        | 2.452        | 3.020        |
-
-# PreRelease. If I try to backup mP_specular_info->getInCoefficients(alpha_i, 0.0, wavelength)); in InterferenceFunctionStrategy
-| date                | hostname   | sysinfo       | tr | total    | MultiLayer   | CylindersInD | RotatedPyram | CoreShell    | SquareLattic | RadialParaCr | HexParaCryst | SSCA         | Mesocrystal  | PolMagCyl    |
-| 2015-10-29 09:41:25 | jcnsopc126 | linuxx8664gcc | 0  | 19.921   | 2.416        | 0.984        | 1.654        | 0.778        | 3.333        | 1.027        | 2.923        | 1.505        | 2.359        | 2.942        |
-
-# PreRelease-1.5.0
-| date                | hostname   | sysinfo       | tr | total    | MultiLayer   | CylindersInD | RotatedPyram | CoreShell    | SquareLattic | RadialParaCr | HexParaCryst | SSCA         | Mesocrystal  | PolMagCyl    |
-| 2016-02-11 14:10:57 | jcnsopc126 | linuxx8664gcc | 0  | 18.247   | 1.981        | 0.920        | 1.418        | 0.696        | 2.578        | 0.950        | 3.899        | 1.381        | 2.008        | 2.417        |
diff --git a/devtools/ad-hoc/JWu/perf-log-old2yaml.py b/devtools/ad-hoc/JWu/perf-log-old2yaml.py
deleted file mode 100755
index 892ce94a391..00000000000
--- a/devtools/ad-hoc/JWu/perf-log-old2yaml.py
+++ /dev/null
@@ -1,127 +0,0 @@
-#!/usr/bin/env python3
-
-'''
-To be used only once: convert performance log from legacy format to YAML
-'''
-
-import datetime, re, sys, pytz, yaml
-from collections import OrderedDict
-from pytz import timezone
-
-################################################################################
-# Improved YAML dumper, to write dicts and lists in nice form
-################################################################################
-
-class FlowSeq( list ): pass
-
-# The improved YAML dumper
-
-def improved_dump(data, stream=None, Dumper=yaml.Dumper, **kwds):
-    class ImprovedDumper(Dumper):
-        pass
-    def odict_representer(dumper, data):
-        return dumper.represent_mapping(
-            yaml.resolver.BaseResolver.DEFAULT_MAPPING_TAG,
-            data.items())
-    def flowseq_representer(dumper, data):
-        return dumper.represent_sequence(
-            yaml.resolver.BaseResolver.DEFAULT_SEQUENCE_TAG,
-            data,
-            flow_style=True )
-    ImprovedDumper.add_representer(OrderedDict, odict_representer)
-    ImprovedDumper.add_representer(FlowSeq, flowseq_representer)
-    return yaml.dump(data, stream, ImprovedDumper,
-                     allow_unicode=True, encoding='utf-8',
-                     default_flow_style=False, indent=4, width=70, **kwds)
-
-# Just for documentation, not used here: the corresponding loader.
-
-def improved_load(stream, Loader=yaml.Loader, object_pairs_hook=OrderedDict):
-    class ImprovedLoader(Loader):
-        pass
-    def construct_mapping(loader, node):
-        loader.flatten_mapping(node)
-        return object_pairs_hook(loader.construct_pairs(node))
-    ImprovedLoader.add_constructor(
-        yaml.resolver.BaseResolver.DEFAULT_MAPPING_TAG,
-        construct_mapping)
-    return yaml.load(stream, ImprovedLoader)
-
-################################################################################
-# Time conversion
-################################################################################
-
-garching = timezone('Europe/Berlin')
-def nice_datetime( dt ):
-    rounded = dt - datetime.timedelta(microseconds=dt.microsecond)
-    return garching.localize(rounded).isoformat()
-
-################################################################################
-# Standarized blocks
-################################################################################
-
-def coder(value, offset_coder, offset, precision):
-    ret = OrderedDict()
-    ret['value'] = value
-    ret['offset_coder'] = offset_coder
-    ret['offset'] = offset
-    ret['precision'] = precision
-    return ret
-
-def scan(j):
-    ret = OrderedDict()
-    ret['scan_parameters'] = OrderedDict()
-    ret['scan_parameters']['omgs'] = 0.1*j
-    ret['time'] = 2.02
-    ret['monitor'] = random.randint(10000, 40000)
-    ret['image'] = "img%04i" % j
-    return ret
-
-################################################################################
-# Main
-################################################################################
-
-o = []
-
-fni = 'partial_history.txt'
-fno = 'performance_log2.yaml'
-fd = open( fni, 'r' )
-ti = fd.read()
-fd.close()
-
-aa = re.split( r'\n\s*?\n', ti )
-for a in aa: # block
-    bb = re.split( r'\n', a.rstrip() )
-    m = re.match( r'#\s*(.*)', bb[0] )
-    if not m:
-        raise "block header not found"
-    comment = m.group(1)
-    # print("### "+comment[0:20]+" --> %i" %( len(bb)-2 ) )
-    header = re.split( r'\s*\|\s*', bb[1] )[1:-1]
-    if header[0]!="date":
-        raise "unexpected block header"
-    nentry = len(header)
-    outcome = []
-    for b in bb[2:]:
-        c = re.split( r'\s*\|\s*', b )[1:-1]
-        # print("'"+b+"'")
-        if len(c)!=len(header):
-            raise "wrong number of records"
-        result = OrderedDict()
-        for i in range(len(header)):
-            out = c[i]
-            if header[i]=="tr":
-                out = int(out)
-            elif i>3:
-                out = float(out)
-            result[header[i]] = out
-        outcome.append( result )
-    entry = OrderedDict()
-    entry['version'] = comment
-    entry['outcome'] = outcome
-    o.append( entry )
-
-yaml_str = improved_dump( o )
-fd = open( fno, 'wb' )
-fd.write( yaml_str )
-fd.close()
-- 
GitLab