source: issm/oecreview/Archive/20545-21336/ISSM-20650-20651.diff@ 21337

Last change on this file since 21337 was 21337, checked in by Mathieu Morlighem, 8 years ago

CHG: added Archive/20545-21336

File size: 1.8 KB
RevLine 
[21337]1Index: ../trunk-jpl/src/c/classes/Materials/Matbafl.cpp
2===================================================================
3--- ../trunk-jpl/src/c/classes/Materials/Matbafl.cpp (revision 20650)
4+++ ../trunk-jpl/src/c/classes/Materials/Matbafl.cpp (revision 20651)
5@@ -384,6 +384,47 @@
6 Input* es_input = element->inputs->GetInput(MaterialsRheologyEsbarEnum); _assert_(es_input);
7 Input* ko_input = element->inputs->GetInput(MaterialsRheologyKobarEnum); _assert_(ko_input);
8 ec_input->GetInputValue(&Ec,gauss);
9+ es_input->GetInputValue(&Es,gauss);
10+ ko_input->GetInputValue(&ko,gauss);
11+
12+ /*Compute viscosity*/
13+ *pviscosity=GetViscosityGeneral(ko,Ec,Es,vx,vy,vz,&dvx[0],&dvy[0],&dvz[0]);
14+}/*}}}*/
15+void Matbafl::ViscositySSADerivativeEpsSquare(IssmDouble* pmu_prime,IssmDouble* epsilon){/*{{{*/
16+ _error_("not implemented yet");
17+}/*}}}*/
18+void Matbafl::ResetHooks(){/*{{{*/
19+
20+ this->element=NULL;
21+
22+ /*Get Element type*/
23+ this->helement->reset();
24+
25+}
26+/*}}}*/
27+IssmDouble Matbafl::GetViscosityGeneral(IssmDouble ko,IssmDouble Ec, IssmDouble Es,IssmDouble vx,IssmDouble vy,IssmDouble vz,IssmDouble* dvx,IssmDouble* dvy,IssmDouble* dvz){/*{{{*/
28+
29+ /*Intermediaries*/
30+ IssmDouble viscosity;
31+ IssmDouble vorticity[3],vorticity_norm;
32+ IssmDouble nrsp[3],nrsp_norm;
33+ IssmDouble eps[3][3],epso;
34+ IssmDouble epsprime[3],epsprime_norm;
35+ IssmDouble E,lambdas;
36+
37+ /*Create vorticity vector*/
38+ _assert_(dvx && dvy && dvz);
39+ vorticity[0] = dvz[1] - dvy[2];
40+ vorticity[1] = dvx[2] - dvz[0];
41+ vorticity[2] = dvy[0] - dvx[1];
42+
43+ /*Normalize*/
44+ vorticity_norm = sqrt(vorticity[0]*vorticity[0] + vorticity[1]*vorticity[1] + vorticity[2]*vorticity[2]);
45+ if(vorticity_norm==0){
46+ vorticity[0] = 0.;
47+ vorticity[1] = 0.;
48+ vorticity[2] = 1.;
49+ }
50 else{
51 vorticity[0] =vorticity[0]/vorticity_norm;
52 vorticity[1] =vorticity[1]/vorticity_norm;
Note: See TracBrowser for help on using the repository browser.