Skip to content
Snippets Groups Projects
Commit 86199c10 authored by Ling Wu's avatar Ling Wu
Browse files

missing files

parent 144560fc
No related branches found
No related tags found
1 merge request!161Master
......@@ -15,6 +15,8 @@
#include "RandomField.h"
#include "matrix_operations.h"
#define PI 3.14159265
// general class for random field
Random_Fclass::Random_Fclass(const SVector3& Ldomain, const double OrigX, const double OrigY, const double OrigZ, const double dx,
......@@ -49,16 +51,16 @@ Random_Fclass::~Random_Fclass(){};
//**************** Random Euler Angler **************************
Random_Feul::Random_Feul(const double* mean, const SVector3& Ldomain, const double OrigX, const double OrigY, const double OrigZ,
const double dx, const double dy, const double dz):Random_Fclass(Ldomain, OrigX, OrigY, OrigZ, dx, dy, dz){
const double dx, const double dy, const double dz, const char* Geo):Random_Fclass(Ldomain, OrigX, OrigY, OrigZ, dx, dy, dz){
mallocvector(&_Eul_mean,3);
_Eul_mean[0] = mean[0];
_Eul_mean[1] = mean[1];
_Eul_mean[2] = mean[2];
if (Geo!= NULL ) _Geo = Geo;
malloctens4(&_RF_eul,_nx,_ny,_nz,3);
// function to fill _RF_eul??????????????
}
Random_Feul::Random_Feul(const Random_Feul &source):Random_Fclass(source){
......@@ -67,6 +69,7 @@ Random_Feul::Random_Feul(const Random_Feul &source):Random_Fclass(source){
_Eul_mean[0] = source._Eul_mean[0];
_Eul_mean[1] = source._Eul_mean[1];
_Eul_mean[2] = source._Eul_mean[2];
_Geo = source._Geo;
malloctens4(&_RF_eul,_nx,_ny,_nz,3);
for(int i=0;i<_nx;i++){
......@@ -89,6 +92,7 @@ Random_Feul& Random_Feul::operator=(const Random_Fclass &source){
_Eul_mean[0] = src->_Eul_mean[0];
_Eul_mean[1] = src->_Eul_mean[1];
_Eul_mean[2] = src->_Eul_mean[2];
_Geo = src->_Geo;
for(int i=0;i<_nx;i++){
for(int j=0;j<_ny;j++){
......@@ -111,10 +115,30 @@ Random_Feul::~Random_Feul(){
void Random_Feul::RandomGen(const SVector3 &GaussP, double* V_Rand){
V_Rand[0] = 90.0;
V_Rand[1] = 90.0;
if(_Geo == "Cylinder"){
if(_Eul_mean[0] == 0.0){
V_Rand[0] = 0.0;
V_Rand[1] = 0.0;
V_Rand[2] = 0.0;
}
else if(_Eul_mean[0] != 0.0){
double R = sqrt(pow((GaussP(0)-_OrigX), 2.0)+pow((GaussP(1)-_OrigY), 2.0));
V_Rand[0] = acos((GaussP(0)-_OrigX)/R)*180.0/PI;
if((GaussP(1)-_OrigY) < 0.0){
V_Rand[0] = -V_Rand[0];
}
V_Rand[1] = _Eul_mean[0];
V_Rand[2] = 0.0;
}
}
else if(_Geo == "Woven"){
////?????
}
}
//************** Random Material Propety *********************
Random_FProp::Random_FProp(const int Randnum, const SVector3& Ldomain, const double OrigX, const double OrigY, const double OrigZ,
......@@ -177,10 +201,10 @@ void Random_FProp::RandomGen(const SVector3 &GaussP, double* V_Rand){
//**************************
Random_Fclass* init_RandF(const double* mean, const SVector3& Ldomain, const double OrigX, const double OrigY, const double OrigZ,
const double dx, const double dy, const double dz){
const double dx, const double dy, const double dz, const char* Geo){
Random_Fclass* _RFclass;
_RFclass = new Random_Feul(mean, Ldomain, OrigX, OrigY, OrigZ, dx, dy, dz);
_RFclass = new Random_Feul(mean, Ldomain, OrigX, OrigY, OrigZ, dx, dy, dz, Geo);
return _RFclass;
}
......
......@@ -42,10 +42,12 @@ class Random_Feul : public Random_Fclass{
protected:
double* _Eul_mean;
double**** _RF_eul;
const char* _Geo;
public:
Random_Feul(const double* mean, const SVector3& Ldomain, const double OrigX, const double OrigY, const double OrigZ,
const double dx, const double dy, const double dz);
const double dx, const double dy, const double dz, const char* Geo);
Random_Feul(const Random_Feul &source);
Random_Feul& operator=(const Random_Fclass &source);
~Random_Feul();
......@@ -73,7 +75,7 @@ class Random_FProp : public Random_Fclass{
Random_Fclass* init_RandF(const double* mean, const SVector3& Ldomain, const double OrigX, const double OrigY, const double OrigZ,
const double dx, const double dy, const double dz);
const double dx, const double dy, const double dz, const char* Geo);
Random_Fclass* init_RandF(const int Randnum, const SVector3& Ldomain, const double OrigX, const double OrigY, const double OrigZ,
const double dx, const double dy, const double dz, const char*RandProp);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment