• No results found

Wiring topology of the Athena X-ray Integral Field Unit detector array

N/A
N/A
Protected

Academic year: 2021

Share "Wiring topology of the Athena X-ray Integral Field Unit detector array"

Copied!
38
0
0

Bezig met laden.... (Bekijk nu de volledige tekst)

Hele tekst

(1)

Wiring topology of the Athena X-ray Integral Field Unit detector array David S.C. van den Berg

A thesis presented for the degree of Bachelor of Science Department of Physics University of Amsterdam

The Netherlands In collaboration with

The Netherlands Institute for Space Research Assisted by

Dr. Roland H. den Hartog (SRON) Prof. dr. Lex Kaper (University of Amsterdam)

Project time-frame 13.04.2015 - 10.07.2015 Stud. No. 10 46 23 76

(2)

Abstract

The next generation X-ray observatory, ESA’s ATHENA space telescope, carries the X-ray Integral Field Unit (X-IFU) instrument in its focal plane. This instru-ment enables a 5’ field of view with kilopixel spatial resolution and 2.5 eV spectral resolution; X-IFU features extreme technology including a 3840 Transition Edge Sensor calorimeter array operating at 50 mK and 40 channel Frequency Domain Multiplexing. X-IFU is in its design phase and has a pending design challenge con-cerning the wiring scheme which has to be optimized for various constraints. In this paper various numerical tools are proposed for generating highly optimized wiring schemes, including one based on an algorithm for computing geodesics by Kimmel and Sethian (1998).

(3)

Contents

1 Introduction 3

2 The Athena mission proposal 4

3 X-ray Integral Field Unit 5

3.1 Performance requirements . . . 5

3.2 Current design . . . 5

3.2.1 Transition Edge Sensor . . . 7

3.2.2 Frequency Domain Multiplexing . . . 7

3.2.3 SQUID . . . 8

3.2.4 Strip-line wiring . . . 9

4 The X-IFU wiring topology problem 9 4.1 cross-talk . . . 10

4.2 Super-current obstacles . . . 11

5 Numerical methods for generating a wiring-scheme for the X-IFU main wafer 11 5.1 A Simple Potential Method algorithm . . . 12

5.1.1 Results . . . 15

5.2 An algorithm using the Fast Marching Method . . . 18

5.2.1 Sethian’s Fast Marching Method . . . 18

5.2.2 A Fast Marching algorithm for the X-IFU wiring topology . . 20

5.2.3 Initial e↵orts for designing FMX . . . 20

6 Numerical methods for optimal assignment of multiplexing frequen-cies 21 6.1 Major cross-talk origin . . . 21

6.2 A Simple Evolutionary Algorithm . . . 22

6.2.1 Distance metric . . . 24

7 Conclusion 25 7.1 Future research . . . 26

(4)

1

Introduction

The Athena mission is the next generation X-ray observatory-class mission, it is planned to be launched by the European Space Agency not earlier than 2028. By significantly increasing collecting power, spatial and spectral resolution over current observatories, it is designed to expand our knowledge of the formation of large scale structures in our universe.

The Athena mission design proposes a mirror-telescope of three meter diameter with a twelve meter focal length. The telescope that will be situated at the second Lagrange point carries two instruments in its focal plane: the X-ray Integral Field Unit (X-IFU) and the Wide Field Imager (WFI).

The X-IFU instrument has a complex 3840 Transition Edge Sensor calorimeter array, capable of making high spectral resolution 2D-images in the 0.2-12 keV X-ray band. The square-shaped Transition Edge Sensors are arranged in a hexagonal configuration for an optimal field of view of at least 5’. The instrument has an operating temperature of around 50 mK. To reduce the thermal load of the space craft (S/C) on the instrument, a forty channel Frequency Domain Multiplexing system is used. Frequency Domain Multiplexing compresses several channels onto one channel by assigning a unique narrow band in the frequency domain to each data-channel.

The X-ray Integral Field Unit instrument has a pending design problem concern-ing the wirconcern-ing topology of its detector array. The wirconcern-ing design for X-IFU has to be optimized for various constraints, these include: minimizing inter-wire crosstalk, keeping wires short, avoid all crossing of wires, as well as several other constrains involving wafer design and multiplexing electronics.

This document presents first attempts to find a design solution for the wiring topology of the X-IFU detector array, optimizing wiring topology design in both the spatial and the frequency domain. The attempts include the development of several computational design tools. These tools are able to generate a highly optimized but course design for the X-IFU wiring topology. A method for generating a more refined design is proposed, this algorithm is based on an algorithm for fast computing of geodesics that was developed by Kimmel and Sethian (1998).

(5)

2

The Athena mission proposal

The Athena mission is proposed to expand our knowledge around two central ques-tions: How does ordinary matter assemble into the large scale structures that we see today? And; How do black holes grow and shape the Universe? These questions form the science theme ’the hot and energetic universe’ that was selected by the European Space Agency as a focus in research for the coming decades (Nandra et al., 2011).

Large structures are galaxies and groups and clusters thereof, as well as superclus-ters, filaments, and walls around voids. These structures grow over time primarily by gravitational accretion of intergalactic gas. The Athena mission will observe ra-diation from hot gas within these structures and around super massive black holes (SMBH) to refine our understanding of the large structure formation process.

The mission proposes two ways for improving our models for large structure growth. Better understanding can come from looking directly at hot intergalactic gas - the major building block for large scale structures - throughout structure formation. Hot intergalactic gas emits sufficient radiation in the X-ray band for space based observation. With the current state of technology it is possible to look beyond the local universe at groups and clusters in their formation era at redshifts up to z = 3.

An additional method considers the processes that occur on the horizon of super massive black holes. These so called feedback processes have significant influence on structures that are ten orders of magnitude larger however, they are poorly un-derstood. The hot baryonic gas that is accreted on the horizon of SMBH radiates in the same domain as hot intergalactic gas. By looking at, and understanding these feedback processes we can indirectly improve on current models of large scale structure formation in our universe. Again, it is of interest to look beyond the local universe, in this case toward the era of the earliest galaxy formations. This era corresponds to redshifts up to z = 6.

Athena is an x-ray observatory-class mission in the 0.2 - 12 keV energy range (Nan-dra et al., 2013). The athena mission caries two instruments in the focal plane of it’s telescope: the X-ray Integral Field Unit (X-IFU) and the Wide Field Imager (WFI). The observatory is designed to have an improvement of ten times in spatial resolution and throughput over current observatories at 2.5 eV spectral resolution. Athena will be placed in the second Lagrangian point L2, it accomplishes a significant increase in collecting area over current observatories, carrying a telescope with three meter diameter and a focal length of twelve meter (Nandra et al., 2011). Increase in collecting area, spatial resolution and spectral resolution are key to answering the posed questions; empowering Athena to gather useful data from far beyond our local universe.

(6)

3

X-ray Integral Field Unit

3.1

Performance requirements

The requirements on X-IFU follow directly from the science goals set for Athena and X-IFU. These requirements have been extensively quantified by Nandra et al. (2011) and Ravera et al. (2014), the key performance requirements are tabulated in table 1.

Table 1: Major X-IFU performance requirements A Energy range 0.2-12 keV

B Spectral resolution 2.5 eV @ <7keV C Field of view 5’

D Quantum efficiency 60% @ 1 keV, 70% @ 7 keV E Time resolution 10 µs

F Count rate 1 [milliCrab] for point sources

The lower bound in spectral range is set by the CV spectral line at 0.31 keV. This line is important for evaluating baryon density in hot intergalactic gas, as well as in tracing the density of gas outflows from active galactic nuclei (AGN) and star-burst galaxies (Nandra et al., 2013).

The 2.5 eV energy resolution is needed for both determining the speed and the chemical composition of the hot di↵use gas that makes up intergalactic and intracluster gas. Furthermore it is needed to detect red-shifted absorbtion lines from in Warm Hot Intergalactic Medium (WHIM) in the afterglow of a high-redshift Gamma Ray Burst

