"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "Functions/F_PeWe.cpp" between
getdp-3.4.0-source.tgz and getdp-3.5.0-source.tgz

About: GetDP is a general finite element solver using mixed elements to discretize de Rham-type complexes in one, two and three dimensions.

F_PeWe.cpp  (getdp-3.4.0-source.tgz):F_PeWe.cpp  (getdp-3.5.0-source.tgz)
// GetDP - Copyright (C) 1997-2021 P. Dular and C. Geuzaine, University of Liege // GetDP - Copyright (C) 1997-2022 P. Dular and C. Geuzaine, University of Liege
// //
// See the LICENSE.txt file for license information. Please report all // See the LICENSE.txt file for license information. Please report all
// issues on https://gitlab.onelab.info/getdp/getdp/issues. // issues on https://gitlab.onelab.info/getdp/getdp/issues.
#include <math.h> #include <math.h>
#include "ProData.h" #include "ProData.h"
#include "F.h" #include "F.h"
#include "Message.h" #include "Message.h"
#include "GetDPConfig.h" #include "GetDPConfig.h"
extern "C" { extern "C" {
extern void cylindrical_cavity_(double *du, double *dv, double *dut, double *d extern void cylindrical_cavity_(double *du, double *dv, double *dut,
vt, double *dvt, double *X, double *Y, double *t,
double *X, double *Y, double *t, double *omega double *omega, double *lambda, double *mu,
, double *rho, double *a);
double *lambda, double *mu, double *rho, doubl extern void cylindrical_wall_(double *du, double *dv, double *dut, double *dvt,
e *a); double *X, double *Y, double *t, double *omega,
extern void cylindrical_wall_(double *du, double *dv, double *dut, double *dvt double *lambda, double *mu, double *rho,
, double *a);
double *X, double *Y, double *t, double *omega, extern void cylindrical_walls_(double *du, double *dv, double *dut, double *dvt,
double *lambda, double *mu, double *rho, double double *X, double *Y, double *t, double *omega,
*a); double *lambda, double *mu, double *rho,
extern void cylindrical_walls_(double *du, double *dv, double *dut, double *dv double *a);
t,
double *X, double *Y, double *t, double *omega, extern void cylindrical_wallout_(double *du, double *dv, double *dut,
double *lambda, double *mu, double *rho, double double *dvt, double *X, double *Y, double *t,
*a); double *omega, double *lambda, double *mu,
double *rho, double *a);
extern void cylindrical_wallout_(double *du, double *dv, double *dut, double *
dvt, extern void cylindrical_wallsout_(double *du, double *dv, double *dut,
double *X, double *Y, double *t, double *omega, double *dvt, double *X, double *Y, double *t,
double *lambda, double *mu, double *rho, double double *omega, double *lambda, double *mu,
*a); double *rho, double *a);
extern void cylindrical_wallsout_(double *du, double *dv, double *dut, double extern void cylindrical_walloutabc_(double *du, double *dv, double *dut,
*dvt, double *dvt, double *X, double *Y,
double *X, double *Y, double *t, double *omega, double *t, double *omega, double *lambda,
double *lambda, double *mu, double *rho, double double *mu, double *rho, double *a,
*a); double *b);
extern void cylindrical_walloutabc_(double *du, double *dv, double *dut, doubl extern void cylindrical_wallsoutabc_(double *du, double *dv, double *dut,
e *dvt, double *dvt, double *X, double *Y,
double *X, double *Y, double *t, double *omega, double *t, double *omega, double *lambda,
double *lambda, double *mu, double *rho, double double *mu, double *rho, double *a,
*a, double *b);
double *b);
extern void cylindrical_walloutabc2_(double *du, double *dv, double *dut,
extern void cylindrical_wallsoutabc_(double *du, double *dv, double *dut, doub double *dvt, double *X, double *Y,
le *dvt, double *t, double *omega, double *lambda,
double *X, double *Y, double *t, double *omega, double *mu, double *rho, double *a,
double *lambda, double *mu, double *rho, double double *b);
*a,
double *b); extern void cylindrical_walloutabc2pade_(
double *du, double *dv, double *dut, double *dvt, double *X, double *Y,
extern void cylindrical_walloutabc2_(double *du, double *dv, double *dut, doub double *t, double *omega, double *lambda, double *mu, double *rho, double *a,
le *dvt, double *b, double *L, double *alpha, double *eps_p, double *eps_s);
double *X, double *Y, double *t, double *omega,
double *lambda, double *mu, double *rho, double extern void cylindrical_wallsoutabc2pade_(
*a, double *du, double *dv, double *dut, double *dvt, double *X, double *Y,
double *b); double *t, double *omega, double *lambda, double *mu, double *rho, double *a,
double *b, double *L, double *alpha, double *eps_p, double *eps_s);
extern void cylindrical_walloutabc2pade_(double *du, double *dv, double *dut,
double *dvt,
double *X, double *Y, double *t, double *omega,
double *lambda, double *mu, double *rho, double
*a,
double *b, double *L, double *alpha, double *eps
_p, double *eps_s);
extern void cylindrical_wallsoutabc2pade_(double *du, double *dv, double *dut,
double *dvt,
double *X, double *Y, double *t, double *omega,
double *lambda, double *mu, double *rho, double
*a,
double *b, double *L, double *alpha, double *eps
_p, double *eps_s);
} }
void F_ElastodynamicsCylinderCavity(F_ARG) void F_ElastodynamicsCylinderCavity(F_ARG)
{ {
double du_re = 0., dv_re = 0., du_im = 0., dv_im = 0.; double du_re = 0., dv_re = 0., du_im = 0., dv_im = 0.;
#if defined(HAVE_PEWE) #if defined(HAVE_PEWE)
double X = A->Val[0]; double X = A->Val[0];
double Y = A->Val[1]; double Y = A->Val[1];
double t = 0.; double t = 0.;
double omega = Fct->Para[0]; double omega = Fct->Para[0];
double lambda = Fct->Para[1]; double lambda = Fct->Para[1];
double mu = Fct->Para[2]; double mu = Fct->Para[2];
double rho = Fct->Para[3]; double rho = Fct->Para[3];
double a = Fct->Para[4]; double a = Fct->Para[4];
cylindrical_cavity_(&du_re,&dv_re,&du_im,&dv_im,&X,&Y,&t,&omega,&lambda,&mu,&r cylindrical_cavity_(&du_re, &dv_re, &du_im, &dv_im, &X, &Y, &t, &omega,
ho,&a); &lambda, &mu, &rho, &a);
#else #else
Message::Error("ElastodynamicsCylinderCavity requires PeWe"); Message::Error("ElastodynamicsCylinderCavity requires PeWe");
#endif #endif
V->Val[0] = du_re; V->Val[0] = du_re;
V->Val[1] = dv_re; V->Val[1] = dv_re;
V->Val[MAX_DIM] = du_im; V->Val[MAX_DIM] = du_im;
V->Val[MAX_DIM+1] = dv_im; V->Val[MAX_DIM + 1] = dv_im;
V->Type = VECTOR ; V->Type = VECTOR;
} }
void F_ElastodynamicsCylinderWall(F_ARG) void F_ElastodynamicsCylinderWall(F_ARG)
{ {
double du_re = 0., dv_re = 0., du_im = 0., dv_im = 0.; double du_re = 0., dv_re = 0., du_im = 0., dv_im = 0.;
#if defined(HAVE_PEWE) #if defined(HAVE_PEWE)
double X = A->Val[0]; double X = A->Val[0];
double Y = A->Val[1]; double Y = A->Val[1];
double t = 0.; double t = 0.;
double omega = Fct->Para[0]; double omega = Fct->Para[0];
double lambda = Fct->Para[1]; double lambda = Fct->Para[1];
double mu = Fct->Para[2]; double mu = Fct->Para[2];
double rho = Fct->Para[3]; double rho = Fct->Para[3];
double a = Fct->Para[4]; double a = Fct->Para[4];
cylindrical_wall_(&du_re,&dv_re,&du_im,&dv_im,&X,&Y,&t,&omega,&lambda,&mu,&rho cylindrical_wall_(&du_re, &dv_re, &du_im, &dv_im, &X, &Y, &t, &omega, &lambda,
,&a); &mu, &rho, &a);
#else #else
Message::Error("ElastodynamicsCylinderWall requires PeWe"); Message::Error("ElastodynamicsCylinderWall requires PeWe");
#endif #endif
V->Val[0] = du_re; V->Val[0] = du_re;
V->Val[1] = dv_re; V->Val[1] = dv_re;
V->Val[MAX_DIM] = du_im; V->Val[MAX_DIM] = du_im;
V->Val[MAX_DIM+1] = dv_im; V->Val[MAX_DIM + 1] = dv_im;
V->Type = VECTOR ; V->Type = VECTOR;
} }
void F_ElastodynamicsCylinderWallS(F_ARG) void F_ElastodynamicsCylinderWallS(F_ARG)
{ {
double du_re = 0., dv_re = 0., du_im = 0., dv_im = 0.; double du_re = 0., dv_re = 0., du_im = 0., dv_im = 0.;
#if defined(HAVE_PEWE) #if defined(HAVE_PEWE)
double X = A->Val[0]; double X = A->Val[0];
double Y = A->Val[1]; double Y = A->Val[1];
double t = 0.; double t = 0.;
double omega = Fct->Para[0]; double omega = Fct->Para[0];
double lambda = Fct->Para[1]; double lambda = Fct->Para[1];
double mu = Fct->Para[2]; double mu = Fct->Para[2];
double rho = Fct->Para[3]; double rho = Fct->Para[3];
double a = Fct->Para[4]; double a = Fct->Para[4];
cylindrical_walls_(&du_re,&dv_re,&du_im,&dv_im,&X,&Y,&t,&omega,&lambda,&mu,&rh cylindrical_walls_(&du_re, &dv_re, &du_im, &dv_im, &X, &Y, &t, &omega,
o,&a); &lambda, &mu, &rho, &a);
#else #else
Message::Error("ElastodynamicsCylinderWallS requires PeWe"); Message::Error("ElastodynamicsCylinderWallS requires PeWe");
#endif #endif
V->Val[0] = du_re; V->Val[0] = du_re;
V->Val[1] = dv_re; V->Val[1] = dv_re;
V->Val[MAX_DIM] = du_im; V->Val[MAX_DIM] = du_im;
V->Val[MAX_DIM+1] = dv_im; V->Val[MAX_DIM + 1] = dv_im;
V->Type = VECTOR ; V->Type = VECTOR;
} }
void F_ElastodynamicsCylinderWallOut(F_ARG) void F_ElastodynamicsCylinderWallOut(F_ARG)
{ {
double du_re = 0., dv_re = 0., du_im = 0., dv_im = 0.; double du_re = 0., dv_re = 0., du_im = 0., dv_im = 0.;
#if defined(HAVE_PEWE) #if defined(HAVE_PEWE)
double X = A->Val[0]; double X = A->Val[0];
double Y = A->Val[1]; double Y = A->Val[1];
double t = 0.; double t = 0.;
double omega = Fct->Para[0]; double omega = Fct->Para[0];
double lambda = Fct->Para[1]; double lambda = Fct->Para[1];
double mu = Fct->Para[2]; double mu = Fct->Para[2];
double rho = Fct->Para[3]; double rho = Fct->Para[3];
double a = Fct->Para[4]; double a = Fct->Para[4];
cylindrical_wallout_(&du_re,&dv_re,&du_im,&dv_im,&X,&Y,&t, cylindrical_wallout_(&du_re, &dv_re, &du_im, &dv_im, &X, &Y, &t, &omega,
&omega,&lambda,&mu,&rho,&a); &lambda, &mu, &rho, &a);
#else #else
Message::Error("ElastodynamicsCylinderWallOut requires PeWe"); Message::Error("ElastodynamicsCylinderWallOut requires PeWe");
#endif #endif
V->Val[0] = du_re; V->Val[0] = du_re;
V->Val[1] = dv_re; V->Val[1] = dv_re;
V->Val[MAX_DIM] = du_im; V->Val[MAX_DIM] = du_im;
V->Val[MAX_DIM+1] = dv_im; V->Val[MAX_DIM + 1] = dv_im;
V->Type = VECTOR ; V->Type = VECTOR;
} }
void F_ElastodynamicsCylinderWallsOut(F_ARG) void F_ElastodynamicsCylinderWallsOut(F_ARG)
{ {
double du_re = 0., dv_re = 0., du_im = 0., dv_im = 0.; double du_re = 0., dv_re = 0., du_im = 0., dv_im = 0.;
#if defined(HAVE_PEWE) #if defined(HAVE_PEWE)
double X = A->Val[0]; double X = A->Val[0];
double Y = A->Val[1]; double Y = A->Val[1];
double t = 0.; double t = 0.;
double omega = Fct->Para[0]; double omega = Fct->Para[0];
double lambda = Fct->Para[1]; double lambda = Fct->Para[1];
double mu = Fct->Para[2]; double mu = Fct->Para[2];
double rho = Fct->Para[3]; double rho = Fct->Para[3];
double a = Fct->Para[4]; double a = Fct->Para[4];
cylindrical_wallsout_(&du_re,&dv_re,&du_im,&dv_im,&X,&Y,&t,&omega,&lambda,&mu, cylindrical_wallsout_(&du_re, &dv_re, &du_im, &dv_im, &X, &Y, &t, &omega,
&rho,&a); &lambda, &mu, &rho, &a);
#else #else
Message::Error("ElastodynamicsCylinderWallSOut requires PeWe"); Message::Error("ElastodynamicsCylinderWallSOut requires PeWe");
#endif #endif
V->Val[0] = du_re; V->Val[0] = du_re;
V->Val[1] = dv_re; V->Val[1] = dv_re;
V->Val[MAX_DIM] = du_im; V->Val[MAX_DIM] = du_im;
V->Val[MAX_DIM+1] = dv_im; V->Val[MAX_DIM + 1] = dv_im;
V->Type = VECTOR ; V->Type = VECTOR;
} }
void F_ElastoCylinderWallOutAbc(F_ARG) void F_ElastoCylinderWallOutAbc(F_ARG)
{ {
double du_re = 0., dv_re = 0., du_im = 0., dv_im = 0.; double du_re = 0., dv_re = 0., du_im = 0., dv_im = 0.;
#if defined(HAVE_PEWE) #if defined(HAVE_PEWE)
double X = A->Val[0]; double X = A->Val[0];
double Y = A->Val[1]; double Y = A->Val[1];
double t = 0.; double t = 0.;
double omega = Fct->Para[0]; double omega = Fct->Para[0];
double lambda = Fct->Para[1]; double lambda = Fct->Para[1];
double mu = Fct->Para[2]; double mu = Fct->Para[2];
double rho = Fct->Para[3]; double rho = Fct->Para[3];
double a = Fct->Para[4]; double a = Fct->Para[4];
double b = Fct->Para[5]; double b = Fct->Para[5];
cylindrical_walloutabc_(&du_re,&dv_re,&du_im,&dv_im,&X,&Y,&t,&omega, cylindrical_walloutabc_(&du_re, &dv_re, &du_im, &dv_im, &X, &Y, &t, &omega,
&lambda,&mu,&rho,&a,&b); &lambda, &mu, &rho, &a, &b);
#else #else
Message::Error("ElastodynamicsCylinderWallOutABC requires PeWe"); Message::Error("ElastodynamicsCylinderWallOutABC requires PeWe");
#endif #endif
V->Val[0] = du_re; V->Val[0] = du_re;
V->Val[1] = dv_re; V->Val[1] = dv_re;
V->Val[MAX_DIM] = du_im; V->Val[MAX_DIM] = du_im;
V->Val[MAX_DIM+1] = dv_im; V->Val[MAX_DIM + 1] = dv_im;
V->Type = VECTOR ; V->Type = VECTOR;
} }
void F_ElastoCylinderWallsOutAbc(F_ARG) void F_ElastoCylinderWallsOutAbc(F_ARG)
{ {
double du_re = 0., dv_re = 0., du_im = 0., dv_im = 0.; double du_re = 0., dv_re = 0., du_im = 0., dv_im = 0.;
#if defined(HAVE_PEWE) #if defined(HAVE_PEWE)
double X = A->Val[0]; double X = A->Val[0];
double Y = A->Val[1]; double Y = A->Val[1];
double t = 0.; double t = 0.;
double omega = Fct->Para[0]; double omega = Fct->Para[0];
double lambda = Fct->Para[1]; double lambda = Fct->Para[1];
double mu = Fct->Para[2]; double mu = Fct->Para[2];
double rho = Fct->Para[3]; double rho = Fct->Para[3];
double a = Fct->Para[4]; double a = Fct->Para[4];
double b = Fct->Para[5]; double b = Fct->Para[5];
cylindrical_wallsoutabc_(&du_re,&dv_re,&du_im,&dv_im,&X,&Y,&t,&omega, cylindrical_wallsoutabc_(&du_re, &dv_re, &du_im, &dv_im, &X, &Y, &t, &omega,
&lambda,&mu,&rho,&a,&b); &lambda, &mu, &rho, &a, &b);
#else #else
Message::Error("ElastodynamicsCylinderWallsOutABC requires PeWe"); Message::Error("ElastodynamicsCylinderWallsOutABC requires PeWe");
#endif #endif
V->Val[0] = du_re; V->Val[0] = du_re;
V->Val[1] = dv_re; V->Val[1] = dv_re;
V->Val[MAX_DIM] = du_im; V->Val[MAX_DIM] = du_im;
V->Val[MAX_DIM+1] = dv_im; V->Val[MAX_DIM + 1] = dv_im;
V->Type = VECTOR ; V->Type = VECTOR;
} }
void F_ElastoCylinderWallOutAbc2(F_ARG) void F_ElastoCylinderWallOutAbc2(F_ARG)
{ {
double du_re = 0., dv_re = 0., du_im = 0., dv_im = 0.; double du_re = 0., dv_re = 0., du_im = 0., dv_im = 0.;
#if defined(HAVE_PEWE) #if defined(HAVE_PEWE)
double X = A->Val[0]; double X = A->Val[0];
double Y = A->Val[1]; double Y = A->Val[1];
double t = 0.; double t = 0.;
double omega = Fct->Para[0]; double omega = Fct->Para[0];
double lambda = Fct->Para[1]; double lambda = Fct->Para[1];
double mu = Fct->Para[2]; double mu = Fct->Para[2];
double rho = Fct->Para[3]; double rho = Fct->Para[3];
double a = Fct->Para[4]; double a = Fct->Para[4];
double b = Fct->Para[5]; double b = Fct->Para[5];
cylindrical_walloutabc2_(&du_re,&dv_re,&du_im,&dv_im,&X,&Y,&t,&omega, cylindrical_walloutabc2_(&du_re, &dv_re, &du_im, &dv_im, &X, &Y, &t, &omega,
&lambda,&mu,&rho,&a,&b); &lambda, &mu, &rho, &a, &b);
#else #else
Message::Error("ElastodynamicsCylinderWallOutABC2 requires PeWe"); Message::Error("ElastodynamicsCylinderWallOutABC2 requires PeWe");
#endif #endif
V->Val[0] = du_re; V->Val[0] = du_re;
V->Val[1] = dv_re; V->Val[1] = dv_re;
V->Val[MAX_DIM] = du_im; V->Val[MAX_DIM] = du_im;
V->Val[MAX_DIM+1] = dv_im; V->Val[MAX_DIM + 1] = dv_im;
V->Type = VECTOR ; V->Type = VECTOR;
} }
void F_ElastoCylinderWallOutAbc2Pade(F_ARG) void F_ElastoCylinderWallOutAbc2Pade(F_ARG)
{ {
double du_re = 0., dv_re = 0., du_im = 0., dv_im = 0.; double du_re = 0., dv_re = 0., du_im = 0., dv_im = 0.;
#if defined(HAVE_PEWE) #if defined(HAVE_PEWE)
double X = A->Val[0]; double X = A->Val[0];
double Y = A->Val[1]; double Y = A->Val[1];
double t = 0.; double t = 0.;
double omega = Fct->Para[0]; double omega = Fct->Para[0];
double lambda = Fct->Para[1]; double lambda = Fct->Para[1];
double mu = Fct->Para[2]; double mu = Fct->Para[2];
double rho = Fct->Para[3]; double rho = Fct->Para[3];
double a = Fct->Para[4]; double a = Fct->Para[4];
double b = Fct->Para[5]; double b = Fct->Para[5];
double L = Fct->Para[6]; double L = Fct->Para[6];
double alpha = Fct->Para[7]; double alpha = Fct->Para[7];
double eps_p = Fct->Para[8]; double eps_p = Fct->Para[8];
double eps_s = Fct->Para[9]; double eps_s = Fct->Para[9];
cylindrical_walloutabc2pade_(&du_re,&dv_re,&du_im,&dv_im,&X,&Y,&t,&omega, cylindrical_walloutabc2pade_(&du_re, &dv_re, &du_im, &dv_im, &X, &Y, &t,
&lambda,&mu,&rho,&a,&b,&L,&alpha,&eps_p,&eps_s); &omega, &lambda, &mu, &rho, &a, &b, &L, &alpha,
&eps_p, &eps_s);
#else #else
Message::Error("ElastodynamicsCylinderWallOutABC2_Pade requires PeWe"); Message::Error("ElastodynamicsCylinderWallOutABC2_Pade requires PeWe");
#endif #endif
V->Val[0] = du_re; V->Val[0] = du_re;
V->Val[1] = dv_re; V->Val[1] = dv_re;
V->Val[MAX_DIM] = du_im; V->Val[MAX_DIM] = du_im;
V->Val[MAX_DIM+1] = dv_im; V->Val[MAX_DIM + 1] = dv_im;
V->Type = VECTOR ; V->Type = VECTOR;
} }
void F_ElastoCylinderWallsOutAbc2Pade(F_ARG) void F_ElastoCylinderWallsOutAbc2Pade(F_ARG)
{ {
double du_re = 0., dv_re = 0., du_im = 0., dv_im = 0.; double du_re = 0., dv_re = 0., du_im = 0., dv_im = 0.;
#if defined(HAVE_PEWE) #if defined(HAVE_PEWE)
double X = A->Val[0]; double X = A->Val[0];
double Y = A->Val[1]; double Y = A->Val[1];
double t = 0.; double t = 0.;
double omega = Fct->Para[0]; double omega = Fct->Para[0];
double lambda = Fct->Para[1]; double lambda = Fct->Para[1];
double mu = Fct->Para[2]; double mu = Fct->Para[2];
double rho = Fct->Para[3]; double rho = Fct->Para[3];
double a = Fct->Para[4]; double a = Fct->Para[4];
double b = Fct->Para[5]; double b = Fct->Para[5];
double L = Fct->Para[6]; double L = Fct->Para[6];
double alpha = Fct->Para[7]; double alpha = Fct->Para[7];
double eps_p = Fct->Para[8]; double eps_p = Fct->Para[8];
double eps_s = Fct->Para[9]; double eps_s = Fct->Para[9];
cylindrical_wallsoutabc2pade_(&du_re,&dv_re,&du_im,&dv_im,&X,&Y,&t,&omega, cylindrical_wallsoutabc2pade_(&du_re, &dv_re, &du_im, &dv_im, &X, &Y, &t,
&lambda,&mu,&rho,&a,&b,&L,&alpha,&eps_p,&eps_s); &omega, &lambda, &mu, &rho, &a, &b, &L, &alpha,
&eps_p, &eps_s);
#else #else
Message::Error("ElastodynamicsCylinderWallsOutABC2_Pade requires PeWe"); Message::Error("ElastodynamicsCylinderWallsOutABC2_Pade requires PeWe");
#endif #endif
V->Val[0] = du_re; V->Val[0] = du_re;
V->Val[1] = dv_re; V->Val[1] = dv_re;
V->Val[MAX_DIM] = du_im; V->Val[MAX_DIM] = du_im;
V->Val[MAX_DIM+1] = dv_im; V->Val[MAX_DIM + 1] = dv_im;
V->Type = VECTOR ; V->Type = VECTOR;
} }
#undef F_ARG #undef F_ARG
 End of changes. 32 change blocks. 
117 lines changed or deleted 103 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)