Changeset 4765
- Timestamp:
- 07/22/10 15:09:02 (15 years ago)
- Location:
- issm/trunk/src/c
- Files:
-
- 2 deleted
- 17 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/EnumDefinitions/EnumAsString.cpp
r4739 r4765 62 62 case SurfaceSlopeXAnalysisEnum : return "SurfaceSlopeXAnalysis"; 63 63 case SurfaceSlopeYAnalysisEnum : return "SurfaceSlopeYAnalysis"; 64 case Balancedthickness2SolutionEnum : return "Balancedthickness2Solution";65 case Balancedthickness2AnalysisEnum : return "Balancedthickness2Analysis";66 64 case BalancedthicknessSolutionEnum : return "BalancedthicknessSolution"; 67 65 case BalancedthicknessAnalysisEnum : return "BalancedthicknessAnalysis"; … … 71 69 case PrognosticAnalysisEnum : return "PrognosticAnalysis"; 72 70 case MeltingAnalysisEnum : return "MeltingAnalysis"; 73 case Mesh2gridAnalysisEnum : return "Mesh2gridAnalysis";74 71 case ParametersSolutionEnum : return "ParametersSolution"; 75 72 case ParametersAnalysisEnum : return "ParametersAnalysis"; -
issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h
r4739 r4765 66 66 SurfaceSlopeYAnalysisEnum, 67 67 //prognostic 68 Balancedthickness2SolutionEnum,69 Balancedthickness2AnalysisEnum,70 68 BalancedthicknessSolutionEnum, 71 69 BalancedthicknessAnalysisEnum, … … 76 74 //melting 77 75 MeltingAnalysisEnum, 78 //mesh2grid79 Mesh2gridAnalysisEnum,80 76 //parameters 81 77 ParametersSolutionEnum, -
issm/trunk/src/c/EnumDefinitions/StringAsEnum.cpp
r4739 r4765 60 60 else if (strcmp(name,"SurfaceSlopeXAnalysis")==0) return SurfaceSlopeXAnalysisEnum; 61 61 else if (strcmp(name,"SurfaceSlopeYAnalysis")==0) return SurfaceSlopeYAnalysisEnum; 62 else if (strcmp(name,"Balancedthickness2Solution")==0) return Balancedthickness2SolutionEnum;63 else if (strcmp(name,"Balancedthickness2Analysis")==0) return Balancedthickness2AnalysisEnum;64 62 else if (strcmp(name,"BalancedthicknessSolution")==0) return BalancedthicknessSolutionEnum; 65 63 else if (strcmp(name,"BalancedthicknessAnalysis")==0) return BalancedthicknessAnalysisEnum; … … 69 67 else if (strcmp(name,"PrognosticAnalysis")==0) return PrognosticAnalysisEnum; 70 68 else if (strcmp(name,"MeltingAnalysis")==0) return MeltingAnalysisEnum; 71 else if (strcmp(name,"Mesh2gridAnalysis")==0) return Mesh2gridAnalysisEnum;72 69 else if (strcmp(name,"ParametersSolution")==0) return ParametersSolutionEnum; 73 70 else if (strcmp(name,"ParametersAnalysis")==0) return ParametersAnalysisEnum; -
issm/trunk/src/c/Makefile.am
r4739 r4765 394 394 ./modules/ModelProcessorx/Balancedthickness/CreateConstraintsBalancedthickness.cpp\ 395 395 ./modules/ModelProcessorx/Balancedthickness/CreateLoadsBalancedthickness.cpp\ 396 ./modules/ModelProcessorx/Balancedthickness2/UpdateElementsBalancedthickness2.cpp\397 ./modules/ModelProcessorx/Balancedthickness2/CreateNodesBalancedthickness2.cpp\398 ./modules/ModelProcessorx/Balancedthickness2/CreateConstraintsBalancedthickness2.cpp\399 ./modules/ModelProcessorx/Balancedthickness2/CreateLoadsBalancedthickness2.cpp\400 396 ./modules/ModelProcessorx/Balancedvelocities/UpdateElementsBalancedvelocities.cpp\ 401 397 ./modules/ModelProcessorx/Balancedvelocities/CreateNodesBalancedvelocities.cpp\ … … 950 946 ./modules/ModelProcessorx/Balancedthickness/CreateConstraintsBalancedthickness.cpp\ 951 947 ./modules/ModelProcessorx/Balancedthickness/CreateLoadsBalancedthickness.cpp\ 952 ./modules/ModelProcessorx/Balancedthickness2/UpdateElementsBalancedthickness2.cpp\953 ./modules/ModelProcessorx/Balancedthickness2/CreateNodesBalancedthickness2.cpp\954 ./modules/ModelProcessorx/Balancedthickness2/CreateConstraintsBalancedthickness2.cpp\955 ./modules/ModelProcessorx/Balancedthickness2/CreateLoadsBalancedthickness2.cpp\956 948 ./modules/ModelProcessorx/Balancedvelocities/UpdateElementsBalancedvelocities.cpp\ 957 949 ./modules/ModelProcessorx/Balancedvelocities/CreateNodesBalancedvelocities.cpp\ … … 1129 1121 ./solutions/prognostic_core.cpp\ 1130 1122 ./solutions/balancedthickness_core.cpp\ 1131 ./solutions/balancedthickness2_core.cpp\1132 1123 ./solutions/balancedvelocities_core.cpp\ 1133 1124 ./solutions/surfaceslope_core.cpp\ -
issm/trunk/src/c/modules/ModelProcessorx/Balancedthickness/CreateConstraintsBalancedthickness.cpp
r4236 r4765 26 26 if(!constraints) constraints = new Constraints(ConstraintsEnum); 27 27 28 /* Fetch data:*/29 IoModelFetchData(&iomodel->spcthickness,NULL,NULL,iomodel_handle,"spcthickness");28 /*Do not add constraints in DG*/ 29 if(!iomodel->prognostic_DG){ 30 30 31 /*Initialize counter*/32 count=0;31 /*Fetch data: */ 32 IoModelFetchData(&iomodel->spcthickness,NULL,NULL,iomodel_handle,"spcthickness"); 33 33 34 /*Create spcs from x,y,z, as well as the spc values on those spcs: */ 35 for (i=0;i<iomodel->numberofvertices;i++){ 36 if(iomodel->my_vertices[i]){ 37 38 if ((int)iomodel->spcthickness[2*i]){ 39 40 constraints->AddObject(new Spc(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,1, 41 *(iomodel->spcthickness+2*i+1),BalancedthicknessAnalysisEnum));//we enforce first translation degree of freedom, for temperature 42 count++; 34 /*Initialize counter*/ 35 count=0; 36 37 /*Create spcs from x,y,z, as well as the spc values on those spcs: */ 38 for (i=0;i<iomodel->numberofvertices;i++){ 39 if(iomodel->my_vertices[i]){ 40 41 if ((int)iomodel->spcthickness[2*i]){ 42 43 constraints->AddObject(new Spc(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,1, 44 *(iomodel->spcthickness+2*i+1),BalancedthicknessAnalysisEnum));//we enforce first translation degree of freedom, for temperature 45 count++; 46 } 43 47 } 44 48 } 49 50 /*Free data: */ 51 xfree((void**)&iomodel->spcthickness); 45 52 } 46 47 /*Free data: */48 xfree((void**)&iomodel->spcthickness);49 53 50 54 /*Assign output pointer: */ -
issm/trunk/src/c/modules/ModelProcessorx/Balancedthickness/CreateLoadsBalancedthickness.cpp
r4236 r4765 13 13 void CreateLoadsBalancedthickness(Loads** ploads, IoModel* iomodel,ConstDataHandle iomodel_handle){ 14 14 15 /*DataSet*/ 15 /*Intermediary*/ 16 int i; 17 int element; 18 19 /*Output*/ 16 20 Loads* loads = NULL; 17 21 … … 22 26 if(!loads) loads = new Loads(LoadsEnum); 23 27 28 /*Loads only in DG*/ 29 if (iomodel->prognostic_DG){ 30 31 /*Get edges and elements*/ 32 IoModelFetchData(&iomodel->edges,&iomodel->numberofedges,NULL,iomodel_handle,"edges"); 33 IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,"elements"); 34 IoModelFetchData(&iomodel->thickness,NULL,NULL,iomodel_handle,"thickness"); 35 36 /*First load data:*/ 37 for (i=0;i<iomodel->numberofedges;i++){ 38 39 /*Get left and right elements*/ 40 element=(int)iomodel->edges[4*i+2]-1; //edges are [node1 node2 elem1 elem2] 41 42 /*Now, if this element is not in the partition, pass: */ 43 if(!iomodel->my_elements[element]) continue; 44 45 /* Add load */ 46 loads->AddObject(new Numericalflux(iomodel->loadcounter+i+1,i,iomodel,BalancedthicknessAnalysisEnum)); 47 } 48 49 /*Free data: */ 50 xfree((void**)&iomodel->edges); 51 xfree((void**)&iomodel->elements); 52 xfree((void**)&iomodel->thickness); 53 } 54 24 55 /*Assign output pointer: */ 25 56 *ploads=loads; -
issm/trunk/src/c/modules/ModelProcessorx/Balancedthickness/CreateNodesBalancedthickness.cpp
r4236 r4765 16 16 17 17 /*Intermediary*/ 18 int i; 18 int i,j; 19 int node_id; 20 int vertex_id; 21 int io_index; 19 22 bool continuous_galerkin=true; 20 23 … … 29 32 30 33 /*Continuous Galerkin partition of nodes: */ 34 if(iomodel->prognostic_DG) continuous_galerkin=false; 31 35 NodesPartitioning(&iomodel->my_nodes,iomodel->my_elements, iomodel->my_vertices, iomodel->my_bordervertices, iomodel, iomodel_handle,continuous_galerkin); 36 37 /*Check in 3d*/ 38 if(iomodel->prognostic_DG && iomodel->dim==3) ISSMERROR("DG 3d not implemented yet"); 32 39 33 40 /*First fetch data: */ … … 36 43 IoModelFetchData(&iomodel->uppernodes,NULL,NULL,iomodel_handle,"uppergrids"); 37 44 } 45 IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,"elements"); 38 46 IoModelFetchData(&iomodel->gridonbed,NULL,NULL,iomodel_handle,"gridonbed"); 39 47 IoModelFetchData(&iomodel->gridonsurface,NULL,NULL,iomodel_handle,"gridonsurface"); … … 41 49 IoModelFetchData(&iomodel->gridoniceshelf,NULL,NULL,iomodel_handle,"gridoniceshelf"); 42 50 43 for (i=0;i<iomodel->numberofvertices;i++){51 if(continuous_galerkin){ 44 52 45 if(iomodel->my_vertices[i]){ 53 /*Build Nodes dataset (Continuous Galerkin)*/ 54 for (i=0;i<iomodel->numberofvertices;i++){ 46 55 47 /*Add node to nodes dataset: */ 48 nodes->AddObject(new Node(iomodel->nodecounter+i+1,i,i+1,i,iomodel,BalancedthicknessAnalysisEnum)); 56 if(iomodel->my_vertices[i]){ 49 57 58 /*Add node to nodes dataset: */ 59 nodes->AddObject(new Node(iomodel->nodecounter+i+1,i,i+1,i,iomodel,BalancedthicknessAnalysisEnum)); 60 61 } 62 } 63 } 64 else{ 65 66 /*Build Nodes dataset -> 3 for each element (Discontinuous Galerkin)*/ 67 for (i=0;i<iomodel->numberofelements;i++){ 68 for (j=0;j<3;j++){ 69 70 if(iomodel->my_nodes[3*i+j]){ 71 72 //Get index of the vertex on which the current node is located 73 vertex_id=(int)*(iomodel->elements+3*i+j); //(Matlab indexing) 74 io_index=vertex_id-1; //(C indexing) 75 ISSMASSERT(vertex_id>0 && vertex_id<=iomodel->numberofvertices); 76 77 //Compute Node id 78 node_id=iomodel->nodecounter+3*i+j+1; 79 80 /*Add node to nodes dataset: */ 81 nodes->AddObject(new Node(node_id,node_id-1,vertex_id,io_index,iomodel,BalancedthicknessAnalysisEnum)); 82 83 } 84 } 50 85 } 51 86 } 52 87 53 88 /*Clean fetched data: */ 89 xfree((void**)&iomodel->elements); 54 90 xfree((void**)&iomodel->deadgrids); 55 91 xfree((void**)&iomodel->gridonbed); -
issm/trunk/src/c/modules/ModelProcessorx/CreateDataSets.cpp
r4739 r4765 99 99 break; 100 100 101 case Balancedthickness2AnalysisEnum:102 CreateNodesBalancedthickness2(pnodes, iomodel,iomodel_handle);103 CreateConstraintsBalancedthickness2(pconstraints,iomodel,iomodel_handle);104 CreateLoadsBalancedthickness2(ploads,iomodel,iomodel_handle);105 UpdateElementsBalancedthickness2(elements,iomodel,iomodel_handle,analysis_counter,analysis_type);106 break;107 101 case BalancedvelocitiesAnalysisEnum: 108 102 CreateNodesBalancedvelocities(pnodes, iomodel,iomodel_handle); -
issm/trunk/src/c/modules/ModelProcessorx/ModelProcessorx.h
r4739 r4765 84 84 void UpdateElementsBalancedthickness(Elements* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type); 85 85 86 void CreateNodesBalancedthickness2(Nodes** pnodes,IoModel* iomodel_handle,ConstDataHandle iomodel_handle);87 void CreateConstraintsBalancedthickness2(Constraints** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);88 void CreateLoadsBalancedthickness2(Loads** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);89 void UpdateElementsBalancedthickness2(Elements* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type);90 91 86 /*balancedvelocities:*/ 92 87 void CreateNodesBalancedvelocities(Nodes** pnodes,IoModel* iomodel_handle,ConstDataHandle iomodel_handle); -
issm/trunk/src/c/objects/Elements/Penta.cpp
r4739 r4765 394 394 else if (analysis_type==BalancedthicknessAnalysisEnum){ 395 395 InputUpdateFromSolutionBalancedthickness( solution); 396 }397 else if (analysis_type==Balancedthickness2AnalysisEnum){398 InputUpdateFromSolutionBalancedthickness2( solution);399 396 } 400 397 else if (analysis_type==BalancedvelocitiesAnalysisEnum){ … … 2646 2643 /*Add thickness as inputs to the tria element: */ 2647 2644 this->inputs->AddInput(new PentaVertexInput(ThicknessEnum,values)); 2648 }2649 /*}}}*/2650 /*FUNCTION Penta::InputUpdateFromSolutionBalancedthickness2 {{{1*/2651 void Penta::InputUpdateFromSolutionBalancedthickness2(double* solution){2652 ISSMERROR(" not supported yet!");2653 2645 } 2654 2646 /*}}}*/ -
issm/trunk/src/c/objects/Elements/Penta.h
r4739 r4765 175 175 void InputUpdateFromSolutionAdjointStokes( double* solutiong); 176 176 void InputUpdateFromSolutionBalancedthickness( double* solutiong); 177 void InputUpdateFromSolutionBalancedthickness2( double* solutiong);178 177 void InputUpdateFromSolutionBalancedvelocities( double* solutiong); 179 178 void InputUpdateFromSolutionDiagnosticHoriz( double* solutiong); -
issm/trunk/src/c/objects/Elements/Tria.cpp
r4753 r4765 394 394 InputUpdateFromSolutionBalancedthickness( solution); 395 395 } 396 else if (analysis_type==Balancedthickness2AnalysisEnum){397 InputUpdateFromSolutionBalancedthickness2( solution);398 }399 396 else if (analysis_type==BalancedvelocitiesAnalysisEnum){ 400 397 InputUpdateFromSolutionBalancedvelocities( solution); … … 688 685 } 689 686 else if (analysis_type==BalancedthicknessAnalysisEnum){ 690 CreateKMatrixBalancedthickness( Kgg); 691 } 692 else if (analysis_type==Balancedthickness2AnalysisEnum){ 693 CreateKMatrixBalancedthickness2( Kgg); 687 if (GetElementType()==P1Enum) 688 CreateKMatrixBalancedthickness_CG( Kgg); 689 else if (GetElementType()==P1DGEnum) 690 CreateKMatrixBalancedthickness_DG( Kgg); 691 else 692 ISSMERROR("Element type %s not supported yet",EnumAsString(GetElementType())); 694 693 } 695 694 else if (analysis_type==BalancedvelocitiesAnalysisEnum){ … … 737 736 } 738 737 else if (analysis_type==BalancedthicknessAnalysisEnum){ 739 CreatePVectorBalancedthickness( pg); 740 } 741 else if (analysis_type==Balancedthickness2AnalysisEnum){ 742 CreatePVectorBalancedthickness2( pg); 738 if (GetElementType()==P1Enum) 739 CreatePVectorBalancedthickness_CG( pg); 740 else if (GetElementType()==P1DGEnum) 741 CreatePVectorBalancedthickness_DG( pg); 742 else 743 ISSMERROR("Element type %s not supported yet",EnumAsString(GetElementType())); 743 744 } 744 745 else if (analysis_type==BalancedvelocitiesAnalysisEnum){ … … 2264 2265 2265 2266 /*Recover element type*/ 2266 if ((analysis_type==PrognosticAnalysisEnum && iomodel->prognostic_DG) || analysis_type==Balancedthickness2AnalysisEnum){2267 if ((analysis_type==PrognosticAnalysisEnum || analysis_type==BalancedthicknessAnalysisEnum) && iomodel->prognostic_DG){ 2267 2268 2268 2269 /*P1 Discontinuous Galerkin*/ … … 2473 2474 2474 2475 /*Tria specific routines: */ 2475 /*FUNCTION Tria::CreateKMatrixBalancedthickness {{{1*/2476 void Tria::CreateKMatrixBalancedthickness (Mat Kgg){2476 /*FUNCTION Tria::CreateKMatrixBalancedthickness_CG {{{1*/ 2477 void Tria::CreateKMatrixBalancedthickness_CG(Mat Kgg){ 2477 2478 2478 2479 /* local declarations */ … … 2629 2630 } 2630 2631 /*}}}*/ 2631 /*FUNCTION Tria::CreateKMatrixBalancedthickness 2{{{1*/2632 void Tria::CreateKMatrixBalancedthickness 2(Mat Kgg){2632 /*FUNCTION Tria::CreateKMatrixBalancedthickness_DG {{{1*/ 2633 void Tria::CreateKMatrixBalancedthickness_DG(Mat Kgg){ 2633 2634 2634 2635 /* local declarations */ … … 3860 3861 } 3861 3862 /*}}}*/ 3862 /*FUNCTION Tria::CreatePVectorBalancedthickness 3863 void Tria::CreatePVectorBalancedthickness (Vec pg ){3863 /*FUNCTION Tria::CreatePVectorBalancedthickness_CG{{{1*/ 3864 void Tria::CreatePVectorBalancedthickness_CG(Vec pg ){ 3864 3865 3865 3866 … … 3934 3935 } 3935 3936 /*}}}*/ 3936 /*FUNCTION Tria::CreatePVectorBalancedthickness 2{{{1*/3937 void Tria::CreatePVectorBalancedthickness 2(Vec pg){3937 /*FUNCTION Tria::CreatePVectorBalancedthickness_DG {{{1*/ 3938 void Tria::CreatePVectorBalancedthickness_DG(Vec pg){ 3938 3939 3939 3940 … … 6028 6029 double values[numdof]; 6029 6030 double thickness[numvertices]; 6030 6031 int dummy;6032 6033 /*Get dof list: */6034 GetDofList(&doflist[0],&dummy);6035 6036 /*Use the dof list to index into the solution vector: */6037 for(i=0;i<numdof;i++){6038 values[i]=solution[doflist[i]];6039 }6040 6041 /*Add thickness as inputs to the tria element: */6042 this->inputs->AddInput(new TriaVertexInput(ThicknessEnum,values));6043 }6044 /*}}}*/6045 /*FUNCTION Tria::InputUpdateFromSolutionBalancedthickness2 {{{1*/6046 void Tria::InputUpdateFromSolutionBalancedthickness2(double* solution){6047 int i;6048 6049 const int numvertices=3;6050 const int numdofpervertex=1;6051 const int numdof=numdofpervertex*numvertices;6052 6053 int doflist[numdof];6054 double values[numdof];6055 6031 6056 6032 int dummy; -
issm/trunk/src/c/objects/Elements/Tria.h
r4753 r4765 111 111 /*}}}*/ 112 112 /*Tria specific routines:{{{1*/ 113 void CreateKMatrixBalancedthickness (Mat Kgg);114 void CreateKMatrixBalancedthickness 2(Mat Kgg);113 void CreateKMatrixBalancedthickness_DG(Mat Kgg); 114 void CreateKMatrixBalancedthickness_CG(Mat Kgg); 115 115 void CreateKMatrixBalancedvelocities(Mat Kgg); 116 116 void CreateKMatrixDiagnosticHoriz(Mat Kgg); … … 123 123 void CreateKMatrixSlope(Mat Kgg); 124 124 void CreateKMatrixThermal(Mat Kgg); 125 void CreatePVectorBalancedthickness (Vec pg);126 void CreatePVectorBalancedthickness 2(Vec pg);125 void CreatePVectorBalancedthickness_DG(Vec pg); 126 void CreatePVectorBalancedthickness_CG(Vec pg); 127 127 void CreatePVectorBalancedvelocities(Vec pg); 128 128 void CreatePVectorDiagnosticBaseVert(Vec pg); … … 169 169 void InputUpdateFromSolutionPrognostic( double* solution); 170 170 void InputUpdateFromSolutionBalancedthickness( double* solution); 171 void InputUpdateFromSolutionBalancedthickness2( double* solution);172 171 void InputUpdateFromSolutionBalancedvelocities( double* solution); 173 172 bool IsInput(int name); -
issm/trunk/src/c/objects/Loads/Numericalflux.cpp
r4739 r4765 415 415 parameters->FindParam(&dt,DtEnum); 416 416 } 417 else if (analysis_type==Balancedthickness 2AnalysisEnum){417 else if (analysis_type==BalancedthicknessAnalysisEnum){ 418 418 /*No transient term is involved*/ 419 419 dt=1; … … 447 447 448 448 UdotN=vx*normal[0]+vy*normal[1]; 449 if (fabs(UdotN)<1.0e-9 && analysis_type==Balancedthickness 2AnalysisEnum) printf("Edge number %i has a flux very small (u.n = %g ), which could lead to unaccurate results\n",id,UdotN);449 if (fabs(UdotN)<1.0e-9 && analysis_type==BalancedthicknessAnalysisEnum) printf("Edge number %i has a flux very small (u.n = %g ), which could lead to unaccurate results\n",id,UdotN); 450 450 451 451 /*Get L and B: */ … … 532 532 parameters->FindParam(&dt,DtEnum); 533 533 } 534 else if (analysis_type==Balancedthickness 2AnalysisEnum){534 else if (analysis_type==BalancedthicknessAnalysisEnum){ 535 535 /*No transient term is involved*/ 536 536 dt=1; … … 659 659 parameters->FindParam(&dt,DtEnum); 660 660 } 661 else if (analysis_type==Balancedthickness 2AnalysisEnum){661 else if (analysis_type==BalancedthicknessAnalysisEnum){ 662 662 /*No transient term is involved*/ 663 663 dt=1; -
issm/trunk/src/c/shared/Dofs/DistributeNumDofs.cpp
r4739 r4765 40 40 numdofs=1; 41 41 } 42 else if (analysis_type==Balancedthickness2AnalysisEnum){43 numdofs=1;44 }45 42 else if (analysis_type==BalancedvelocitiesAnalysisEnum){ 46 43 numdofs=1; -
issm/trunk/src/c/solutions/SolutionConfiguration.cpp
r4739 r4765 76 76 break; 77 77 78 case Balancedthickness2SolutionEnum:79 numanalyses=1;80 analyses=(int*)xmalloc(numanalyses*sizeof(int));81 analyses[0]=Balancedthickness2AnalysisEnum;82 solutioncore=&balancedthickness2_core;83 break;84 85 78 case BalancedvelocitiesSolutionEnum: 86 79 numanalyses=1; -
issm/trunk/src/c/solutions/solutions.h
r4739 r4765 23 23 void prognostic_core(FemModel* femmodel); 24 24 void balancedthickness_core(FemModel* femmodel); 25 void balancedthickness2_core(FemModel* femmodel);26 25 void balancedvelocities_core(FemModel* femmodel); 27 26 void slopecompute_core(FemModel* femmodel);
Note:
See TracChangeset
for help on using the changeset viewer.