A 5’ field of view is needed for looking at large scale structures like clusters of galaxies, gas clouds surrounding black holes, and supernova remnants with a minimal amount of pointings. Decreasing the field of view increases the number of pointings multiplicatively.

The count rate requirement has been estimated by considering the brightness of sources and the field of view of the telescope.

3.2

Current design

In the current X-IFU design, the overall layout of the detector consists of seven silicon wafers that are cooled down to 50 mK. A primary hexagonal wafer (main wafer) lies in the focal plane of the Athena telescope, on each of the six sides of the hexagonal wafer a rectangular wafer (LC-wafer) is mounted in a perpendicular fashion (as shown in figure 3).

In the center of the main silicon wafer, 3840 square holes are etched to create a grid as depicted in figure 1. Into these holes a Si3N4 membrane is fixed on which the 3840 Transition Edge Sensors are Deposited. The array has two sections: a square central section of 324 (18⇥ 18) relatively small sensors surrounded by the remaining 3516 bigger sensors. The width of the beams of the grid between the

(7)

sensors is on the order of 100 micron, the exact wafer beam width has not been decided upon.

The central area with higher sensor density (fig 2) is used for the observation of X-ray point-sources like Gamma Ray Bursts, whereas the full array is designed to observe bigger structures that emit with lower intensity like AGN.

Figure 1: The proposed design for the X-IFU calorimeter array grid. Each TES sensor is connected with a strip-line configuration wire-pair to an LC-filter on one of the LC-wafers. To bridge the gap between the main and the LC-wafers, six connecting flex cables containing 640 wire pairs are installed. The flex cables are bump bonded onto the LC-wafers and use inductive coupling to establish contact on the side of the main wafer. Inductive coupling enables easy LC-wafer replacement as well as impedance matching between the TES and LC filter environment.

Each LC-wafer holds 640 LC-filters that are used for forty channel frequency domain multiplexing. Frequency domain multiplexing makes it possible to compress the data channels carrying the signals of 40 pixels onto one data channel. Forty channel multiplexing with 640 data channels evaluates to 16 multiplexed channels per LC-wafer. These channels are coupled to 16 SQUID low noise amplifiers. The SQUID’s are connected to a second set of SQUID’s operated at a temperature of

(8)

2 Kelvin. A chain of readout electronics is located outside the 2 Kelvin area and operates at S/C temperature. Figure 3 shows the described design.

Figure 3: Technical cross-section of the X-IFU design, drawn by H. van Weers (SRON). The central red rectangle holds the TES array onto the grid shown in figure 1.

3.2.1 Transition Edge Sensor

Transition Edge Sensors (TES) use the superconducting to normal phase transition for photon detection with high spectral resolution (Irwin and Hilton, 2005). The sensor consists of a bi-layer of normal and superconducting material tuned to have a critical temperature of around 100 mK. This sensor is in strong thermal connection to a layer of material with sufficiently low heat capacitance and high stopping power, which functions as a photon absorber. The sensor is in a 50 mK bath, using a voltage biased current it is heated to be in the mentioned transition state. When a photon hits the photon absorber, the energy of the photon thermalizes to cause a sharp temporary temperature increase in the sensor. As the TES is heated, the increase in resistance of the TES is a measure for the energy of the photon. The increase in resistance causes the voltage biased current to decline, the heating is e↵ectively switched o↵. The TES cools to idle temperature within ten to hundreds of microseconds.

3.2.2 Frequency Domain Multiplexing

Using Frequency Domain Multiplexing (FDM) several channels carrying a signal can be compressed onto one channel. This is done by biasing each signal at an

(9)

alternating current with a unique sinusoidal frequency. In X-IFU forty channel multiplexing is achieved using forty LC-filters. As shown in figure 4, each TES is biased at the resonance frequency of the connected LC-filter. The collection of currents makes up the multiplexed signal. The original data can be retrieved from the multiplexed signal in a later stage, by Fourier transforming the multiplexed channel carrying the orthogonal bias frequencies.

Multiplexing in X-IFU is needed for minimizing the thermal load due to wiring to the detector, which is operated at approximately 50 mK.

Figure 4: A simplified schematic representation of FDM electronics and the FDM principle for a three channel multiplexing system (Ravera et al., 2014). The AC bias current is a superposition of AC currents that match the resonance frequencies of the LC-filters (L1 3). In this layout, each TES will only influence the part of the AC bias that corresponds to the resonance frequency of the connected LC-filter. In a later stage the signal from each TES can be isolated again with a second LC filter. The X-IFU uses an analogous system for forty channel multiplexing.

3.2.3 SQUID

SQUID’s are efficient low noise amplifiers with very low thermal energy dissipation. The dramatic temperature di↵erence between S/C and the wafers at 50 mK make it necessary to have strong amplification. However, since the first line of amplifiers have to be within the 50 mK bath heat dissipation should be kept to a minimum.

A SQUID magnetometer or Superconducting QUantum Interference Device uses Josephson junctions to measure tiny magnetic fluxes. A SQUID consists of two Josephson junctions in parallel, forming a wire loop as shown in fig 5. A magnetic field passing through the loop causes a phase di↵erence between the two contacts, which relates to the total current through the device. In this manner, a SQUID can

(10)

measure magnetic fluxes on the order of 10 15 Tesla.

A Josephson junction consists of two superconducting materials in ”close con-tact”, where ”close-contact” is achieved by reducing the space between the su-perconductors until the probability of cooper-pair tunneling between them is not negligible (Economou, 2010).

Figure 5: Two Josephson junctions in parallel to form a SQUID, magnetic flux through the loop (B) can be measured be considering the phase di↵erence of the currents IA and IB. Squids are used for low noise amplifiers (Economou, 2010). 3.2.4 Strip-line wiring

A strip-line wire pair is used to connect Transition Edge Sensors with LC-filters on the X-IFU main wafer. The strip-line consists of two strips of metal (Nb) separated by a non-conducting strip. These strips can be deposited onto the X-IFU wafer using common processing techniques. For X-IFU the lower and upper niobium strips measure four and two microns in width respectively, with a thickness of approximately 200 nanometers.

Co-planar wiring is an alternative to strip-line wiring. Co-planar wires can be deposited in a single deposition step but su↵ers more from inductor cross-coupling (section 4.1).

4

The X-IFU wiring topology problem

The wiring topology of the X-IFU instrument is a complex problem that has to be optimized for at least seven identified constraints, which are:

1. Minimal inductor cross-coupling

Inductor cross-coupling refers to unwanted data exchange between data chan-nels due to induced currents, see section 4.1.

2. Minimal detector grid beam width

The width of the beams that carry the strip-line wire pairs on the main wafer grid (shown in figures 1 and 2) has to be minimized, this however decreases inter-wire distance and therefore increases inductor cross-coupling.

(11)

4. Avoidance of wire crossing

Wire crossing is possible at the inductive coupling between the flex cables and main wafer to a limited extend.

5. Main wafer design that allows all six LC-wafers to be identical

The order of coupled FDM frequencies at each side of the main wafer has to be identical. In this way only one type of LC-wafer has to be designed and made.

6. Accounting for consequences of high count rate events at the center of the detector array

High count rate sources like AGN’s are projected on the central area of the detector array, the corresponding data channels will carry a relatively high data density during these events. Crosstalk e↵ects should be minimized extensively for these data channels.

7. minimal common impedance

Common impedance is caused by electronics that are shared by several data channels (e.g. current sources and SQUIDs), see section 4.1.

The relevance of the posed constraints vary and many constraints cannot be solved for independently. Instead of addressing the hard case of optimizing the X-IFU design for these seven constraints in parallel, a di↵erent method is proposed solving two independent ’sub-problems’.

A first sub-problem consists of deciding how the wires should run over the main wafer grid from the flex cables to the TES calorimeters. This problem is addressed in section 5.

A latter sub-problem has to do with multiplexing; as FDM assigns a bias fre-quency to each channel. These channel coupled frequencies can be spatially opti-mized; the distance in the frequency domain has to be maximized for wires that are neighbours in real space to minimize cross-talk e↵ects. If there is signal leak or cross-talk between two wire-pairs working on completely di↵erent bias frequencies, the leaked signal not sum to the original data and will not have a significant impact. The problem of assigning the right frequency to the right wire is addressed in section 6.

