jenkins pipeline

Jenkins-Multijob Die Jenkins-Meldung gab Anlass zur Umstellung eines Multijobs auf Jenkins Pipeline. Der Multijob führte eine gekoppelte Rechnung mit openfoam und einem externen Strahlungs- und Wärmeleitungslöser aus. Er besteht aus den Schritten Init-Phase erstelle einen gemeinsamen Workspace für die beiden Simulationsprogramme Meshing der Openfoam-Geometrie gekoppelte Simualtion run openfoam run extern […]

Speedup mit tbb::concurrent_unordered_set

Die C++ Standard-Klassen std::set und std::map bzw. ihre unsortierten Varianten std::unordered_set und std::unordered_map (assoziative Container) sind nicht thread-safe. Eine thread-safe Alternative sind die entsprechenden Container aus der frei verfügbaren Intel-Bibliothek Threading Building Blocks (TBB). Dazu ein Beispiel: für eine FEM-Berechnung sei ein 3D-Modells mittels Tetraeder trianguliert. Üblicherweise wird das Gitter […]

1D-Interface Problem

Der Temperaturverlauf in der Umgebung eines Kontaktbereiches wird mithilfe des nachfolgenden 1-D-Modellproblems analysiert. Für die numerische Lösung der heat equation in komplizierten 3-D-Geometrien lassen sich hiermit Rückschlüsse zur Auflösung des evtl. großen Temperaturgradienten (Feinheit des Gitters im Kontaktbereich) bzw. zur Konstruktion von Ansatzfunktionen fürs XFEM-Verfahren gewinnen. Zwei, jeweils einseitig unendlich […]

Radiosity equation

$$ \newcommand{\x}{{\bf x}} \newcommand{\y}{{\bf y}} \newcommand{\Spro}[2]{\langle {#1},{#2} \rangle} $$ Die Gleichung \begin{equation} \label{IGLqout2} q_{\rm out} ({\bf x}) = \epsilon \, \sigma \, T^4({\bf x}) + \rho \, \int_\Gamma k({\bf x},{\bf y}) \, q_{\rm out} ({\bf y}) \, d{\bf y} , \quad \forall {\bf x} \in \Gamma , \end{equation} ist die […]

Modulares Potenzieren

\(\newcommand{\Mod}[1]{\ \mathrm{mod}\ #1}\)Für einen Primzahltest (kleiner Fermatscher Satz) wird die Auswertung von$$a^{p-1} \Mod{p} , \qquad 0< a < p , \quad a,p \in \mathbb{N}$$ für große Zahlen $a$ und $p$ benötigt. Die naive Berechnung, bestimme erst $a^{p-1}$ und dann die Restklasse, ist aussichtslos: sind $a$ und $p$ 10-stellig, dann besitzt […]

SageMath

SageMathCell SageMath ist ein quelloffenes und kostenloses Computeralgebrasystem (CAS). Mit dem Programm lassen sich Terme (symbolische Ausdrücke) umstellen, faktorisieren, vereinfachen, differenzieren, integrieren und vieles mehr. Beispielhaft sei die die Reihenentwicklung einer Funktion genannt. An dieser Stelle wird SageMath zur Visualisierung genutzt: die Pyramide der Basisfunktionen zu den hemisphärischen Kugelflächenfunktionen für […]

Hemisphärische Kugelflächenfunktionen

Mittels der Transformation $\theta \rightarrow 2\,\cos(\theta)-1$, die das Intervall $[0,\pi/2]$ nach $[-1,1]$ abbildet, lassen sich Kugelflächenfunktionen auf der Halbkugel erklären. Basisfunktionen Gautron [1] stellt eine Basis aus Kugelflächenfunktionen für die Hemisphäre vor: $$ \newcommand{\R}{\mathbb{C}} \newcommand{\R}{\mathbb{R}} \newcommand{\N}{\mathbb{N}} \newcommand{\Z}{\mathbb{Z}} $$ Seien $l \in \N$, $m \in \Z$ mit $|m| \leq l$, $\phi […]

Visibility

Simulationen nutzen eine geometrische Diskretisierung des realen oder virtuellen Modells, die sogenannte Triangulierung. So sind z.B. in der Automobilindustrie Fahrzeugoberflächen mit mehreren Millionen Dreiecken üblich. Soll die Wärmestrahlung zwischen den Oberflächen in der Simulation eine Rolle spielen, siehe hier, dann ist für jedes dieser Dreiecke zu entscheiden welche anderen Dreiecke […]

Rendering equation

Die rendering equation, kurz REQ, beschreibt die Strahlungsdichte, die den Punkt ${\bf x}$ einer opaken Oberfläche in Richtung $\, \omega=(\theta,\phi)$ verlässt, in der Form \begin{equation} \label{RTE} L({\bf x},\omega) = L_e({\bf x},\omega) + \int_{2 \pi} f({\bf x}, \omega, \omega^\prime) \, L( h({\bf x},\omega^\prime), -\omega^\prime) \, \cos \theta^\prime d{\omega^\prime} . \end{equation} An […]