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 @@ ...@@ -15,6 +15,8 @@
#include "RandomField.h" #include "RandomField.h"
#include "matrix_operations.h" #include "matrix_operations.h"
#define PI 3.14159265
// general class for random field // general class for random field
Random_Fclass::Random_Fclass(const SVector3& Ldomain, const double OrigX, const double OrigY, const double OrigZ, const double dx, 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(){}; ...@@ -49,16 +51,16 @@ Random_Fclass::~Random_Fclass(){};
//**************** Random Euler Angler ************************** //**************** Random Euler Angler **************************
Random_Feul::Random_Feul(const double* mean, const SVector3& Ldomain, const double OrigX, const double OrigY, const double OrigZ, 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); mallocvector(&_Eul_mean,3);
_Eul_mean[0] = mean[0]; _Eul_mean[0] = mean[0];
_Eul_mean[1] = mean[1]; _Eul_mean[1] = mean[1];
_Eul_mean[2] = mean[2]; _Eul_mean[2] = mean[2];
if (Geo!= NULL ) _Geo = Geo;
malloctens4(&_RF_eul,_nx,_ny,_nz,3); malloctens4(&_RF_eul,_nx,_ny,_nz,3);
// function to fill _RF_eul??????????????
} }
Random_Feul::Random_Feul(const Random_Feul &source):Random_Fclass(source){ 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){ ...@@ -67,6 +69,7 @@ Random_Feul::Random_Feul(const Random_Feul &source):Random_Fclass(source){
_Eul_mean[0] = source._Eul_mean[0]; _Eul_mean[0] = source._Eul_mean[0];
_Eul_mean[1] = source._Eul_mean[1]; _Eul_mean[1] = source._Eul_mean[1];
_Eul_mean[2] = source._Eul_mean[2]; _Eul_mean[2] = source._Eul_mean[2];
_Geo = source._Geo;
malloctens4(&_RF_eul,_nx,_ny,_nz,3); malloctens4(&_RF_eul,_nx,_ny,_nz,3);
for(int i=0;i<_nx;i++){ for(int i=0;i<_nx;i++){
...@@ -89,6 +92,7 @@ Random_Feul& Random_Feul::operator=(const Random_Fclass &source){ ...@@ -89,6 +92,7 @@ Random_Feul& Random_Feul::operator=(const Random_Fclass &source){
_Eul_mean[0] = src->_Eul_mean[0]; _Eul_mean[0] = src->_Eul_mean[0];
_Eul_mean[1] = src->_Eul_mean[1]; _Eul_mean[1] = src->_Eul_mean[1];
_Eul_mean[2] = src->_Eul_mean[2]; _Eul_mean[2] = src->_Eul_mean[2];
_Geo = src->_Geo;
for(int i=0;i<_nx;i++){ for(int i=0;i<_nx;i++){
for(int j=0;j<_ny;j++){ for(int j=0;j<_ny;j++){
...@@ -111,10 +115,30 @@ Random_Feul::~Random_Feul(){ ...@@ -111,10 +115,30 @@ Random_Feul::~Random_Feul(){
void Random_Feul::RandomGen(const SVector3 &GaussP, double* V_Rand){ void Random_Feul::RandomGen(const SVector3 &GaussP, double* V_Rand){
V_Rand[0] = 90.0; if(_Geo == "Cylinder"){
V_Rand[1] = 90.0; 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; V_Rand[2] = 0.0;
} }
}
else if(_Geo == "Woven"){
////?????
}
}
//************** Random Material Propety ********************* //************** Random Material Propety *********************
Random_FProp::Random_FProp(const int Randnum, const SVector3& Ldomain, const double OrigX, const double OrigY, const double OrigZ, 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){ ...@@ -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, 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; 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; return _RFclass;
} }
......
...@@ -42,10 +42,12 @@ class Random_Feul : public Random_Fclass{ ...@@ -42,10 +42,12 @@ class Random_Feul : public Random_Fclass{
protected: protected:
double* _Eul_mean; double* _Eul_mean;
double**** _RF_eul; double**** _RF_eul;
const char* _Geo;
public: public:
Random_Feul(const double* mean, const SVector3& Ldomain, const double OrigX, const double OrigY, const double OrigZ, 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(const Random_Feul &source);
Random_Feul& operator=(const Random_Fclass &source); Random_Feul& operator=(const Random_Fclass &source);
~Random_Feul(); ~Random_Feul();
...@@ -73,7 +75,7 @@ class Random_FProp : public Random_Fclass{ ...@@ -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, 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, 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); 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