It is conceived that by solving these sub-problems the design will be optimized for many of the given constraints, the outcome is discussed in the concluding statement.

4.1

cross-talk

Introducing FDM readout electronics cause four types of inter-channel cross-talk. As described by Dobbs et al. (2012) these are: inductor cross-coupling, bias carrier leakage, crosstalk caused by common impedance and cross-talk related to thermal leakage between detectors.

Inductor cross-coupling is signal cross-talk due to mutual inductance between wire-pairs, wire-pairs and sensors and between two sensors. Each wire that runs from a LC-filter over the main wafer along the side of each TES and back forms

(12)

a small loop. If a current runs through the wire-loop it creates a magnetic field, which in turn induces small currents in neighbouring wire pairs and sensors. Since the wafer beams are narrow the spacing between wire-pairs is minimal, this results in significant inductor cross-coupling for X-IFU. Only inductor cross-coupling is of importance for the posed ’sub-problems’, the latter types of cross-talk therefore shall not be considered in section 5 and 6. Inductive cross coupling has been extensively studied by Yan (2014).

4.2

Super-current obstacles

A further constraint for the X-IFU wiring topology follows from the disadvantage of using sharp edges in wires carrying super currents. Super-current vortexes can form if the superconducting medium has sharp edges, this is excessively studied by Clem et al. (2012). These vortexes cause the critical current of a wire to drop significantly. Since X-IFU uses thin niobium wires with dimensions that have yet to be determined it is a save choice to avoid extreme edges although it might prove unnecessary.

5

Numerical methods for generating a wiring-scheme

for the X-IFU main wafer

For maximal detector accuracy, inductor cross-coupling should be minimized. This can be achieved partly by maximizing inter-wire distances on the detector array wafer; this section covers numerical methods for generating main wafer wiring schemes with maximal inter-wire distance.

The problem can be solved numerically at various levels of complexity. Comput-ing time generally grows multiplicatively with complexity due to the dimensionality of the problem.

The problem can be partially solved with low complexity by only determining the wire direction at each grid crossing (node-resolution) as shown in figure 6. This does not cover the entire problem; for the numerous wires that run over each ’grid line’ between two nodes have to be optimally spaced afterwards, either manually or computational.

A more satisfying solution asks for sub-node resolution. A sub-node resolution algorithm returns a full wiring scheme, for this the algorithm works on a resolution that far exceeds a node-resolution algorithm as one wafer beam caries can carry more than fifteen wires. In this chapter two new numerical methods with sub-node resolution are proposed: The Simple Potential Method (SPM, section 5.1) and a variation on Sethian’s Fast Marching Method for X-IFU (FMX, section 5.2) (Kimmel and Sethian, 1998). The latter algorithm is in an early stage of development.

(13)

Figure 6: Magnification of a center part of figure 1 with an illustrative example for partial output of an algorithm with node-resolution. Part of an arbitrary wire pair topology solution is depicted. The wire section starts at the green square, follows the green path and ends at the red square. The conceptual algorithm has calculated the optimal direction - straight, left or right - at each node (red or blue square); e.g. optimizing for local wire density or a certain wire length metric.

5.1

A Simple Potential Method algorithm

The Simple Potential Method (SPM) algorithm reduces the size of the optimizing problem by introducing artificial ”potentials” with corresponding ”forces”. The SPM algorithm starts with the wire-pairs belonging to the central sensors, and works radially outward.

In the SPM three kinds of artificial potentials are used: (1) a conical ’potential’ is centered on the array, (2) infinite potentials are placed over the etched gaps in the grid (hereafter referred to as sensor potentials) and (3) a third potential type is convolved over each of the wire ends (wire-pair potential). Potential type (1) & (2) are shown in fig. 7.

Potential (3) induces a force that is inverse with distance:

F(3)= a/rn | a, n 2 R (1)

Both a and n are carefully chosen manually for optimal output. Although these are e↵ective and obvious choices for potentials, a potential of any shape can be used

(14)

for generating optimal wiring.

Figure 7: Example of a heat-map of a ”potential landscape” with arbitrary scale. In this particular example a six sided pyramidal potential is used as the array wide potential (1). The etched gaps carrying an infinite potential are reduced in size for clarity.

The potentials (1-3) sum to a grand ”potential landscape” that is defined onR2, this potential looks like figure 7 with additional wire related potentials (3). The creation of such a ”potential landscape” is the first initializing step of the SPM algorithm. In a second initializing step we define two neighbouring circular regions A & B on the main wafer, both have width :

A ={x 2 R2 | r < r(x) < r} (2) B ={x 2 R2| r < r(x) < r + } (3) With r2 R, and r(x) = ||x||, a function that returns the Euclidean distance from the center of the TES array for a given vector x.

The final initializing step consists of generating an array W that holds all coor-dinates of all wire segments on the array, after initializing it only holds the starting points of the wires. At every moment the last entries in this array can be requested and correspond to the end-points of the wires. Since the exact wafer design is not finalized, wire starting points are generated parametrically at a given location with respect to the corresponding sensor.

The algorithm generates a main wafer wiring scheme using the following loop; where r is initialized to be 0:

(15)

1. Find sensors in A & B and wires in A and mark those as active, find wire-ends in B and mark those as in proximity.

2. Generate an array D1 containing all distances between active sensors and active wire-ends. Generate a second array D2 that holds all distances between active wire-ends and wire-ends that are either active or in proximity. 3. Calculate the ”force” on all active wire-ends, using functions derived from the

mentioned potentials (1-3) and the calculated distance arrays D1 & D2. 4. Extend all active wires by adding a wire section in the direction of the

cal-culated ”force”. This new linear wire section starts at active wire-ends and stretches a small distance in the direction of the force to a set of new wire-ends.

5. Update W by adding the new wire-end locations to all active wires. 6. Set r = r + r and return to the beginning of the loop.

A key step happens in point 4 of the loop; the length of the added wire segments of length has to be calculated. If were constant and identical for all wire-ends, certain wires would ”lag behind” other wires when they encounter obstacles that cause the force to have an angular component. ”Lagging behind” is accounted for by introducing a vector T that is calculated at each step, T holds a unique step length for each active wire-end. An element in T increases in length for a wire-end if it has traveled less radial distance compared to the other wire-ends.

This method results in manageable computing time. A vector-based algorithm can e↵ectively compute a wire segment for all active wires simultaneously. The time complexity of the algorithm is O(n2), where n is the number of considered sensors. The SPM resembles an exercise in classical dynamics; by using potentials and forces the algorithm numerically generates a path that corresponds closely to a path of least action in classical mechanics. A classical dynamics related shortcoming is the possibility for wire-ends to get ”trapped” in a local potential minimum, as shown in figure 8.

Figure 8: An example of a wire that is trapped in a local potential well for many iterations. This image is generated using a SPM algorithm.

(16)

A second weakness of the SPM algorithm for solving the X-IFU wiring problem relates to the narrow horizontal/vertical grid were the wire-pairs are supposed to reside. The SPM algorithm solves the problem using a radial geometry, as the allowed bands of the grid become more narrow, the efficiency of the algorithm declines and is more prone more wires ”lag behind” and get ”trapped”. Both problems can be partially solved by decreasing the algorithm iteration step size r, this leads to longer computing times.

5.1.1 Results

The SPM algorithm has been extensively studied and optimized for generating a wiring scheme for the X-IFU detector array. Although the algorithm functions like projected on a grid with wide beams ( 250µm beams), it is found that it is not suited for working on narrow grid beams ( 5µm beams). The X-IFU’s detector array wafer beam width has not been decided upon but will be in the 100µm range. Figure 9 shows an example clarifying that the algorithm, in it’s current form, cannot handle long stretches of non radial narrow wafer grid.

