MAIA bb96820c
Multiphysics at AIA
Loading...
Searching...
No Matches
lscartesiancontrolpoint.h
Go to the documentation of this file.
1// Copyright (C) 2024 The m-AIA AUTHORS
2//
3// This file is part of m-AIA (https://git.rwth-aachen.de/aia/m-AIA/m-AIA)
4//
5// SPDX-License-Identifier: LGPL-3.0-only
6
7#ifndef LSCONTROLPOINT_H
8#define LSCONTROLPOINT_H
9
10#include "INCLUDE/maiatypes.h"
11
12template <MInt nDim>
13class Geometry;
14
15template <MInt nDim>
17 private:
18 // Control Point Method 1, Lagrangian point
19 MFloat tr[3][3];
21 // Control Point Method 2, Moving STL
24
25 protected:
26 // Auxilary funtions
27 MBool MATXINVT(MFloat T[3][3], MFloat** R);
28 MBool LUDECMP(MFloat** a, MInt* indx, MFloat& d);
29 void LUBKSB(MFloat** a, MInt* indx, MFloat* b);
30 MFloat norm(MFloat* r);
31 // Control Point Method 1, Lagrangian point
32 void CtrlPnt1_UpdateTR();
33
34 public:
37
38 // Control Point Method 1, Lagrangian point
39 // CtrlPnt1_LagrangPnt[i][j]
40 // i=0, mid points; i=1, head in u; i=2, head in v; i=3, head in w
41 // Always consider everything as 3D. In 2D, set the 3rd dimension to zero
43 void CtrlPnt1_Initialize(Geometry<nDim>* g, MInt dimensions);
45 // Warning!!! orientation about current reference origin
47 // Waring!!! vector q will be changed
48 void CtrlPnt1_quvw(MFloat* q);
49 // Warning!!!! No orientation implemented, only moving origin
50 void CtrlPnt1_CtrlPntToSTL(const MChar* FILNAME);
51
52
53 // Control Point Method 2, Movable STL
54 // pointer to geometry elements
55 void CtrlPnt2_shiftSTL(MInt bcId, MFloat* dx);
56 void CtrlPnt2_rotateSTL(MInt bcId, MFloat* dphi, MFloat* ori);
57 void CtrlPnt2_Initialize(Geometry<nDim>* g, MInt dimensions);
59 // Warning!!! orientation about current reference origin
63 void CtrlPnt2_Update();
66 void CtrlPnt2_CtrlPntToSTL(const MChar* FILENAME, MInt bcId);
67 void CtrlPnt2_CtrlPntToGNUPlot(const MChar* FILENAME);
68
69 private:
74};
75
76#endif
void CtrlPnt2_Initialize(Geometry< nDim > *g, MInt dimensions)
void CtrlPnt2_UpdateNormalVector(MInt e)
void CtrlPnt1_CtrlPntToSTL(const MChar *FILNAME)
void LUBKSB(MFloat **a, MInt *indx, MFloat *b)
MFloat CtrlPnt1_LagrangPnt[4][3]
void CtrlPnt2_InitOrientation(MFloat *u, MFloat *v, MFloat *w)
void CtrlPnt2_CtrlPntToSTL(const MChar *FILENAME, MInt bcId)
void CtrlPnt2_getMBElementVertex(MInt e, MInt v, MFloat *r)
void CtrlPnt2_CtrlPntToGNUPlot(const MChar *FILENAME)
void CtrlPnt1_InitOrientation(MFloat *u, MFloat *v, MFloat *w)
void CtrlPnt1_quvw(MFloat *q)
void CtrlPnt1_InitPosition(MFloat *p)
void CtrlPnt2_shiftSTL(MInt bcId, MFloat *dx)
MFloat norm(MFloat *r)
void CtrlPnt2_rotateSTL(MInt bcId, MFloat *dphi, MFloat *ori)
Geometry< nDim > * geometry
void CtrlPnt2_InitPosition(MFloat *p)
void CtrlPnt2_MoveMBElementVertex(MInt e, MInt v, MFloat *dx)
MBool LUDECMP(MFloat **a, MInt *indx, MFloat &d)
MBool MATXINVT(MFloat T[3][3], MFloat **R)
void CtrlPnt1_Initialize(Geometry< nDim > *g, MInt dimensions)
int32_t MInt
Definition: maiatypes.h:62
double MFloat
Definition: maiatypes.h:52
bool MBool
Definition: maiatypes.h:58
char MChar
Definition: maiatypes.h:56
Definition: contexttypes.h:19