RCS Computation Toolkit This repository provides C++ and Python tools for computing radar cross section (RCS) from surface currents or analytical models
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

76 lines
1.8 KiB

#ifndef MultiLevelSVD_H
#define MultiLevelSVD_H
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <fstream>
#include <iomanip>
#include <math.h>
#include <string>
////////////////////////////////////////////////////////////////////////////
template<class element>
group<element>* InitilizeTopGroup(element **ElementArray, int nElement);
template<class element>
group<element>** MeshPartition(group<element> *top, int grpsize, int &numGrp);
template<class element>
void BuildGroupBasisLink(group<element> *top, Basis<element>* BasisArray);
////////////////////////////////////////////////////////////////////////////
template<class element>
group<element>* InitilizeTopGroup(element **ElementArray, int nElement)
{
int i, j;
for (i = 0; i < nElement; i ++) {
element *elem = ElementArray[i];
double cx = 0.0, cy = 0.0, cz = 0.0;
int nodeNum = 3;
double x, y ,z;
for (j = 0; j < nodeNum; j ++) {
x = elem->GetNodePtr(j)->GetX();
y = elem->GetNodePtr(j)->GetY();
z = elem->GetNodePtr(j)->GetZ();
cx += x;
cy += y;
cz += z;
}
cx /= (double) nodeNum;
cy /= (double) nodeNum;
cz /= (double) nodeNum;
elem->SetCenter(cx, cy, cz);
}
group<element> *top;
top = new group<element> [1];
top->SetnElement(nElement);
top->Initialize();
for (i = 0; i < nElement; i ++)
top->InsertElement(ElementArray[i]);
return top;
}
template<class element>
group<element>** MeshPartition(group<element> *top, int grpsize, int &numGrp)
{
numGrp = 0;
top->PartitionMultiLevelSVD(grpsize, numGrp);
group<element> **groupArray;
groupArray = new group<element>* [numGrp];
top->findGroup(groupArray);
return groupArray;
}
template<class element>
void BuildGroupBasisLink(group<element> *top, Basis<element>* BasisArray)
{
top->BuildGroupBarray(BasisArray);
}
#endif