This does not render the algorithm entirely useless. In e↵ect the algorithm does give a solution, not on the expected sub-node resolution, but on node resolution. The algorithm routes the wire-pairs in a fashion that ensures constant wire-pair den-sity and consequently close to maximal inter-wire distance. Output of the algorithm with e↵ective node-resolution is shown in figure 10.

From the algorithms output we learn that the array will have a maximal wire density of 17 wires per beam. The wire density has been probed taking 20 unique samples in areas of high wire density and has been found to never surpass 17 wires per beam.

The python-based algorithm is capable of generating a wire grid as depicted in figure 10 in approximately 10 hours of computing time1. The output is a technical drawing in DXF format.

Intrinsically there is no certainty that there is no mistake in the algorithms output. Therefore solution have to be manually revised, optionally a software tool could do this.

(17)

Figure 9: An example of output of the SPM algorithm showing the inability of the algorithm to create useful sub-node resolution wire-strip topologies on a narrow grid (5µm).

(18)

Figure 10: Output of the SPM algorithm on three scales. The images show the algorithms ability to generate wiring schemes on a broad-beam wafer grid. The generated data can be implemented as a topology solution of node-resolution. The above image shows the location of the latter images on the X-IFU wafer.

(19)

5.2

An algorithm using the Fast Marching Method

The Fast Marching Method was developed by Sethian (1996), and is used to solve a special case of a di↵erential equation referred to as the Eikonal Equation; the solution is generated numerically in an extremely fast manner. Solving the Eikonal equation can be used to find geodesics (the shortest path between two points on a curved manifold) (Kimmel and Sethian, 1998). The introduced potentials that form for the SPM can be seen as a curved manifold, using this, an FMM-like algorithm can theoretically lead to e↵ective and fast generation of wiring topologies of the X-IFU complexity. A FMM-algorithm would not su↵er the problem of wires getting ”trapped” in local potential wells, a problem that the SPM algorithm su↵ers from.

5.2.1 Sethian’s Fast Marching Method

Sethian’s fast marching algorithm generates geodesics in a fashion that relates closely to Dijkstra’s algorithm (Dijkstra, 1959). The algorithm simulates a geodesic using a monotonically advancing wave-front originating in a point source. A mono-tonically advancing front is a front in which each point of the front advances with a constant speed v perpendicular to the front, an example is shown in figure 11. Generating a monotonically advancing front on a curved manifold comes down to solving the Eikonal equation (Sethian, 1996):

|rT (t)| = F (x) (4)

For a monotonically advancing front the special case is solved where the given function F (x) is constant and positive for all x.

Sethian’s algorithm initializes a grid of vertexes on a curved manifold, e.g. by triangulating the manifold (see figure 12). Vertexes are tagged with either: alive, close or far and hold a distance value (of the floating point kind). In the initial condition only the starting point of a geodesic is tagged alive with distance set to zero. All vertexes directly neighbouring the alive vertex are tagged close, their distance is calculated using a Euclidean metric over the manifold. All other vertexes carry the tag: far and carry an arbitrary distance value.

The algorithm uses the following loop to find the geodesic: • start loop

• Find the vertex j in the set of close vertexes with the smallest distance value (corresponding to the smallest value for T in eq. 4) and tag it alive. • Re-tag all vertexes neighbouring j that hold the tag far to close.

• Recompute the Euclidean distance for all vertexes in close, if a close vertex has more than one alive neighbour, the minimal distance is chosen.

(20)

By tracking back the path of minimal distance from the end-vertex the geodesic is found. The algorithms speed is optimized by using heap structures. A proof that the algorithm constructs a valid globally minimal solution to the Eikonal equation is presented in a paper by Sethian (1996). Sethian’s FMM has a time complexity of O(M log M ) on a grid with M points (Kimmel and Sethian, 1998).

Figure 11: A time series of a monotonically advancing wave-front on a flat 2D-manifold (Kimmel and Sethian, 1998). The wave-front starts sinusoidal (bottom) and advances with constant speed perpendicular to the front. The actual FMM algorithm generates a soft solution to the Eikonal equation that describes a wave-front without any self-crossing; however, Kimmel and Sethian (1998) prove that the resulting solution is valid.

Figure 12: A triangulated manifold with geodesics computed using Sethian’s Fast Marching Method (Kimmel and Sethian, 1998).

(21)

5.2.2 A Fast Marching algorithm for the X-IFU wiring topology

A Fast Marching algorithm for the X-IFU wiring topology (FMX) starts with creating a potential function (x, y) on R2, as done in the initialization step of the SPM algorithm. By defining a n⇥m grid, and assigning the potential values (n, m), we generate a manifold with n·m vertexes very much alike figure 7. On this manifold we can use Sethian’s FMM to generate geodesics; where a geodesic can be calculated for each wire-pair. This, however, does not optimize inter-wire distance. The FMX does optimize for inter-wire distance by using Sethian’s FMM first on wire-pairs belonging to central TES calorimeters and from there working outward until the wire is outside the wafer grid. After a first set of pairs is generated, the wire-pairs are convolved with a ”wire-pair potential” as described in section 5.1. The next set of wire pairs to be created belong to sensors just outside the center, in this way the algorithm works radially outward. Sets of wire-pairs that are generated afterward avoid prior wire-pairs because they ”feel” the corresponding potential. Optionally wire-pairs can be generated one-by-one, trading computing time for a more reliable solution. The one-by-one version of the algorithm intrinsically creates a solution without the possibility of wire-crossings or trapped wires. The prior version does not have this security.

After generating a complete X-IFU wiring topology, wire-Pairs and their poten-tials can be discarded and re-calculated. This procedure can be repeated infinitely and further optimizes the wiring topology for inter-wire distance.

5.2.3 Initial e↵orts for designing FMX

Using SPM heritage, a vector-based algorithm was constructed using FMM for wire generation. The algorithm is in an early stage of development. Figure 13 shows an image generated by the FMX algorithm depicting an advancing front over the X-IFU wafer grid.

Early versions reveal that vector-based programming is time wise sub-optimal. The FMM algorithm makes very localized calculations and has to find a minimum distance value at each iteration, a sorted heap structure fits better to this task and could be used going forward. The same structure is used by Sethian (1996) in the original FMM algorithm.

As time complexity of the FMM algorithm scales linearly with the number of grid nodes, computing time could be significantly limited using local mesh refine-ment for areas where high wire density is expected. This method is widely used in computational fluid dynamics and computational solving of di↵erential equations in general; it is e.g. used by Berger and Colella (1989).

Further computing time can be saved by designing a GPU-based parallel-computing algorithm, as wire-pairs originating from multiple sensors can be generated in par-allel.

(22)

Figure 13: Left: A FMM wave-front advancing in time on the X-IFU wafer grid. The image shows one step for calculating a geodesic on a ”potential landscape” as depicted in figure 7. A certain color represents the front at a point in time, in chronological order time corresponds to the colors: blue, green, yellow, orange, red. Right: The approximate region that has been analyzed by the FMX algorithm. The starting point of the wire is labeled with a star.

6

Numerical methods for optimal assignment of

mul-tiplexing frequencies

Apart from cross-talk minimization by maximizing inter-wire distance on the main wafer, cross-talk can be reduced by maximizing the distance in the frequency domain for wire-pairs that are spatial neighbours. This task comes down to e↵ectively matching LC-filters with TES calorimeters. Like the first sub-problem (section 5.2), this second sub-problem can be dealt with on multiple levels of complexity. A rigorous algorithm would examine cross-talk properties of each individual wire and choose the wire coupled frequencies accordingly, this is a task that requires a very complex algorithm and extensive computing time.

The Simple Evolutionary algorithm that is proposed solves the problem in a course manner, using SPM node-resolution output to look at general patterns in wiring rather than examining each individual wire.

6.1

Major cross-talk origin

Inductive cross-coupling occurs on the entire main wafer between wire-pairs, sensors and wires, and between sensors. To cut down complexity the assumption has been made that the major cross-talk origin is at the edge of the array (see figure 14). In this region wire-pairs often have the same neighbour over long distances in relatively close proximity. This assumption is based on work by Yan (2014) who has studied cross-talk in a very similar case. This assumption needs verification, an examination

