Commit 37d62c4c authored by Kevin Jacques's avatar Kevin Jacques

Merge branch 'RunTimeNLIterVar' into 'master'

RunTimeNLIterVar See merge request !33
parents 52966f10 fcecb101
Pipeline #1127 passed with stage
in 9 minutes 35 seconds
......@@ -1102,10 +1102,12 @@ struct StringXFunction2Nbr F_Function[] = { /* #Par #Arg */
//{"Update_Jk" , (CAST)F_Update_Jk , -1, 6 }, //kj+++ // NOT USED FOR NOW (26/06/2016)
//{"Update_Jk_sd" , (CAST)F_Update_Jk_sd , -1, 6 }, //kj+++ // NOT USED FOR NOW (26/06/2016)
{"Update_Cell_K" , (CAST)F_Update_Cell_K , -1, 4 }, //kj+++
{"b_Vinch_K" , (CAST)F_b_Vinch_K , -1, 7 }, // 1+3*2=7 //kj+++
{"h_Vinch_K" , (CAST)F_h_Vinch_K , -1, 9 }, // parameter is dimension {2},{3}, 3+3*2=9 //kj+++
{"dbdh_Vinch_K" , (CAST)F_dbdh_Vinch_K , -1, 7 }, // parameter is dimension {2},{3}, 1+3*2=7 //kj+++
{"dhdb_Vinch_K" , (CAST)F_dhdb_Vinch_K , -1, 7 }, // parameter is dimension {2},{3}, 1+3*2=7 //kj+++
{"b_Vinch_K" , (CAST)F_b_Vinch_K , -1, -1 }, // 1+3*2=7 //kj+++
{"hr_Vinch_K" , (CAST)F_hr_Vinch_K , -1, -1 }, // 1+3*1=4 //kj+++
{"Jr_Vinch_K" , (CAST)F_Jr_Vinch_K , -1, -1 }, // 1+3*1=4 //kj+++
{"h_Vinch_K" , (CAST)F_h_Vinch_K , -1, -1 }, // parameter is dimension {2},{3}, 3+3*2=9 //kj+++
{"dbdh_Vinch_K" , (CAST)F_dbdh_Vinch_K , -1, -1 }, // parameter is dimension {2},{3}, 1+3*2=7 //kj+++
{"dhdb_Vinch_K" , (CAST)F_dhdb_Vinch_K , -1, -1 }, // parameter is dimension {2},{3}, 1+3*2=7 //kj+++
// F_MultiHar
{"MHToTime" , (CAST)F_MHToTime , 0, 2 },
......
......@@ -69,6 +69,7 @@ void Cal_InitGalerkinTermOfFemEquation(struct EquationTerm * EquationTerm_P,
assDiag_done.clear();
//kj+++ // brutal approach: comment this to avoid auto-symmetrization of JacNL tensor with getdp (comment all this bloc)
// check for potentially symmetrical elementary matrix
FI->SymmetricalMatrix =
(EquationTerm_P->Case.LocalTerm.Term.DefineQuantityIndexEqu ==
......@@ -94,6 +95,8 @@ void Cal_InitGalerkinTermOfFemEquation(struct EquationTerm * EquationTerm_P,
}
}
}
//*/ //kj+++
//FI->SymmetricalMatrix = 0; //kj+++ // brutal approach: uncomment this to avoid auto-symmetrization of JacNL tensor with getdp QQQ (uncomment this)
if (FI->SymmetricalMatrix) {
FI->Type_FormDof = FI->Type_FormEqu ;
......
......@@ -294,10 +294,17 @@ void F_dhdb_Vinch(F_ARG) ; // NOT USED FOR NOW (26/06/2016)
void F_dbdh_Vinch(F_ARG) ; // NOT USED FOR NOW (26/06/2016)
// kj+++
void F_Update_Jk (F_ARG) ; // NOT USED FOR NOW (26/06/2016)
void F_Update_Jk_sd (F_ARG) ; // NOT USED FOR NOW (26/06/2016)
void F_Update_Cell_K (F_ARG) ;
//Usefull Mathematical functions:
double Mul_VecVec_K(const double *v1, const double *v2);
void Mul_TensorVec_K(const double *M, const double *v, double *Mv, const int transpose_M);
void Mul_TensorSymTensorSym_K(double *A, double *B, double *C);
void Mul_TensorNonSymTensorNonSym_K(double *A, double *B, double *C);
void Mul_TensorNonSymTensorSym_K(double *A, double *B, double *C);
void Mul_TensorSymTensorNonSym_K(double *A, double *B, double *C);
void Inv_Tensor3x3_K (double *T, double *invT);
void Inv_TensorSym3x3_K (double *T, double *invT);
//Anhysteretic curve Characteristics:
double Lang(double nhr, double Ja, double ha);
double dLang(double nhr, double Ja, double ha);
double LangOverx(double nhr, double Ja, double ha);
......@@ -309,7 +316,6 @@ double dJanhy(double nhr,double Js, double alpha);
double Xanhy(double nhr,double Js, double alpha);
double dXanhy(double nhr,double Js, double alpha);
double IJanhy(double nhr, double Js, double alpha);
double Xanhy(double nhr,double Js, double alpha);
double InvJanhy(double nJ, double Js, double alpha);
double dInvJanhy(double nJ, double Js, double alpha) ;
......@@ -318,49 +324,91 @@ double dJanhy(double nJ, double Ja, double ha, double Jb, double hb) ;
double Xanhy(double nJ, double Ja, double ha, double Jb, double hb) ;
double dXanhy(double nJ, double Ja, double ha, double Jb, double hb) ;
double IJanhy(double nJ, double Ja, double ha, double Jb, double hb) ;
double Xanhy(double nJ, double Ja, double ha, double Jb, double hb) ;
double InvJanhy(double nJ, double Ja, double ha, double Jb, double hb) ;
double dInvJanhy_hr(double nhr, double Ja, double ha, double Jb, double hb);
double u_hr(double nhr, double Ja, double ha, double Jb, double hb) ;
double u_J(double nJ, double Js, double alpha);
double fct_omega(const double h[3], double Jk[3], const double Jkp[3], const double chi,
void Vector_Find_Jk_K (const double hrk[3],
const double Ja, const double ha, const double Jb, const double hb,
double Jk[3]);
void Vector_Find_hrk_K(const double Jk[3],
const double Ja, const double ha, const double Jb, const double hb,
double hrk[3]);
void Tensor_dJkdhrk_K(const double hr[3],
const double Ja, const double ha, const double Jb, const double hb,
double mutg[6]);
//Pseudo-Potential Functional Characteristics:
double fct_omega(const double h[3], const double Jk[3], const double Jkp[3], const double chi,
const double Ja, const double ha, const double Jb, const double hb);
void fct_d_omega (const double h[3], double Jk[3], const double Jkp[3], const double chi,
void fct_d_omega (const double h[3], const double Jk[3], const double Jkp[3], const double chi,
const double Ja, const double ha, const double Jb, const double hb,
double *d_omega);
void fct_dd_omega(const double h[3], const double Jk[3], const double Jkp[3], const double chi,
const double Ja, const double ha, const double Jb, const double hb,
double *ddfdJ2);
void fct_dd_omega_Num(const double h[3], const double Jk[3], const double Jkp[3], const double chi,
const double Ja, const double ha, const double Jb, const double hb,
double *ddfdJ2);
//void FullDiff_hi(double x, double chi, double ex[3]);
//double FullDiff_ff (double y, void *params);
//Usefull Functions for the Full Differential Approach:
void FullDiff_hi(double x, double chi, double ex[3]);
void FullDiff_xup(double x, double chi, double h[3], double xup[3]);
double FullDiff_ff_new (double y, void *params);
double FullDiff_ff (double y, void *params);
//Energy-Based Model - Vector Update:
void Vector_Update_Jk_K(const double h[3], double Jk[3], const double Jkp[3], const double chi,
const double Ja, const double ha, const double Jb, const double hb);
void Vector_Update_hr_K(const double h[3], double hr[3], const double hrp[3], const double chi,
const double Ja, const double ha, const double Jb, const double hb);
void Vector_Update_Simple_hr_K (const double h[3], double hr[3], const double hrp[3], const double chi) ;
void Vector_b_Vinch_K (const double h[3], double *Jk_all,
const double *Jkp_all, struct FunctionActive *D,double b[3] ) ;
void Vector_h_Vinch_K (const double b[3], double bc[3], double *Jk_all,
const double *Jkp_all, struct FunctionActive *D, double h[3] );
void Tensor_dbdh_Num(const double h[3], double *xk_all, const double *xkp_all,
struct FunctionActive *D,double *dbdh);
void Tensor_dhdb_Good_BFGS(const double dx[3],const double df[3],double *dhdb);
void Tensor_dbdh_Vinch_K ( const double h[3], double *Jk_all,
const double *Jkp_all, struct FunctionActive *D, double *dbdh);
void Tensor_dJkdh_Vinch_K(const double h[3], const double Jk[3], const double Jkp[3], const double chi,
//Energy-Based Model - Tensor Construction:
void Tensor_dJkdh_Var(const double h[3], const double Jk[3], const double Jkp[3], const double chi,
const double Ja, const double ha, const double Jb, const double hb,
double *dJkdh);
void Tensor_dJkdh_Var_Num(const double h[3], const double Jk[3], const double Jkp[3], const double chi,
const double Ja, const double ha, const double Jb, const double hb,
double *dJkdh);
void Tensor_dJkdh_Diff_K( const double h[3], const double hrk[3], const double hrkp[3], const double chi,
const double Ja, const double ha, const double Jb, const double hb,
double *dJkdh);
void Tensor_dhrkdh_Diff_ana(const double h[3], const double hrk[3], const double hrkp[3], const double chi,
const double Ja, const double ha, const double Jb, const double hb,
const double dJkdhrk[6],
double *dhrkdh);
void Tensor_dhrkdh_Simple_ana(const double h[3], const double hrkp[3], const double chi,
const double Ja, const double ha, const double Jb, const double hb,
double *dhrkdh);
void Tensor_dhrkdh_Num(const double h[3], const double xkp[3], const double chi,
const double Ja, const double ha, const double Jb, const double hb,
double *dhrkdh);
void Tensor_dhrkdh_Simple_Num(const double h[3], const double xkp[3], const double chi,
double *dhrkdh); //NOT USE FOR NOW
void Tensor_dJkdh_Diff_K_old( const double h[3], const double hrk[3], const double hrkp[3], const double chi,
const double Ja, const double ha, const double Jb, const double hb,
double *dJkdh); //NOT USE FOR NOW
void Mul_TensorVec_K(const double *M, const double *v, double *Mv, const int transpose_M);
void Mul_TensorSymTensorSym_K(double *A, double *B, double *C);
double Mul_VecVec_K(const double *v1, const double *v2);
void Inv_Tensor3x3_K (double *T, double *invT);
void Inv_TensorSym3x3_K (double *T, double *invT);
void Tensor_dbdh_Vinch_K ( const double h[3], const double *Jk_all,
const double *Jkp_all, struct FunctionActive *D, double *dbdh);
void Tensor_dbdh_Num(const double h[3], double *xk_all, const double *xkp_all,
struct FunctionActive *D,double *dbdh);
void Tensor_dhdb_Good_BFGS(const double dx[3],const double df[3],double *dhdb);
//Energy-Based Model - GetDP Functions:
void F_Update_Cell_K (F_ARG) ;
void F_b_Vinch_K(F_ARG);
void F_hr_Vinch_K(F_ARG);
void F_Jr_Vinch_K(F_ARG);
void F_h_Vinch_K(F_ARG);
void F_dbdh_Vinch_K(F_ARG);
void F_dhdb_Vinch_K(F_ARG);
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment