Changeset 18930 for issm/trunk-jpl/src/c/analyses/MeltingAnalysis.cpp
- Timestamp:
- 12/04/14 10:34:36 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/analyses/MeltingAnalysis.cpp
r18729 r18930 6 6 7 7 /*Model processing*/ 8 void MeltingAnalysis::CreateConstraints(Constraints* constraints,IoModel* iomodel){/*{{{*/ 9 /*No Constraints*/ 10 }/*}}}*/ 11 void MeltingAnalysis::CreateLoads(Loads* loads, IoModel* iomodel){/*{{{*/ 12 13 /*if 2d: Error*/ 14 if(iomodel->domaintype==Domain2DhorizontalEnum) _error_("2d meshes not supported yet"); 15 16 //create penalties for nodes: no node can have a temperature over the melting point 17 iomodel->FetchData(1,MeshVertexonbaseEnum); 18 CreateSingleNodeToElementConnectivity(iomodel); 19 20 for(int i=0;i<iomodel->numberofvertices;i++){ 21 if(iomodel->my_vertices[i]){ 22 if (reCast<int>(iomodel->Data(MeshVertexonbaseEnum)[i])){ 23 loads->AddObject(new Pengrid(iomodel->loadcounter+i+1,i,iomodel,MeltingAnalysisEnum)); 24 } 25 } 26 } 27 iomodel->DeleteData(1,MeshVertexonbaseEnum); 28 29 }/*}}}*/ 30 void MeltingAnalysis::CreateNodes(Nodes* nodes,IoModel* iomodel){/*{{{*/ 31 32 if(iomodel->domaintype==Domain3DEnum) iomodel->FetchData(2,MeshVertexonbaseEnum,MeshVertexonsurfaceEnum); 33 ::CreateNodes(nodes,iomodel,MeltingAnalysisEnum,P1Enum); 34 iomodel->DeleteData(2,MeshVertexonbaseEnum,MeshVertexonsurfaceEnum); 35 }/*}}}*/ 8 36 int MeltingAnalysis::DofsPerNode(int** doflist,int domaintype,int approximation){/*{{{*/ 9 37 return 1; 10 }/*}}}*/11 void MeltingAnalysis::UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum){/*{{{*/12 38 }/*}}}*/ 13 39 void MeltingAnalysis::UpdateElements(Elements* elements,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/ … … 39 65 iomodel->FetchDataToInput(elements,PressureEnum); 40 66 }/*}}}*/ 41 void MeltingAnalysis::CreateNodes(Nodes* nodes,IoModel* iomodel){/*{{{*/ 42 43 if(iomodel->domaintype==Domain3DEnum) iomodel->FetchData(2,MeshVertexonbaseEnum,MeshVertexonsurfaceEnum); 44 ::CreateNodes(nodes,iomodel,MeltingAnalysisEnum,P1Enum); 45 iomodel->DeleteData(2,MeshVertexonbaseEnum,MeshVertexonsurfaceEnum); 46 }/*}}}*/ 47 void MeltingAnalysis::CreateConstraints(Constraints* constraints,IoModel* iomodel){/*{{{*/ 48 /*No Constraints*/ 49 }/*}}}*/ 50 void MeltingAnalysis::CreateLoads(Loads* loads, IoModel* iomodel){/*{{{*/ 51 52 /*if 2d: Error*/ 53 if(iomodel->domaintype==Domain2DhorizontalEnum) _error_("2d meshes not supported yet"); 54 55 //create penalties for nodes: no node can have a temperature over the melting point 56 iomodel->FetchData(1,MeshVertexonbaseEnum); 57 CreateSingleNodeToElementConnectivity(iomodel); 58 59 for(int i=0;i<iomodel->numberofvertices;i++){ 60 if(iomodel->my_vertices[i]){ 61 if (reCast<int>(iomodel->Data(MeshVertexonbaseEnum)[i])){ 62 loads->AddObject(new Pengrid(iomodel->loadcounter+i+1,i,iomodel,MeltingAnalysisEnum)); 63 } 64 } 65 } 66 iomodel->DeleteData(1,MeshVertexonbaseEnum); 67 67 void MeltingAnalysis::UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum){/*{{{*/ 68 68 }/*}}}*/ 69 69 … … 126 126 return NULL; 127 127 }/*}}}*/ 128 void MeltingAnalysis::GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element){/*{{{*/128 void MeltingAnalysis::GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element){/*{{{*/ 129 129 _error_("not implemented yet"); 130 130 }/*}}}*/ 131 void MeltingAnalysis::GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index){/*{{{*/131 void MeltingAnalysis::GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index){/*{{{*/ 132 132 _error_("Not implemented yet"); 133 133 }/*}}}*/ 134 void MeltingAnalysis::InputUpdateFromSolution(IssmDouble* solution,Element* element){/*{{{*/134 void MeltingAnalysis::InputUpdateFromSolution(IssmDouble* solution,Element* element){/*{{{*/ 135 135 element->InputUpdateFromSolutionOneDof(solution,BasalforcingsGroundediceMeltingRateEnum); 136 136 }/*}}}*/ 137 void MeltingAnalysis::UpdateConstraints(FemModel* femmodel){/*{{{*/137 void MeltingAnalysis::UpdateConstraints(FemModel* femmodel){/*{{{*/ 138 138 /*Default, do nothing*/ 139 139 return;
Note:
See TracChangeset
for help on using the changeset viewer.