(23)

to quantify cross-talk on the X-IFU main wafer can be done using code developed and described by Yan (2014).

Figure 14: Right upper part of SPM output with a marked region. The marked region is assumed to su↵er from the majority of cross-talk e↵ects on the main wafer grid.

6.2

A Simple Evolutionary Algorithm

An evolutionary algorithm2 (SEA) is used for finding a frequency design in feasible time. A brute force algorithm would have a time complexity3 of O(n!) with n the number of frequency multiplexed channels and is therefore not considered. Using the assumption made in section 6.1 this algorithm only considers cross-talk e↵ects that occur in the region marked in figure 14.

Figure 15 displays a magnification of a part of figure 14, it shows that each wire-pair only has a very limited number of direct neighbours in the marked region. Depending on how the region is defined this varies between three and ten direct neighbours.

2Full code in appendix

3Time complexity is a metric for the computing time of an algorithm. Time complexity is often expressed as a function O(x) where x is the dominant factor that the computing time scales with.

(24)

Figure 15: A section of figure 6.1 showing direct neighbours of a wire-pair. The neighbours of the purple wire are coloured in the folowing fashion: the first trough fourth neighbouring wires are yellow, the fifth to eight are blue, the ninth to sixteenth are green and the sixteenth to nineteenth wire-pairs are orange. It shows that strip-line wires have a relatively small number of direct neighbours in this region.

The SEA designs a frequency layout for forty subsequent wire-pairs. As input the algorithm takes the number of neighbouring wire-pairs to which the distance in the frequency domain will be maximized, typically three to ten neighbours. Distance in the frequency domain is not defined linearly but according to a certain distance metric (explained in section 6.2.1), this distance metric has to be specified to the algorithm as input as well.

The algorithm starts with an arbitrary frequency layout and calculates the total distance D; this is the sum of all distances calculated with the distance metric -for each of the -forty wires to a specified number of nearest neighbours. Afterwards the frequencies of two randomly chosen wires are switched. The distance metric is calculated again and compared to the last value. If it is lower the new layout is kept, otherwise it is discarded.

By repeating this random switching process several thousands of times a poten-tial design instance is produced. To make sure that local minima in total distance are avoided, the SEA makes several potential designs instances in parallel, and

(25)

chooses the design instance corresponding to the lowest total distance.

The entire process can be repeated with a design instance instead of an arbitrary frequency layout as starting point for further improvement.

Figures 16 displays output of the SEA. The algorithm is designed such that the last wire-pair (No. 39) is a direct neighbour to the first wire-pair (No. 0). In fig. 16 the algorithm considers the first ten neighbours of each wire on each side.

The output can be used to construct a full LC-wafer frequency layout design by simply connecting the output layout 16 times to get 640 channels. Since the last wire-pair neighbours the first wire-pair, frequency spacing between the first and 39thchannel is accounted for.

From the frequency layout, a LC-wafer has to be designed.

The algorithm is fast, the shown frequency layout design (fig. 16) was generated within one minute.

Figure 16: SEA output maximizing the inter-frequency distance for the ten nearest spatial neighbours for each channel.

6.2.1 Distance metric

The distance metric (eq. 5) that is used by SEA is highly adaptable.

D = 39 X n=0 n+r X m=n r ✓ 1 |n m| + 1 ◆a b n,m (5)

(26)

a and b are real numbers. If a is chosen greater than one, close neighbours have a bigger contribution to the total distance D than neighbours that are spatially further away. Initial spatial neighbours are often neighbours for long stretches over the main wafer grid array (can be seen in fig. 15) and should be spaced far apart in the frequency domain. n,m is the absolute relative distance of the frequency channel numbers (as presented in figure 16)). b is typically smaller than one. By choosing b smaller than one small n,mvalues relatively contribute more to D, this might be of interest since especially close neighbours in the frequency domain can su↵er from cross-talk; the di↵erence of having a close spatial neighbour that is a second or third neighbour in the frequency domain caries more importance than the di↵erence between a 25th and 26th neighbour.

7

Conclusion

Solutions for key elements of the X-IFU design are proposed by spatially optimizing inter-wire distance on the main wafer grid (section 5) and by maximizing the distance in the frequency domain for spatially neighbouring wires (section 6). The quality of the proposed solutions is given by the degree to which the solutions satisfy the design constraints posed in section 4. The quality of a design generated with the proposed algorithms is discussed for each of the identified constraints.

1. Minimal inductor cross-coupling

Both in the frequency and the spatial domain the design has been optimized directly for minimal inductor cross-coupling. The SPM output proves to have constant and minimal wire density over the array (section 5.1.1). Although frequency to wire assignment has been done in a simple manner (section 6.2), the Simple Evolutionary Algorithm does optimize directly for minimal inductor cross coupling.

2. Minimal detector grid beam width

Although the SPM is not able to provide a design solution on sub-node res-olution on a narrow wafer grid, the algorithm does ensure a constant homo-geneous minimal wire density on the beams. From a maximal number of 17 wires per beam (section 5.1.1) the minimal beam width can be calculated for acceptable quantities of cross-talk.

3. Minimal wire length on the detector array

By maximizing inter-wire distance wire length is minimized; when wire length increases the amount of wire on the grid increases too, therefore the wire density increases and inter-wire distance decreases.

4. Avoidance of wire crossing

Both the SPM and the FMX avoid all wire crossing on the main wafer grid. From the edge of the grid the wires are connected to identical LC-wafers, with wires never crossing.

(27)

5. Main wafer design that allows all six LC-wafers to be identical

Each side of the hexagonal main wafer is connected to a LC-wafer that is designed such that the frequencies are spatially ordered like in figure 16 re-peated 16 times. In this way the coupled frequencies of spatial neighbours are far apart and each LC-wafer is completely identical.

6. Accounting for consequences of high count rate events at the center of the detector array

The wiring nor the frequency coupling is optimized for this constraint, how-ever, inter-wire distance and wiring density is minimized like elsewhere on the array grid.

7. minimal common impedance

Common impedance is not investigated in this project.

7.1

Future research

The X-IFU wiring design is not finished. Further recommended e↵orts on the X-IFU design can be divided into completion of started research and a set of new im-provements. Completing started research include the (A) development of the FMX algorithm and (B) checking the assumption made in section 6.1. New improve-ments might include (C) minimizing common impedance and (D) improvement of frequency assignment for wire coupled frequencies.

(A) The SPM su↵ers of the inability to draw a sub-node resolution wiring scheme on a narrow wafer grid, FMX can solve this problem. The FMX as described in section 5.2 might take a vast amount of time, since the algorithm has to be very time efficient due to the size of the task. This however can prove to be an e↵ective step to automatize and optimize the X-IFU wiring topology. Once designed FMX can be a powerful tool for wiring topologies in future projects, simply by choosing an e↵ective artificial potential.

(B) The crude assumption that is made in section 6.1 can be checked and improved on. Yan (2014) has developed algorithms that are capable of calculating the amount of inductive cross-coupling between wires and sensors. By drawing a representative pair of strip-line wires belonging to neighbouring TES sensors the major cross-talk origin can be quantified using these algorithms. The algorithms can also be used in combination with the calculated maximal number of wires per beam to decide on the beam width for the X-IFU main wafer grid; a process of weighing a minimal beam width with the maximal accepted amount of inter-wire crosstalk.

(C) The suggested methods do not minimize common impedance; since common impedance only depends on electronics that are shared by multiple channels it can be minimized independently of grid wiring design and frequency coupling.

(D) To improve on the sixth constraint in the previous section the SEA algorithm can be extended from the boundary region (figure 14) to take the central high sensor density region of the array into account for frequency assignment. Although this can be done manually, minor manual changes might prove to be a faster solution since the center is rather small and the number of wires is limited.

(28)

References

Berger, M. J. and Colella, P. (1989). Local adaptive mesh refinement for shock hydrodynamics. Journal of computational Physics, 82(1):64–84.

Clem, J. R., Mawatari, Y., Berdiyorov, G. R., and Peeters, F. M. (2012). Pre-dicted field-dependent increase of critical currents in asymmetric superconducting nanocircuits. Phys. Rev. B, 85:144511.

