[17802] | 1 | Index: ../trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp
|
---|
| 2 | ===================================================================
|
---|
| 3 | --- ../trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp (revision 17354)
|
---|
| 4 | +++ ../trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp (revision 17355)
|
---|
| 5 | @@ -409,7 +409,8 @@
|
---|
| 6 | /*Switch between the different transfer methods cases*/
|
---|
| 7 | switch(transfermethod){
|
---|
| 8 | case 0:
|
---|
| 9 | - /*Just keepping the transfer to zero, should be OK with the initial value of transfer*/
|
---|
| 10 | + /*Just keepping the transfer to zero*/
|
---|
| 11 | + transfer=0.0;
|
---|
| 12 | break;
|
---|
| 13 | case 1:
|
---|
| 14 |
|
---|
| 15 | @@ -455,7 +456,8 @@
|
---|
| 16 | /*Switch between the different transfer methods cases*/
|
---|
| 17 | switch(transfermethod){
|
---|
| 18 | case 0:
|
---|
| 19 | - /*Just keepping the transfer to zero, should be OK with the initial value of transfer*/
|
---|
| 20 | + /*Just keepping the transfer to zero*/
|
---|
| 21 | + transfer=0.0;
|
---|
| 22 | break;
|
---|
| 23 | case 1:
|
---|
| 24 |
|
---|
| 25 | Index: ../trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.cpp
|
---|
| 26 | ===================================================================
|
---|
| 27 | --- ../trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.cpp (revision 17354)
|
---|
| 28 | +++ ../trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.cpp (revision 17355)
|
---|
| 29 | @@ -512,7 +512,8 @@
|
---|
| 30 | /*Switch between the different transfer methods cases*/
|
---|
| 31 | switch(transfermethod){
|
---|
| 32 | case 0:
|
---|
| 33 | - /*Just keepping the transfer to zero, should be OK with the initial value of transfer*/
|
---|
| 34 | + /*Just keepping the transfer to zero*/
|
---|
| 35 | + transfer=0.0;
|
---|
| 36 | break;
|
---|
| 37 | case 1:
|
---|
| 38 |
|
---|
| 39 | @@ -559,7 +560,8 @@
|
---|
| 40 | /*Switch between the different transfer methods cases*/
|
---|
| 41 | switch(transfermethod){
|
---|
| 42 | case 0:
|
---|
| 43 | - /*Just keepping the transfer to zero, should be OK with the initial value of transfer*/
|
---|
| 44 | + /*Just keepping the transfer to zero*/
|
---|
| 45 | + transfer=0.0;
|
---|
| 46 | break;
|
---|
| 47 | case 1:
|
---|
| 48 |
|
---|
| 49 | Index: ../trunk-jpl/src/c/classes/Elements/Tria.cpp
|
---|
| 50 | ===================================================================
|
---|
| 51 | --- ../trunk-jpl/src/c/classes/Elements/Tria.cpp (revision 17354)
|
---|
| 52 | +++ ../trunk-jpl/src/c/classes/Elements/Tria.cpp (revision 17355)
|
---|
| 53 | @@ -4391,45 +4391,6 @@
|
---|
| 54 | this->inputs->AddInput(new TriaInput(HydrologyWaterVyEnum,vy,P1Enum));
|
---|
| 55 | }
|
---|
| 56 | /*}}}*/
|
---|
| 57 | -/*FUNCTION Tria::CreatEPLDomainMassMatrix {{{*/
|
---|
| 58 | -ElementMatrix* Tria::CreateEPLDomainMassMatrix(void){
|
---|
| 59 | -
|
---|
| 60 | - /* Intermediaries */
|
---|
| 61 | - IssmDouble D,Jdet;
|
---|
| 62 | - IssmDouble xyz_list[NUMVERTICES][3];
|
---|
| 63 | -
|
---|
| 64 | - /*Fetch number of nodes and dof for this finite element*/
|
---|
| 65 | - int numnodes = this->NumberofNodes();
|
---|
| 66 | -
|
---|
| 67 | - /*Initialize Element matrix and vectors*/
|
---|
| 68 | - ElementMatrix* Ke = new ElementMatrix(nodes,numnodes,this->parameters,NoneApproximationEnum);
|
---|
| 69 | - IssmDouble* basis = xNew<IssmDouble>(numnodes);
|
---|
| 70 | -
|
---|
| 71 | - /*Retrieve all inputs and parameters*/
|
---|
| 72 | - ::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
|
---|
| 73 | -
|
---|
| 74 | - /* Start looping on the number of gaussian points: */
|
---|
| 75 | - GaussTria* gauss=new GaussTria(2);
|
---|
| 76 | - for(int ig=gauss->begin();ig<gauss->end();ig++){
|
---|
| 77 | -
|
---|
| 78 | - gauss->GaussPoint(ig);
|
---|
| 79 | -
|
---|
| 80 | - GetNodalFunctions(basis,gauss);
|
---|
| 81 | - GetJacobianDeterminant(&Jdet, &xyz_list[0][0],gauss);
|
---|
| 82 | - D=gauss->weight*Jdet;
|
---|
| 83 | -
|
---|
| 84 | - TripleMultiply(basis,1,numnodes,1,
|
---|
| 85 | - &D,1,1,0,
|
---|
| 86 | - basis,1,numnodes,0,
|
---|
| 87 | - &Ke->values[0],1);
|
---|
| 88 | - }
|
---|
| 89 | -
|
---|
| 90 | - /*Clean up and return*/
|
---|
| 91 | - delete gauss;
|
---|
| 92 | - xDelete<IssmDouble>(basis);
|
---|
| 93 | - return Ke;
|
---|
| 94 | -}
|
---|
| 95 | -/*}}}*/
|
---|
| 96 | /*FUNCTION Tria::GetSolutionFromInputsOneDof{{{*/
|
---|
| 97 | void Tria::GetSolutionFromInputsOneDof(Vector<IssmDouble>* solution, int enum_type){
|
---|
| 98 |
|
---|
| 99 | @@ -4587,7 +4548,6 @@
|
---|
| 100 | /*FUNCTION Tria::ComputeEPLThickness{{{*/
|
---|
| 101 | void Tria::ComputeEPLThickness(void){
|
---|
| 102 |
|
---|
| 103 | - int i;
|
---|
| 104 | const int numdof = NDOF1 *NUMVERTICES;
|
---|
| 105 | bool isefficientlayer;
|
---|
| 106 | bool active_element;
|
---|
| 107 | @@ -4595,10 +4555,10 @@
|
---|
| 108 | IssmDouble rho_water,rho_ice;
|
---|
| 109 | IssmDouble gravity,latentheat,EPLgrad2;
|
---|
| 110 | IssmDouble EPL_N,epl_conductivity;
|
---|
| 111 | - IssmDouble activeEpl[numdof],thickness[numdof];
|
---|
| 112 | - IssmDouble eplhead[numdof],old_eplhead[numdof];
|
---|
| 113 | + IssmDouble thickness[numdof];
|
---|
| 114 | + IssmDouble eplhead[numdof];
|
---|
| 115 | IssmDouble epl_slopeX[numdof],epl_slopeY[numdof];
|
---|
| 116 | - IssmDouble preceding_thickness[numdof],old_thickness[numdof];
|
---|
| 117 | + IssmDouble old_thickness[numdof];
|
---|
| 118 | IssmDouble ice_thickness[numdof],bed[numdof];
|
---|
| 119 |
|
---|
| 120 | Input* active_element_input=NULL;
|
---|
| 121 | @@ -4636,7 +4596,6 @@
|
---|
| 122 | }
|
---|
| 123 | }
|
---|
| 124 | else{
|
---|
| 125 | - GetInputListOnVertices(&preceding_thickness[0],HydrologydcEplThicknessEnum);
|
---|
| 126 | for(int i=0;i<numdof;i++){
|
---|
| 127 |
|
---|
| 128 | /*Compute first the effective pressure in the EPL*/
|
---|
| 129 | Index: ../trunk-jpl/src/c/classes/Elements/Tria.h
|
---|
| 130 | ===================================================================
|
---|
| 131 | --- ../trunk-jpl/src/c/classes/Elements/Tria.h (revision 17354)
|
---|
| 132 | +++ ../trunk-jpl/src/c/classes/Elements/Tria.h (revision 17355)
|
---|
| 133 | @@ -251,7 +251,6 @@
|
---|
| 134 | void UpdateConstraintsExtrudeFromBase(void);
|
---|
| 135 | void UpdateConstraintsExtrudeFromTop(void);
|
---|
| 136 |
|
---|
| 137 | - ElementMatrix* CreateEPLDomainMassMatrix(void);
|
---|
| 138 | void CreateHydrologyWaterVelocityInput(void);
|
---|
| 139 | void GetHydrologyDCInefficientHmax(IssmDouble* ph_max, Node* innode);
|
---|
| 140 | void HydrologyEPLGetActive(Vector<IssmDouble>* active_vec);
|
---|
| 141 | Index: ../trunk-jpl/src/c/classes/Elements/Penta.cpp
|
---|
| 142 | ===================================================================
|
---|
| 143 | --- ../trunk-jpl/src/c/classes/Elements/Penta.cpp (revision 17354)
|
---|
| 144 | +++ ../trunk-jpl/src/c/classes/Elements/Penta.cpp (revision 17355)
|
---|
| 145 | @@ -4155,19 +4155,6 @@
|
---|
| 146 | /*}}}*/
|
---|
| 147 | #endif
|
---|
| 148 |
|
---|
| 149 | -/*FUNCTION Penta::CreateEPLDomainMassMatrix {{{*/
|
---|
| 150 | -ElementMatrix* Penta::CreateEPLDomainMassMatrix(void){
|
---|
| 151 | -
|
---|
| 152 | - if (!IsOnBed()) return NULL;
|
---|
| 153 | -
|
---|
| 154 | - Tria* tria=(Tria*)SpawnTria(0); //lower face is 0, upper face is 1.
|
---|
| 155 | - ElementMatrix* Ke=tria->CreateEPLDomainMassMatrix();
|
---|
| 156 | - delete tria->material; delete tria;
|
---|
| 157 | -
|
---|
| 158 | - /*clean up and return*/
|
---|
| 159 | - return Ke;
|
---|
| 160 | -}
|
---|
| 161 | -/*}}}*/
|
---|
| 162 | /*FUNCTION Penta::GetHydrologyDCInefficientHmax{{{*/
|
---|
| 163 | void Penta::GetHydrologyDCInefficientHmax(IssmDouble* ph_max, Node* innode){
|
---|
| 164 |
|
---|
| 165 | Index: ../trunk-jpl/src/c/classes/Elements/Penta.h
|
---|
| 166 | ===================================================================
|
---|
| 167 | --- ../trunk-jpl/src/c/classes/Elements/Penta.h (revision 17354)
|
---|
| 168 | +++ ../trunk-jpl/src/c/classes/Elements/Penta.h (revision 17355)
|
---|
| 169 | @@ -218,9 +218,9 @@
|
---|
| 170 | bool IsIceInElement(void);
|
---|
| 171 | Gauss* NewGauss(void);
|
---|
| 172 | Gauss* NewGauss(int order);
|
---|
| 173 | - Gauss* NewGauss(IssmDouble* xyz_list, IssmDouble* xyz_list_front,int order){_error_("not implemented yet");};
|
---|
| 174 | - Gauss* NewGauss(IssmDouble* xyz_list, IssmDouble* xyz_list_front,int order_horiz,int order_vert);
|
---|
| 175 | - Gauss* NewGauss(int point1,IssmDouble fraction1,IssmDouble fraction2,bool mainlyfloating,int order){_error_("not implemented yet");};
|
---|
| 176 | + Gauss* NewGauss(IssmDouble* xyz_list, IssmDouble* xyz_list_front,int order){_error_("not implemented yet");};
|
---|
| 177 | + Gauss* NewGauss(IssmDouble* xyz_list, IssmDouble* xyz_list_front,int order_horiz,int order_vert);
|
---|
| 178 | + Gauss* NewGauss(int point1,IssmDouble fraction1,IssmDouble fraction2,bool mainlyfloating,int order){_error_("not implemented yet");};
|
---|
| 179 | Gauss* NewGaussBase(int order);
|
---|
| 180 | Gauss* NewGaussLine(int vertex1,int vertex2,int order);
|
---|
| 181 | Gauss* NewGaussTop(int order);
|
---|
| 182 | @@ -240,7 +240,6 @@
|
---|
| 183 | Tria* SpawnTria(int location);
|
---|
| 184 | IssmDouble StabilizationParameter(IssmDouble u, IssmDouble v, IssmDouble w, IssmDouble diameter, IssmDouble kappa);
|
---|
| 185 |
|
---|
| 186 | - ElementMatrix* CreateEPLDomainMassMatrix(void);
|
---|
| 187 | void GetHydrologyDCInefficientHmax(IssmDouble* ph_max, Node* innode);
|
---|
| 188 | void HydrologyEPLGetActive(Vector<IssmDouble>* active_vec);
|
---|
| 189 | void HydrologyEPLGetMask(Vector<IssmDouble>* vec_mask);
|
---|