Dijkstra, E. W. (1959). A note on two problems in connexion with graphs. Nu-merische mathematik, 1(1):269–271.

Dobbs, M., Lueker, M., Aird, K., Bender, A., Benson, B., Bleem, L., Carlstrom, J., Chang, C., Cho, H.-M., Clarke, J., et al. (2012). Frequency multiplexed su-perconducting quantum interference device readout of large bolometer arrays for cosmic microwave background measurements. Review of Scientific Instruments, 83(7):073113.

Economou, E. N. (2010). The Physics of Solids: Essentials and Beyond. Springer Science & Business Media.

Irwin, K. D. and Hilton, G. C. (2005). Transition-edge sensors. In Cryogenic particle detection, pages 63–150. Springer.

Kimmel, R. and Sethian, J. A. (1998). Computing geodesic paths on manifolds. Proceedings of the National Academy of Sciences, 95(15):8431–8435.

Nandra, K., Barcons, X., Barret, D., Fabian, A., den Herder, J., Piro, L., and Wat-son, M. (2011). Athena: The advanced telescope for high energy astrophysics. Proc. Of The X-ray Universe, 22:2011.

Nandra, K., Barret, D., Barcons, X., Fabian, A., Herder, J.-W. d., Piro, L., Watson, M., Adami, C., Aird, J., Afonso, J. M., et al. (2013). The hot and energetic universe: A white paper presenting the science theme motivating the athena+ mission. arXiv preprint arXiv:1306.2307.

Ravera, L., Barret, D., den Herder, J. W., Piro, L., Cl´edassou, R., Pointecouteau, E., Peille, P., Pajot, F., Arnaud, M., Pigot, C., et al. (2014). The x-ray integral field unit (x-ifu) for athena. In SPIE Astronomical Telescopes+ Instrumentation, pages 91442L–91442L. International Society for Optics and Photonics.

Sethian, J. A. (1996). A fast marching level set method for monotonically advancing fronts. Proceedings of the National Academy of Sciences, 93(4):1591–1595. Yan, X. (2014). Modeling inductances of wiring for a tes array read by fdm.

(29)

Appendix A

Simple Potential Method algorithm

The SPM algorithm is sub-divided into two scripts: v1.py and v13.py. V1.py comes after v13.py.

## v13.py

## written by David van den Berg ## 10.07.2015

## berg.dsc@gmail.com

import v1

from dxfwrite import DXFEngine as dxf

import numpy as np import math import matplotlib.pyplot as plt import cmath import time import numpy.ma as ma ’’’

This code generates a .dxf wiring layout for the X-IFU main wafer array grid. ’’’

class Array(object):

’’’

The Array object holds all significant code. The object struture is only chosen for clarity (to be

,!

able to have generally defined constants). From v1 the locations of all sensors on the main

,!

wafer array is gathered, the init functions puts this data in a more managable format. ’’’

def __init__(self):

## all calculations are done array oriented, a is the main database for array related data

,!

self.startData = v1.fileReader()

self.a = np.zeros((len(self.startData),11))

self.a[:,5:7] = 0

## adding a sensor number for each sensor

self.a[:,0] = self.startData[:,0]

## adding locx, locy of each sensor

self.a[:,1:3] = self.startData[:,10:]*1000

## adding typ (central array, within field of view etc.)

(30)

APPENDIX A. SIMPLE POTENTIAL METHOD ALGORITHM 2

self.d = {’num’:0,’locx’:1,’locy’:2,’typ’:3}

## calculating and saving spherical coordinates of sensor locations

c = self.a[:,self.d[’locx’]] + 1j*self.a[:,self.d[’locy’]]

self.a[:,8] = np.angle(c)

self.a[:,7] = np.absolute(c)

self.d[’r’] = 7

self.d[’theta’] = 8

## adding standard A and Z values, these are used for the artificcial potentials in a later function ,! self.arrayA = 1 self.arrayZ = 1 self.sensorA = 1 self.sensorZ = 1 self.wireA = 1 self.wireZ = 1

## delta defines the Delta that has to be looked at at each force calculation (see thesis)

,!

self.delta = 0.5

def activateSensor(self, typ, size):

’’’

a does not have specifications on sensor size, these can be specefied for each type seperately

,!

using this function.

Stores the size of sensors with type typ in x.a[:,4] ’’’

c = self.a[:,3].copy() c = c==typ

c = np.nonzero(c)

self.a[c,4] = float(size)

self.d[’size’] = 4

def activateStandardWire(self, typ, twor):

’’’

Stores the startpoints of wires with type typ in x.a[:,5:10] (carthesian and spherical) ,! ’’’ ## checking type c = self.a[:,3].copy() c = c==typ c = c.astype(int)

## checking quadrant (each wire starts at the far side of the sensor, as seen from the array center)

,!

c1a = self.a[:,8] <= math.pi/4.0 c1b = self.a[:,8] > -math.pi/4.0 c2a = self.a[:,8] > math.pi/4.0 c2b = self.a[:,8] <= 3.0*math.pi/4.0 c3a = self.a[:,8] > 3.0*math.pi/4.0 c3b = self.a[:,8] <= -3.0*math.pi/4.0 c4a = self.a[:,8] > -3.0*math.pi/4.0 c4b = self.a[:,8] <= -1.0*math.pi/4.0 c1 = np.multiply(c1a,c1b)

(31)

APPENDIX A. SIMPLE POTENTIAL METHOD ALGORITHM 3

## generating x + y pos

self.a[:,5] += np.multiply(c,(c1*(twor/2.0) - c3*(twor/2.0) + self.a[:,1]))

self.a[:,6] += np.multiply(c,(c2*(twor/2.0) - c4*(twor/2.0) + self.a[:,2]))

## spherical coordinates

self.a[:,9] += np.absolute(self.a[:,5]+1j*self.a[:,6])/4.0

self.a[:,10] += np.angle(self.a[:,5]+1j*self.a[:,6])

## putting it into a

self.d[’wx’] = 5

self.d[’wy’] = 6

self.d[’wr’] = 9

self.d[’wtheta’] = 10

def DataFinder(self, r1, r2, item):

## finds the indices of items in self.a with item in [r1,r2] (item = r or wr in all cases)

,!

## returns array of indecis

if r1 < 0: r1 = 0

c1 = self.a[:,self.d[item]] <= r2 c2 = self.a[:,self.d[item]] >= r1 c3 = np.multiply(c1,c2)

return(np.array(np.nonzero(c3)))

def getForce(self, r):

## used for calculating wire trajectories

## we have to get three kinds of ’forces’: array to wire, sensor to wire and wire to wire

,!

## at all wire ends

## the input is: A: the r to which wire ends have to be evaluated, ## and; B: self.a for the wire and

## sensor locations

## The output is a force vector (imaginary number) ## we start of with array to wire:

wiresOfInterest = np.array(self.DataFinder(r-self.delta,r, ’wr’)) sensorsOfInterest = self.DataFinder(r-self.delta,r+self.delta, ’r’) forceVector = np.zeros(wiresOfInterest.shape, dtype = complex)

## A-W

forceVector += self.arrayA *

np.exp(1j*np.angle(self.a[wiresOfInterest,self.d[’wx’]] +\

,!

1j*self.a[wiresOfInterest,

self.d[’wy’]]))

,!

## S-W

distArray = np.ones((wiresOfInterest.shape[1], sensorsOfInterest.shape[1]))

## very change, works only when a - i*b ????? ## locations of wires in complex notation

wArray = self.a[wiresOfInterest[0,:], self.d[’wx’]]*np.transpose(distArray) - \ 1j* self.a[wiresOfInterest[0,:], self.d[’wy’]]*np.transpose(distArray)

(32)

APPENDIX A. SIMPLE POTENTIAL METHOD ALGORITHM 4 1j* self.a[sensorsOfInterest[0,:], self.d[’locy’]]*distArray

## size of sensors

wArray = np.transpose(wArray)

tArray = self.a[sensorsOfInterest[0,:], self.d[’size’]]*distArray/2.0

## matrix with all relative vectors between wires and sensors

distArray = sArray - wArray

## looking at the angle relative to a square edge.

distAngleArray = np.mod(np.angle(distArray) + math.pi/4.0, math.pi/2.0) -math.pi/4.0

,!

## korrektur is the amount that has to be subtracted from each distance to take care of the size

,!

## of the sensor

korrektur = np.absolute(tArray/np.cos(distAngleArray))

## removing korrektur from dist array

distArray = distArray - np.multiply(korrektur, np.exp(1j*np.angle(distArray)))

## turning vectors into forces (a/(r**z))

forceArray = np.divide(self.sensorA,np.power((distArray),self.sensorZ))

## collecting forces on one wire

forceVectorSens = np.sum(forceArray, axis = 1) forceVector -= forceVectorSens

## W-W 1

## new wires of interest since also those who are coming should be looked at

newWiresOfInterest = np.array(self.DataFinder(r-self.delta,r, ’wr’))

distArray = np.ones((wiresOfInterest.shape[1], newWiresOfInterest.shape[1]))

## locations of wires in complex notation

wArray = self.a[wiresOfInterest[0,:], self.d[’wx’]]*np.transpose(distArray) - \ 1j* self.a[wiresOfInterest[0,:], self.d[’wy’]]*np.transpose(distArray) wArray = r*np.exp(1j*np.angle(wArray))

## locations of wires complex

sArray = self.a[newWiresOfInterest[0,:], self.d[’wx’]]*distArray - \ 1j* self.a[newWiresOfInterest[0,:], self.d[’wy’]]*distArray sArray = r*np.exp(1j*np.angle(sArray))

## size of sensors

wArray = np.transpose(wArray)

tArray = self.a[newWiresOfInterest[0,:], self.d[’size’]]*distArray/2.0

## matrix with all relative vectors between wires and sensors

distArray = sArray - wArray c = distArray == 0

distArray = ma.masked_array(distArray, mask=c)

## turning vectors into forces (a/(r**z))

forceArray = np.divide(self.wireA,np.power((distArray),self.wireZ))

## collecting forces on one wire

forceVectorWir = np.sum(forceArray, axis = 1) forceVector -= forceVectorWir

## W-W 2

## new wires of interest since also those who are coming should be looked at

newWiresOfInterest = np.array(self.DataFinder(r+0.0000001,r+self.delta, ’wr’)) distArray = np.ones((wiresOfInterest.shape[1], newWiresOfInterest.shape[1]))

## locations of wires in complex notation

(33)

APPENDIX A. SIMPLE POTENTIAL METHOD ALGORITHM 5 sArray = self.a[newWiresOfInterest[0,:], self.d[’wx’]]*distArray - \

1j* self.a[newWiresOfInterest[0,:], self.d[’wy’]]*distArray

## size of sensors

wArray = np.transpose(wArray)

tArray = self.a[newWiresOfInterest[0,:], self.d[’size’]]*distArray/2.0

## matrix with all relative vectors between wires and sensors

distArray = sArray - wArray c = distArray == 0

##masking 0 values to avoid 1/0 = inf

distArray = ma.masked_array(distArray, mask=c)

## turning vectors into forces (a/(r**z))

forceArray = np.divide(self.wireA,np.power((distArray),self.wireZ))

## collecting forces on one wire into one vector

forceVectorWir = np.sum(forceArray, axis = 1) forceVector -= forceVectorWir

return(np.angle(forceVector), wiresOfInterest)

def Runner(self, steps, stepsize):

## Generates the wire trajectories and puts then into ’wireArray’

print(’my range is: ’+str(steps*stepsize)+’, my res is: ~’+str(stepsize))

self.wireArray = np.zeros((self.a.shape[0],steps + 1), dtype = complex)

self.eventArray = np.zeros((self.a.shape[0],steps + 1))

self.wireArray[:,0] = self.a[:,self.d[’wx’]] + 1j*self.a[:,self.d[’wy’]]

self.eventArray[:,0] = 1

## adding a segment in the direction of force for each step

for step in range(steps):

print(step) r = step*stepsize

fAngle, wireIndices = self.getForce(r)

self.eventArray[wireIndices,step+1] = 1

self.wireArray[:,step+1] = self.wireArray[:,step]

## changing the size of the step to make everyone finish at the same time

korrektur =

np.absolute(1.0/np.power(np.cos((self.a[wireIndices,self.d[’wtheta’]] -fAngle)/2.0),2.0))

,! ,!

korrektur = np.multiply(korrektur, np.divide(r

-self.a[wireIndices,self.d[’wr’]], stepsize) )

,!

## setting a maximal stepsize

k2 = korrektur > 8 korrektur[k2] = 8

## generating new wire ends both carthesian and spherical

self.wireArray[wireIndices,step+1] +=

np.multiply(korrektur,np.exp(1j*fAngle))*stepsize

,!

self.a[wireIndices,self.d[’wx’]] +=

np.real(np.multiply(korrektur,np.exp(1j*fAngle))*stepsize)

,!

self.a[wireIndices,self.d[’wy’]] +=

np.imag(np.multiply(korrektur,np.exp(1j*fAngle))*stepsize)

,!

self.a[wireIndices,self.d[’wr’]] =

np.absolute(self.a[wireIndices,self.d[’wx’]] + 1j*self.a[wireIndices,self.d[’wy’]])

,! ,!

(34)

APPENDIX A. SIMPLE POTENTIAL METHOD ALGORITHM 6

def goldenRetriever(self):

## retrieves the wire data that runner makes: wireArray and elliminates all double coordinates

,!

wireList = []

for i in range(self.wireArray.shape[0]): nz = np.nonzero(self.eventArray[i,:]) dat = self.wireArray[i,nz]

if dat != []: wire = []

for i in dat[0,:]:

wire.append((i.real,i.imag)) wireList.append(wire)

self.wireList = wireList

def dxfwriter(self, name):

## function that takes long lists wire and sensor coordinates and makes a DXF file with all wires and sensors

,!

print(’my name is: ’+str(name))

## gathering wire data

self.goldenRetriever()

## new drawing

drawing = dxf.drawing(str(name)+’.dxf’) drawing.add_layer(’sensors’, color=2) drawing.add_layer(’wires’, color = 3)

## creating wires

for i in self.wireList:

drawing.add(dxf.polyline(i[0::50], color = 1, layer = ’wires’))

## creating detectors

for j in range(self.a.shape[0]):

hs = self.a[j,self.d[’size’]]/2.0

item = [(self.a[j,self.d[’locx’]] + hs, self.a[j,self.d[’locy’]]+ hs),\ (self.a[j,self.d[’locx’]] - hs, self.a[j,self.d[’locy’]]+ hs),\ (self.a[j,self.d[’locx’]] - hs, self.a[j,self.d[’locy’]]- hs),\ (self.a[j,self.d[’locx’]] + hs, self.a[j,self.d[’locy’]]- hs)] drawing.add(dxf.polyline(item, color=7, flags = 3, layer = ’sensors’)) drawing.save()

def Example():

## an example of the initialization of the array

x = Array() x.activateSensor(1,0.06) x.activateSensor(2,0.25) x.activateSensor(3,0.25) x.activateSensor(4,0.25) x.activateStandardWire(1,0.041) x.activateStandardWire(2,0.081) x.activateStandardWire(3,0.081) x.activateStandardWire(4,0.081)

(35)

APPENDIX A. SIMPLE POTENTIAL METHOD ALGORITHM 7 x.dxfwriter(’forarray’)

Example()

## End of code ## v1.py

## written by David van den Berg ## 10.07.2015

## berg.dsc@gmail.com

import numpy as np

import math

import matplotlib.pyplot as plt

## this algorithm retrieves the sensor layout information from an anscii file generated by R. den Hartog, it puts it into a format that is readable for v13.py

,!

def fileReader():

## retreving data from anscii file

data = open(’hex_array_coord.txt’)

## putting data in nice format and finding the first coordinate

data = list(data)

for i in range(len(data)): data[i] = data[i].split()

if data[i][0] == ’0’: datStart = i

## turning ’’str’’ coordinates into float

for i in range(datStart, len(data)):

for j in range(len(data[i])): data[i][j] = float(data[i][j])

## putting data into array

solidData = np.zeros((len(data[datStart:]),len(data[datStart])+2))

for i in range(datStart,len(data)): solidData[i-datStart][0:10] = data[i]

## calculating center of square, putting it into extra array lin

for i in range(solidData.shape[0]):

solidData[i][-2] = float(solidData[i][1]+(solidData[i][3]-solidData[i][1])/2.0) solidData[i][-1] = float(solidData[i][5]+(solidData[i][7]-solidData[i][5])/2.0)

return solidData fileReader()

(36)

Appendix B

Simple Evolutionary Algorithm

## optimizer.py

## written by David van den Berg ## 10.07.2015 ## berg.dsc@gmail.com import random as rd import matplotlib.pyplot as plt import math import numpy as np

class Optim(object):

def __init__(self, size):

’’’

The init function genarates an arbitrary linear frequency - channel configuration called self.start

,!

@param size: the number of channels that have to be optimized for (always 40 for X-IFU)

,!

’’’

rd.seed()

self.size = size

self.start = np.array(range(size))

self.pwr = 1

self.lastdist = 0

def changePwr(self, pwr):

’’’

self.pwr is referred to as ’b’ in the thesis, is of importance for the distance metric

,!

’’’

self.pwr = pwr

## together distanceN and distance make up the distance metric and caculate the ’total distance’

,!

def distanceN(self, item, r):

dist = np.absolute(item - np.append(item[r:],item[0:r]))

return(np.sum(np.power(dist,self.pwr)))

def distance(self, item, r): dist = 0

(37)

APPENDIX B. SIMPLE EVOLUTIONARY ALGORITHM 9 dist += (1.0/((i+1)**2))*self.distanceN(item,i+1)

return(dist)

def evolution(self, steps,tries, c, r):

## evolution changes two frequency coupled channels and checks if this new layout is better

,!

## than the old, it does this "steps" times.

maxD = 0

if c == 1:

for i in range(tries): rd.seed()

dist = 0 ld=0

start = self.start.copy()

for j in range(steps):

r1 = rd.randint(1,self.size - 1) r2 = rd.randint(1,self.size - 1) temp = start.copy()

temp[r1] = start[r2] temp[r2] = start[r1]

dist = self.distance(temp, r)

if dist > ld: start = temp ld = dist if ld > maxD: maxF = start maxD = ld print(start)

self.start = maxF

self.maxd = maxD

return(maxF, self.maxd)

def animal(self):

## animal repeats evolution various times in parallel

F1, D1 = self.evolution(100,10, 1, 3) print(D1) F2, D2 = self.evolution(1000,4,1,3) print(D2) F3, D3 = self.evolution(10000,4,1, 3) print(D3) F4, D4 = self.evolution(100000,1,1, 3) print(D4) return(F4, D4) ## plotting example for i in range(5): x = Optim(40) x.changePwr(1/3.0) plotra = x.animal()[0] plt.plot(plotra,’ro’) plt.plot(plotra, ’k’) plt.savefig(’anna.pdf’)

(38)

Appendix C

Populair wetenschappelijke

samenvatting

Dit project gaat over een gedeelte van de ontwikkeling van de Athena ruimtetele-scoop. De telescoop wordt gebouwd zodat wetenschappers een beter beeld kunnen krijgen van hoe de grootste structuren van ons halal ontstaan, bijvoorbeeld ons eigen melkwegstelsel. Deze telescoop maakt foto’s van de ruimte in het r¨ontgen spectrum. Sommige hemellichamen en bepaald gas dat in de ruimte zweeft zenden R¨ontgen straling uit. Al zijn R¨ontgen golven niet zichtbaar voor het menselijk oog, kun je ze met bepaalde detectoren toch ontdekken. Je tandarts gebruikt het bijvoorbeeld om te kijken of je een gaatje hebt. Omdat R¨ontgen straling niet door onze atmosfeer heen komt kun je r¨ontgen straling die vanuit de ruimte alleen in de ruimte bekijken. Athena is niet de eerste ruimtetelescoop die dit doet, maar kan het vele male beter dan bestaande telescopen en met v´e´el hogere resolutie.

Om die resolutie verbetering ten opzichte van oude telescopen mogelijk te maken zijn o.a. technisch zeer geavanceerde detectoren nodig. Het detectie instrument dat hier voor wordt ontwikkeld heet de X-ray Integral Field Unit (kort: X-IFU), dit instrument maakt gebruik van 3840 TES detectoren van elk een paar honderd micrometer groot. Deze speciale TES detectoren functioneren alleen bij extreem lage temperaturen van ongeveer -273 graden Celsius en worden ter plekke in de ruimte afgekoeld. Het geheel vormt een heel fragiel systeem waar op elk minuscule detail gelet moet worden; zo ook op de bedraden van het instrument.

De bedrading van X-IFU is erg uitgebreid en heel ingewikkeld, voor elk van de 3840 detectoren loopt ´e´en paar draden over het instrument, 3840 maal tw´e´e (= 7680) draden! Het is een hele ingewikkelde puzzel om deze allen op hun plek te krijgen, z´eker omdat ze aan allerlei voorwaarden moeten voldoen; ze mogen bijvoorbeeld niet kruisen en moeten ook allemaal zo kort mogelijk zijn. Om alles nog wat ingewikkelder te maken kan een klein beetje signaal van de ene naar de andere draad overspringen. Dit overspringen word cross-talk genoemd en is zeer ongewenst omdat het de belangrijke data een beetje verpest. Ook cross-talk moet dus voorkomen worden.

Om een bedradingsschema te maken dat aan alle gestelde voorwaarde voldoet zijn er tijdens project verschillende computer programma’s ontwikkeld. Deze pro-gramma’s kunnen allemaal een klein stukje van het probleem oplossen waarbij ze de hele tijd rekening houden met allerlei factoren. De computer programma’s hebben soms uren of dagen nodig om een bedradingsschema te tekenen, maar dat is v´e´el sneller dan het met de hand te doen en bovendien doen ze het heel secuur.

Na 2 ´a 3 maanden werk is het ontwerp probleem nog niet helemaal opgelost, maar met een paar grove tekeningen van eerste ontwerpen zijn we wel een heel stuk verder dan waar we begonnen.

Referenties

GERELATEERDE DOCUMENTEN

a 50 ks observation of a GRB afterglow with the X-IFU; Column 3: High resolution counts collected during the 50 ks observation of the GRB afterglow; Column 4: the percentage of

- welke factoren invloed hebben op de opname in dekaarde en compost van gegeven water, - welke rol water heeft bij myceliumactiviteit, knopvorming en groei van champignons, -

Gebromeerde vlamvertragers (PBDE's, HBCD en TBBP-A) werden geanalyseerd in zwevend stof afkomstig van de Waddenzee en Eems-Dollard die bemonsterd werden in november/december 2005..

EUDNHQRXGHUHUHHGVEUXLQYHUNOHXUGHVWHQJHOGHOHQYDQYHHQPRV ODQJ]DPHU DI GDQ MRQJH QRJ QLHW YHUNOHXUGH GHOHQ YDQ GH VWHQJHO

From the behaviour of the reflectivity, both in time and with energy-density, it is inferred that this explosive crystallization is ignited by crystalline silicon

En daar kan immers geen bestaan wees, sonder dat ook ontstaan en voortbestaan hierdeur geimpliseer word nie.. Daarom kan die jonkheid in die sproeireen van die

Naar verwachting zullen van 160 patiënten gegevens verzameld worden (zie 5.1 en 5.4). Conclusie: De CFH is van oordeel dat de aanvrager de opzet van het uitkomstenonderzoek en het

 Wees goed op de hoogte van het lokale aanbod, de lokale route richting zorg bij psychosociale problemen en wees op de hoogte of een kind past in een voor die doelgroep