Changeset 8803
- Timestamp:
- 07/05/11 16:49:37 (14 years ago)
- Location:
- issm/trunk/src
- Files:
-
- 22 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h
r8798 r8803 375 375 IsMacAyealPattynEnum, 376 376 IsStokesEnum, 377 KffEnum,378 377 LatentHeatEnum, 379 378 LowmemEnum, -
issm/trunk/src/c/Makefile.am
r8798 r8803 273 273 ./objects/Params/StringParam.cpp\ 274 274 ./objects/Params/StringParam.h\ 275 ./objects/NodeSets.cpp\276 ./objects/NodeSets.h\277 275 ./Container/Container.h\ 278 276 ./Container/Constraints.h\ … … 406 404 ./io/WriteDataToDisk.cpp\ 407 405 ./io/IoModelFetchData.cpp\ 408 ./io/WriteNodeSets.cpp\409 406 ./io/WriteParams.cpp\ 410 407 ./io/FetchParams.cpp\ 411 ./io/FetchNodeSets.cpp\412 408 ./io/OptionParse.cpp\ 413 409 ./io/MatlabNArrayToNArray.cpp\ … … 564 560 ./modules/Orthx/Orthx.h\ 565 561 ./modules/Orthx/Orthx.cpp\ 562 ./modules/UpdateSpcsx/UpdateSpcsx.h\ 563 ./modules/UpdateSpcsx/UpdateSpcsx.cpp\ 566 564 ./modules/Gradjx/Gradjx.h\ 567 565 ./modules/Gradjx/Gradjx.cpp\ … … 594 592 ./modules/ComputeStrainRatex/ComputeStrainRatex.h\ 595 593 ./modules/ComputeStrainRatex/ComputeStrainRatex.cpp\ 596 ./modules/BuildNodeSetsx/BuildNodeSetsx.h\597 ./modules/BuildNodeSetsx/BuildNodeSetsx.cpp\598 ./modules/BuildNodeSetsx/PartitionSets.cpp\599 594 ./modules/SpcNodesx/SpcNodesx.h\ 600 595 ./modules/SpcNodesx/SpcNodesx.cpp\ … … 634 629 ./modules/Reducevectorgtofx/Reducevectorgtofx.cpp\ 635 630 ./modules/Reducevectorgtofx/Reducevectorgtofx.h\ 636 ./modules/Reducematrixfromgtofx/Reducematrixfromgtofx.cpp\637 ./modules/Reducematrixfromgtofx/Reducematrixfromgtofx.h\638 ./modules/Reduceloadfromgtofx/Reduceloadfromgtofx.h\639 ./modules/Reduceloadfromgtofx/Reduceloadfromgtofx.cpp\640 631 ./modules/Reduceloadx/Reduceloadx.h\ 641 632 ./modules/Reduceloadx/Reduceloadx.cpp\ … … 670 661 ./modules/Solverx/Solverx.cpp\ 671 662 ./modules/Solverx/Solverx.h\ 663 ./modules/VecMergex/VecMergex.cpp\ 664 ./modules/VecMergex/VecMergex.h\ 672 665 ./modules/Mergesolutionfromftogx/Mergesolutionfromftogx.cpp\ 673 666 ./modules/Mergesolutionfromftogx/Mergesolutionfromftogx.h\ … … 957 950 ./objects/Params/StringParam.cpp\ 958 951 ./objects/Params/StringParam.h\ 959 ./objects/NodeSets.cpp\960 ./objects/NodeSets.h\961 952 ./Container/Container.h\ 962 953 ./Container/Constraints.h\ … … 1088 1079 ./io/WriteDataToDisk.cpp\ 1089 1080 ./io/IoModelFetchData.cpp\ 1090 ./io/WriteNodeSets.cpp\1091 1081 ./io/WriteParams.cpp\ 1092 ./io/FetchNodeSets.cpp\1093 1082 ./io/pfopen.cpp\ 1094 1083 ./io/pfclose.cpp\ … … 1240 1229 ./modules/Orthx/Orthx.h\ 1241 1230 ./modules/Orthx/Orthx.cpp\ 1231 ./modules/UpdateSpcsx/UpdateSpcsx.h\ 1232 ./modules/UpdateSpcsx/UpdateSpcsx.cpp\ 1242 1233 ./modules/Gradjx/Gradjx.h\ 1243 1234 ./modules/Gradjx/Gradjx.cpp\ … … 1270 1261 ./modules/ComputeStrainRatex/ComputeStrainRatex.h\ 1271 1262 ./modules/ComputeStrainRatex/ComputeStrainRatex.cpp\ 1272 ./modules/BuildNodeSetsx/BuildNodeSetsx.h\1273 ./modules/BuildNodeSetsx/BuildNodeSetsx.cpp\1274 ./modules/BuildNodeSetsx/PartitionSets.cpp\1275 1263 ./modules/SpcNodesx/SpcNodesx.h\ 1276 1264 ./modules/SpcNodesx/SpcNodesx.cpp\ … … 1308 1296 ./modules/Reducevectorgtofx/Reducevectorgtofx.cpp\ 1309 1297 ./modules/Reducevectorgtofx/Reducevectorgtofx.h\ 1310 ./modules/Reducematrixfromgtofx/Reducematrixfromgtofx.cpp\1311 ./modules/Reducematrixfromgtofx/Reducematrixfromgtofx.h\1312 ./modules/Reduceloadfromgtofx/Reduceloadfromgtofx.h\1313 ./modules/Reduceloadfromgtofx/Reduceloadfromgtofx.cpp\1314 1298 ./modules/Reduceloadx/Reduceloadx.h\ 1315 1299 ./modules/Reduceloadx/Reduceloadx.cpp\ … … 1339 1323 ./modules/Solverx/Solverx.h\ 1340 1324 ./modules/Solverx/DofTypesToIndexSet.cpp\ 1325 ./modules/VecMergex/VecMergex.cpp\ 1326 ./modules/VecMergex/VecMergex.h\ 1341 1327 ./modules/Scotchx/Scotchx.cpp\ 1342 1328 ./modules/Scotchx/Scotchx.h\ -
issm/trunk/src/c/modules/EnumToStringx/EnumToStringx.cpp
r8799 r8803 111 111 case PentaVertexInputEnum : return "PentaVertexInput"; 112 112 case TriaVertexInputEnum : return "TriaVertexInput"; 113 case TriaVertexForcingEnum : return "TriaVertexForcing"; 114 case PentaVertexForcingEnum : return "PentaVertexForcing"; 113 115 case ControlInputEnum : return "ControlInput"; 114 116 case ParamEnum : return "Param"; -
issm/trunk/src/c/modules/StringToEnumx/StringToEnumx.cpp
r8799 r8803 109 109 else if (strcmp(name,"PentaVertexInput")==0) return PentaVertexInputEnum; 110 110 else if (strcmp(name,"TriaVertexInput")==0) return TriaVertexInputEnum; 111 else if (strcmp(name,"TriaVertexForcing")==0) return TriaVertexForcingEnum; 112 else if (strcmp(name,"PentaVertexForcing")==0) return PentaVertexForcingEnum; 111 113 else if (strcmp(name,"ControlInput")==0) return ControlInputEnum; 112 114 else if (strcmp(name,"Param")==0) return ParamEnum; -
issm/trunk/src/c/solutions/ResetBoundaryConditions.cpp
r6412 r8803 9 9 void ResetBoundaryConditions(FemModel* femmodel, int analysis_type){ 10 10 11 /*variables: */ 11 12 Vec yg=NULL; 12 13 Vec ys=NULL; 13 int analysis_counter; 14 14 Nodes* nodes=NULL; 15 int i; 16 15 17 _printf_(VerboseSolution(),"%s\n"," updating boundary conditions..."); 16 18 … … 18 20 femmodel->SetCurrentConfiguration(analysis_type); 19 21 22 /*recover nodes: */ 23 nodes=femmodel->nodes; 24 25 /*retrieve boundary conditions from element inputs :*/ 20 26 GetSolutionFromInputsx( &yg, femmodel->elements,femmodel->nodes, femmodel->vertices,femmodel->loads, femmodel->materials, femmodel->parameters); 27 Reducevectorgtosx(&ys,yg,femmodel->nodes,femmodel->parameters); 21 28 22 /*For this analysis_type, free existing boundary condition vector: */ 23 analysis_counter=femmodel->analysis_counter; 24 VecFree(&femmodel->m_ys[analysis_counter]); 25 26 //Reduce from g to s set 27 Reducevectorgtosx(&ys,yg,femmodel->m_nodesets[analysis_counter],femmodel->parameters); 28 29 /*Plug into femmodel->m_ys: */ 30 femmodel->m_ys[analysis_counter]=ys; 29 /*update spcs using this new vector of constraints: */ 30 UpdateSpcsx(femmodel->nodes,femmodel->parameters,ys); 31 31 32 32 /*Free ressources:*/ 33 VecFree(&ys); 33 34 VecFree(&yg); 34 35 } -
issm/trunk/src/c/solutions/diagnostic_core.cpp
r7638 r8803 25 25 int solution_type; 26 26 27 27 28 /* recover parameters:*/ 28 29 femmodel->parameters->FindParam(&dim,DimEnum); … … 45 46 if(ishutter) surfaceslope_core(femmodel); 46 47 if(isstokes) bedslope_core(femmodel); 47 48 48 49 if(ishutter){ 49 50 … … 65 66 solver_nonlinear(femmodel,modify_loads); 66 67 } 67 68 68 69 if (ismacayealpattyn && isstokes){ 69 70 -
issm/trunk/src/c/solvers/solver_adjoint_linear.cpp
r7391 r8803 13 13 14 14 /*intermediary: */ 15 Mat K gg = NULL, Kff = NULL, Kfs = NULL;15 Mat Kff = NULL, Kfs = NULL; 16 16 Vec ug = NULL, uf = NULL; 17 Vec pg = NULL, pf = NULL; 18 Vec dg = NULL, df = NULL; 19 bool kffpartitioning = false; 17 Vec pf = NULL; 18 Vec df = NULL; 19 Vec ys = NULL; 20 int analysis_type; 20 21 21 22 /*Recover parameters: */ 22 femmodel->parameters->FindParam(& kffpartitioning,KffEnum);23 femmodel->parameters->FindParam(&analysis_type,AnalysisTypeEnum); 23 24 24 if(kffpartitioning){ 25 SystemMatricesx(NULL,&Kff, &Kfs, NULL,&pf, NULL, &df, NULL,femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters); 26 Reduceloadx(pf, Kfs, femmodel->ys,true); MatFree(&Kfs); //true means spc = 0 27 } 28 else{ 29 SystemMatricesx(&Kgg, NULL, NULL, &pg,NULL, &dg, NULL, NULL,femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters); 30 Reducematrixfromgtofx(&Kff,&Kfs,Kgg,femmodel->nodesets); MatFree(&Kgg); 31 Reduceloadfromgtofx(&pf, pg, Kfs, femmodel->ys, femmodel->nodesets,true);VecFree(&pg); MatFree(&Kfs);//true means spc = 0 32 Reducevectorgtofx(&df, dg, femmodel->nodesets,femmodel->parameters); VecFree(&dg); 33 } 34 25 SystemMatricesx(&Kff, &Kfs, &pf, &df, NULL,femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters); 26 CreateNodalConstraintsx(&ys,femmodel->nodes,analysis_type); 27 Reduceloadx(pf, Kfs, ys,true); MatFree(&Kfs); //true means spc = 0 35 28 Solverx(&uf, Kff, pf, NULL, df, femmodel->parameters); MatFree(&Kff); VecFree(&pf); VecFree(&df); 36 Mergesolutionfromftogx(&ug, uf, femmodel->ys,femmodel->nodesets,true); VecFree(&uf);//true means spc037 InputUpdateFromSolutionx(femmodel->elements,femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,ug); VecFree(&ug); VecFree(&uf); 29 Mergesolutionfromftogx(&ug, uf,ys,femmodel->nodes,femmodel->parameters,true); VecFree(&uf);VecFree(&ys); //true means spc0 30 InputUpdateFromSolutionx(femmodel->elements,femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,ug); VecFree(&ug); VecFree(&uf); 38 31 } -
issm/trunk/src/c/solvers/solver_linear.cpp
r7391 r8803 11 11 12 12 /*intermediary: */ 13 Mat Kgg = NULL, Kff = NULL, Kfs = NULL; 14 Vec ug = NULL, uf = NULL; 15 Vec pg = NULL, pf = NULL; 16 Vec dg = NULL, df = NULL; 17 bool kffpartitioning; 13 Mat Kff = NULL, Kfs = NULL; 14 Vec ug = NULL; 15 Vec uf = NULL; 16 Vec pf = NULL; 17 Vec df = NULL; 18 Vec ys = NULL; 19 int analysis_type; 18 20 19 21 /*Recover parameters: */ 20 femmodel->parameters->FindParam(& kffpartitioning,KffEnum);22 femmodel->parameters->FindParam(&analysis_type,AnalysisTypeEnum); 21 23 22 if(kffpartitioning){ 23 SystemMatricesx(NULL,&Kff, &Kfs, NULL,&pf, NULL, &df, NULL,femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters); 24 Reduceloadx(pf, Kfs, femmodel->ys); MatFree(&Kfs); 25 } 26 else{ 27 SystemMatricesx(&Kgg, NULL, NULL, &pg,NULL, &dg, NULL, NULL,femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters); 28 Reducematrixfromgtofx(&Kff,&Kfs,Kgg,femmodel->nodesets); MatFree(&Kgg); 29 Reduceloadfromgtofx(&pf, pg, Kfs, femmodel->ys, femmodel->nodesets);VecFree(&pg); MatFree(&Kfs); 30 Reducevectorgtofx(&df, dg, femmodel->nodesets,femmodel->parameters); VecFree(&dg); 31 } 32 24 SystemMatricesx(&Kff, &Kfs, &pf, &df, NULL,femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters); 25 CreateNodalConstraintsx(&ys,femmodel->nodes,analysis_type); 26 Reduceloadx(pf, Kfs, ys); MatFree(&Kfs); 33 27 Solverx(&uf, Kff, pf, NULL, df, femmodel->parameters); MatFree(&Kff); VecFree(&pf); VecFree(&df); 34 Mergesolutionfromftogx(&ug, uf, femmodel->ys,femmodel->nodesets);VecFree(&uf);28 Mergesolutionfromftogx(&ug, uf,ys,femmodel->nodes,femmodel->parameters);VecFree(&uf);VecFree(&ys); 35 29 InputUpdateFromSolutionx( femmodel->elements,femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,ug); VecFree(&ug); VecFree(&uf); 36 30 } -
issm/trunk/src/c/solvers/solver_nonlinear.cpp
r8404 r8803 13 13 14 14 /*intermediary: */ 15 Mat Kgg = NULL, Kff = NULL, Kfs = NULL; 16 Vec ug = NULL, uf = NULL, old_ug= NULL, old_uf = NULL; 17 Vec pg = NULL, pf = NULL; 18 Vec dg = NULL, df = NULL; 15 Mat Kff = NULL, Kfs = NULL; 16 Vec ug = NULL, old_ug = NULL; 17 Vec uf = NULL, old_uf = NULL; 18 Vec pf = NULL; 19 Vec df = NULL; 20 Vec ys = NULL; 19 21 20 22 Loads* loads=NULL; … … 25 27 26 28 /*parameters:*/ 27 bool kffpartitioning=false;28 29 int min_mechanical_constraints; 29 30 int max_nonlinear_iterations; 31 int analysis_type; 32 30 33 31 34 /*Recover parameters: */ 32 femmodel->parameters->FindParam(&kffpartitioning,KffEnum);33 35 femmodel->parameters->FindParam(&min_mechanical_constraints,MinMechanicalConstraintsEnum); 34 36 femmodel->parameters->FindParam(&max_nonlinear_iterations,MaxNonlinearIterationsEnum); 35 37 femmodel->parameters->FindParam(&analysis_type,AnalysisTypeEnum); 38 36 39 /*Were loads requested as output? : */ 37 40 if(conserve_loads) loads=(Loads*)femmodel->loads->Copy(); //protect loads from being modified by the solution … … 43 46 /*Start non-linear iteration using input velocity: */ 44 47 GetSolutionFromInputsx(&ug, femmodel->elements, femmodel->nodes, femmodel->vertices, loads, femmodel->materials, femmodel->parameters); 45 Reducevectorgtofx(&uf, ug, femmodel->nodes ets,femmodel->parameters);48 Reducevectorgtofx(&uf, ug, femmodel->nodes,femmodel->parameters); 46 49 47 50 //Update once again the solution to make sure that vx and vxold are similar (for next step in transient or steadystate) … … 54 57 VecFree(&old_uf);old_uf=uf; 55 58 56 if(kffpartitioning){ 57 SystemMatricesx(NULL,&Kff, &Kfs, NULL,&pf, NULL, &df, NULL,femmodel->elements,femmodel->nodes,femmodel->vertices,loads,femmodel->materials,femmodel->parameters); 58 Reduceloadx(pf, Kfs, femmodel->ys); MatFree(&Kfs); 59 } 60 else{ 61 SystemMatricesx(&Kgg, NULL, NULL, &pg,NULL, &dg, NULL, NULL,femmodel->elements,femmodel->nodes,femmodel->vertices,loads,femmodel->materials,femmodel->parameters); 62 Reducematrixfromgtofx(&Kff,&Kfs,Kgg,femmodel->nodesets); MatFree(&Kgg); 63 Reduceloadfromgtofx(&pf, pg, Kfs, femmodel->ys, femmodel->nodesets); VecFree(&pg); MatFree(&Kfs); 64 Reducevectorgtofx(&df, dg, femmodel->nodesets,femmodel->parameters); VecFree(&dg); 65 } 66 59 SystemMatricesx(&Kff, &Kfs, &pf, &df, NULL,femmodel->elements,femmodel->nodes,femmodel->vertices,loads,femmodel->materials,femmodel->parameters); 60 CreateNodalConstraintsx(&ys,femmodel->nodes,analysis_type); 61 Reduceloadx(pf, Kfs, ys); MatFree(&Kfs); 67 62 Solverx(&uf, Kff, pf, old_uf, df, femmodel->parameters); 68 Mergesolutionfromftogx(&ug, uf, femmodel->ys,femmodel->nodesets);63 Mergesolutionfromftogx(&ug, uf,ys,femmodel->nodes,femmodel->parameters);VecFree(&ys); 69 64 InputUpdateFromSolutionx( femmodel->elements,femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,ug); 70 65 … … 95 90 if(conserve_loads) delete loads; 96 91 VecFree(&uf); 97 VecFree(&ug);98 92 VecFree(&old_uf); 99 VecFree(&old_ug);100 93 } -
issm/trunk/src/c/solvers/solver_stokescoupling_nonlinear.cpp
r7391 r8803 13 13 14 14 /*intermediary: */ 15 Mat K gg_horiz = NULL, Kff_horiz = NULL, Kfs_horiz = NULL;16 Vec ug_horiz = NULL, uf_horiz = NULL, old_u g_horiz= NULL, old_uf_horiz = NULL;17 Vec p g_horiz = NULL, pf_horiz = NULL;18 Vec d g_horiz = NULL, df_horiz = NULL;19 Mat K gg_vert = NULL, Kff_vert = NULL, Kfs_vert = NULL;15 Mat Kff_horiz = NULL, Kfs_horiz = NULL; 16 Vec ug_horiz = NULL, uf_horiz = NULL, old_uf_horiz = NULL; 17 Vec pf_horiz = NULL; 18 Vec df_horiz = NULL; 19 Mat Kff_vert = NULL, Kfs_vert = NULL; 20 20 Vec ug_vert = NULL, uf_vert = NULL; 21 Vec pg_vert = NULL, pf_vert = NULL; 22 Vec dg_vert = NULL, df_vert = NULL; 21 Vec pf_vert = NULL; 22 Vec df_vert = NULL; 23 Vec ys = NULL; 23 24 int converged; 24 25 int constraints_converged; … … 27 28 28 29 /*parameters:*/ 29 bool kffpartitioning=false;30 30 int min_mechanical_constraints; 31 31 int max_nonlinear_iterations; 32 int analysis_type; 32 33 33 34 /*Recover parameters: */ 34 femmodel->parameters->FindParam(&kffpartitioning,KffEnum);35 35 femmodel->parameters->FindParam(&min_mechanical_constraints,MinMechanicalConstraintsEnum); 36 36 femmodel->parameters->FindParam(&max_nonlinear_iterations,MaxNonlinearIterationsEnum); … … 42 42 femmodel->SetCurrentConfiguration(DiagnosticHorizAnalysisEnum); 43 43 GetSolutionFromInputsx(&ug_horiz, femmodel->elements, femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters); 44 Reducevectorgtofx(&uf_horiz, ug_horiz, femmodel->nodes ets,femmodel->parameters);44 Reducevectorgtofx(&uf_horiz, ug_horiz, femmodel->nodes,femmodel->parameters); 45 45 46 46 for(;;){ … … 49 49 /*First diagnostic horiz:*/ 50 50 femmodel->SetCurrentConfiguration(DiagnosticHorizAnalysisEnum); 51 51 femmodel->parameters->FindParam(&analysis_type,AnalysisTypeEnum); 52 52 53 //Update once again the solution to make sure that vx and vxold are similar (for next step in transient or steadystate) 53 54 InputUpdateFromSolutionx(femmodel->elements,femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,ug_horiz); 54 55 55 56 //save pointer to old velocity 56 VecFree(&old_ug_horiz);old_ug_horiz=ug_horiz;57 57 VecFree(&old_uf_horiz);old_uf_horiz=uf_horiz; 58 58 59 if(kffpartitioning){ 60 SystemMatricesx(NULL,&Kff_horiz, &Kfs_horiz, NULL,&pf_horiz, NULL, &df_horiz, NULL,femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters); 61 Reduceloadx(pf_horiz, Kfs_horiz, femmodel->ys); MatFree(&Kfs_horiz); 62 } 63 else{ 64 SystemMatricesx(&Kgg_horiz, NULL, NULL, &pg_horiz,NULL, &dg_horiz,NULL,NULL,femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters); 65 Reducematrixfromgtofx(&Kff_horiz,&Kfs_horiz,Kgg_horiz,femmodel->nodesets); MatFree(&Kgg_horiz); 66 Reduceloadfromgtofx(&pf_horiz, pg_horiz, Kfs_horiz, femmodel->ys, femmodel->nodesets); VecFree(&pg_horiz); MatFree(&Kfs_horiz); 67 Reducevectorgtofx(&df_horiz, dg_horiz, femmodel->nodesets,femmodel->parameters); VecFree(&dg_horiz); 68 } 69 59 /*solve: */ 60 SystemMatricesx(&Kff_horiz, &Kfs_horiz, &pf_horiz, &df_horiz, NULL,femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters); 61 CreateNodalConstraintsx(&ys,femmodel->nodes,analysis_type); 62 Reduceloadx(pf_horiz, Kfs_horiz, ys); MatFree(&Kfs_horiz); 70 63 Solverx(&uf_horiz, Kff_horiz, pf_horiz, old_uf_horiz, df_horiz,femmodel->parameters); 71 Mergesolutionfromftogx(&ug_horiz, uf_horiz, femmodel->ys,femmodel->nodesets);64 Mergesolutionfromftogx(&ug_horiz, uf_horiz,ys,femmodel->nodes,femmodel->parameters); VecFree(&ys); 72 65 InputUpdateFromSolutionx( femmodel->elements,femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,ug_horiz); 73 66 … … 76 69 /*Second compute vertical velocity: */ 77 70 femmodel->SetCurrentConfiguration(DiagnosticVertAnalysisEnum); 78 if(kffpartitioning){ 79 SystemMatricesx(NULL,&Kff_vert, &Kfs_vert, NULL,&pf_vert, NULL, &df_vert,NULL,femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters); 80 Reduceloadx(pf_vert, Kfs_vert, femmodel->ys); MatFree(&Kfs_vert); 81 } 82 else{ 83 SystemMatricesx(&Kgg_vert, NULL, NULL, &pg_vert,NULL, &dg_horiz, NULL, NULL,femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters); 84 Reducematrixfromgtofx(&Kff_vert,&Kfs_vert,Kgg_vert,femmodel->nodesets); MatFree(&Kgg_vert); 85 Reduceloadfromgtofx(&pf_vert, pg_vert, Kfs_vert, femmodel->ys, femmodel->nodesets);VecFree(&pg_vert); MatFree(&Kfs_vert); 86 Reducevectorgtofx(&df_vert, dg_vert, femmodel->nodesets,femmodel->parameters); VecFree(&dg_vert); 87 } 88 71 femmodel->parameters->FindParam(&analysis_type,AnalysisTypeEnum); 72 73 /*solve: */ 74 SystemMatricesx(&Kff_vert, &Kfs_vert, &pf_vert, &df_vert,NULL,femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters); 75 CreateNodalConstraintsx(&ys,femmodel->nodes,analysis_type); 76 Reduceloadx(pf_vert, Kfs_vert, ys); MatFree(&Kfs_vert); 89 77 Solverx(&uf_vert, Kff_vert, pf_vert, NULL, df_vert,femmodel->parameters); MatFree(&Kff_vert); VecFree(&pf_vert); VecFree(&df_vert); 90 Mergesolutionfromftogx(&ug_vert, uf_vert, femmodel->ys,femmodel->nodesets);VecFree(&uf_vert);78 Mergesolutionfromftogx(&ug_vert, uf_vert,ys,femmodel->nodes,femmodel->parameters);VecFree(&uf_vert); VecFree(&ys); 91 79 InputUpdateFromSolutionx( femmodel->elements,femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,ug_vert); VecFree(&ug_vert); VecFree(&uf_vert); 92 80 … … 102 90 /*clean-up*/ 103 91 VecFree(&uf_horiz); 104 VecFree(&ug_horiz);105 92 VecFree(&old_uf_horiz); 106 VecFree(& old_ug_horiz);93 VecFree(&ys); 107 94 } -
issm/trunk/src/c/solvers/solver_thermal_nonlinear.cpp
r8404 r8803 14 14 Vec tf=NULL; 15 15 Vec tf_old=NULL; 16 Vec ys=NULL; 16 17 double melting_offset; 17 18 18 19 /*intermediary: */ 19 Mat Kgg=NULL;20 20 Mat Kff=NULL; 21 21 Mat Kfs=NULL; 22 Vec pg=NULL;23 22 Vec pf=NULL; 24 Vec dg=NULL;25 23 Vec df=NULL; 26 24 … … 35 33 int kflag,pflag; 36 34 bool lowmem=0; 37 bool kffpartitioning; 35 int analysis_type; 36 38 37 39 38 /*Recover parameters: */ 40 39 kflag=1; pflag=1; 41 femmodel->parameters->FindParam(&kffpartitioning,KffEnum);42 40 femmodel->parameters->FindParam(&lowmem,LowmemEnum); 43 41 femmodel->parameters->FindParam(&min_thermal_constraints,MinThermalConstraintsEnum); 42 femmodel->parameters->FindParam(&analysis_type,AnalysisTypeEnum); 44 43 45 44 count=1; … … 51 50 for(;;){ 52 51 53 if(kffpartitioning){ 54 SystemMatricesx(NULL,&Kff, &Kfs, NULL,&pf,NULL, &df, &melting_offset,femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters); 55 Reduceloadx(pf, Kfs, femmodel->ys); MatFree(&Kfs); 56 } 57 else{ 58 SystemMatricesx(&Kgg,NULL, NULL, &pg,NULL, &dg, NULL, &melting_offset,femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters); 59 Reducematrixfromgtofx(&Kff,&Kfs,Kgg,femmodel->nodesets); MatFree(&Kgg); 60 Reduceloadfromgtofx(&pf, pg, Kfs, femmodel->ys, femmodel->nodesets);VecFree(&pg); MatFree(&Kfs); 61 Reducevectorgtofx(&df, dg, femmodel->nodesets,femmodel->parameters); VecFree(&dg); 62 } 63 64 VecFree(&tf); 52 SystemMatricesx(&Kff, &Kfs, &pf,&df, &melting_offset,femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters); 53 CreateNodalConstraintsx(&ys,femmodel->nodes,analysis_type); 54 Reduceloadx(pf, Kfs, ys); MatFree(&Kfs); VecFree(&tf); 65 55 Solverx(&tf, Kff, pf,tf_old, df, femmodel->parameters); 66 56 VecFree(&tf_old); VecDuplicatePatch(&tf_old,tf); 67 57 MatFree(&Kff);VecFree(&pf);VecFree(&tg); VecFree(&df); 68 69 Mergesolutionfromftogx(&tg, tf,femmodel->ys,femmodel->nodesets); 58 Mergesolutionfromftogx(&tg, tf,ys,femmodel->nodes,femmodel->parameters); VecFree(&ys); 70 59 InputUpdateFromSolutionx(femmodel->elements,femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,tg); 71 60 … … 90 79 VecFree(&tf); 91 80 VecFree(&tf_old); 81 VecFree(&ys); 92 82 } -
issm/trunk/src/m/classes/version/7.6/model.m
r8734 r8803 351 351 352 352 %solution parameters 353 kff=0;354 353 loadresults=0; 355 354 … … 782 781 md.petscoptions=addoptions(md.petscoptions,DiagnosticVertAnalysisEnum,mumpsoptions); 783 782 784 %solution speed-up785 md.kff=1;786 787 783 %hydrology: from Johnson's 2002 thesis, section 3.5.4 788 784 md.hydro_n=.02; -
issm/trunk/src/m/classes/version/7.7/model.m
r8734 r8803 351 351 352 352 %solution parameters 353 kff=0;354 353 loadresults=0; 355 354 … … 854 853 md.petscoptions=addoptions(md.petscoptions,DiagnosticVertAnalysisEnum,mumpsoptions); 855 854 856 %solution speed-up857 md.kff=1;858 855 859 856 %hydrology: from Johnson's 2002 thesis, section 3.5.4 -
issm/trunk/src/m/model/marshall.m
r8650 r8803 193 193 WriteData(fid,md.shelf_dampening,'Integer','shelf_dampening'); 194 194 WriteData(fid,md.waitonlock,'Scalar','waitonlock'); 195 WriteData(fid,md.kff,'Integer','kff');196 195 197 196 %Thermal parameters -
issm/trunk/src/m/solutions/NewFemModel.m
r8592 r8803 21 21 22 22 %Initialize some fiels with empty celils 23 femmodel.m_nodesets=cell(nummodels,1);24 femmodel.m_ys=cell(nummodels,1);25 23 femmodel.results=struct([]); 26 24 … … 44 42 [femmodel.nodes]=NodesDof(femmodel.nodes,femmodel.parameters); 45 43 46 issmprintf(VerboseMProcessor(),'%s',' create nodal constraints vector');47 femmodel.m_ys{i}=CreateNodalConstraints(femmodel.nodes,analysis_type);48 49 issmprintf(VerboseMProcessor(),'%s',' create node sets');50 femmodel.m_nodesets{i}=BuildNodeSets(femmodel.nodes,analysis_type);51 52 44 issmprintf(VerboseMProcessor(),'%s',' configuring elements and loads'); 53 45 [femmodel.elements,femmodel.loads,femmodel.nodes,femmodel.parameters] = ConfigureObjects( femmodel.elements, femmodel.loads, femmodel.nodes, femmodel.vertices,femmodel.materials,femmodel.parameters); -
issm/trunk/src/m/solutions/ResetBoundaryConditions.m
r6323 r8803 12 12 femmodel=SetCurrentConfiguration(femmodel,analysis_type); 13 13 14 %recreate constraints vector for the current analysis 14 15 ug=GetSolutionFromInputs(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters); 16 ys=Reducevectorgtos(ug,femmode.nodes,femmodel.parameters); 15 17 16 %For this analysis_type, free existing boundary condition vectors: 17 analysis_counter=femmodel.parameters.AnalysisCounter+1; %matlab indexing on counter 18 femmodel.m_ys{analysis_counter}=[]; 19 20 %Reduce from g to s set 21 ys=Reducevectorgtos(ug,femmodel.m_nodesets{analysis_counter},femmodel.parameters); 22 23 %in the s-set 24 femmodel.m_ys{analysis_counter}=ys; 25 18 %update values of spcs inside nodes 19 femmodel.nodes=UpdateSpcs(femmodel.nodes,femmodel.parameters,ys); -
issm/trunk/src/m/solutions/SetCurrentConfiguration.m
r5776 r8803 37 37 end 38 38 39 %activate matrices and vectors:40 femmodel.nodesets=femmodel.m_nodesets{found};41 femmodel.ys=femmodel.m_ys{found};42 43 39 %Now, plug analysis_counter and analysis_type inside the parameters: 44 40 %set counter and analyse_type -
issm/trunk/src/m/solvers/solver_adjoint_linear.m
r7391 r8803 6 6 7 7 %Get parameters 8 kffpartitioning=femmodel.parameters.Kff;8 analysis_type=femmodel.parameters.AnalysisType; 9 9 10 if kffpartitioning, 11 [K_gg,K_ff,K_fs,p_g,p_f,dg,df,kmax]=SystemMatrices(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters); 12 p_f = Reduceload( p_f, K_fs, femmodel.ys,true); 13 14 else 15 [K_gg,K_ff,K_fs,p_g,p_f,dg,df,kmax]=SystemMatrices(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters); 16 [K_ff, K_fs] = Reducematrixfromgtof( K_gg, femmodel.nodesets); 17 p_f = Reduceloadfromgtof( p_g, K_fs, femmodel.ys, femmodel.nodesets,true); 18 df=Reducevectorgtof( dg, femmodel.nodesets,femmodel.parameters); 19 end 10 [K_ff,K_fs,p_f,df,kmax]=SystemMatrices(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters); 11 ys=CreateNodalConstraints(femmodel.nodes,analysis_type); 12 p_f = Reduceload( p_f, K_fs, ys,true); 20 13 21 14 issmprintf(VerboseSolver(),'%s%g',' condition number of stiffness matrix: ',condest(K_ff)); 22 15 u_f=Solver(K_ff,p_f,[],df,femmodel.parameters); 23 u_g= Mergesolutionfromftog( u_f, femmodel.ys, femmodel.nodes ets,true);16 u_g= Mergesolutionfromftog( u_f, femmodel.ys, femmodel.nodes,femmodel.parameters,true); 24 17 25 18 [femmodel.elements,femmodel.materials]=InputUpdateFromSolution(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,u_g); -
issm/trunk/src/m/solvers/solver_linear.m
r7391 r8803 6 6 7 7 %Get parameters 8 kffpartitioning=femmodel.parameters.Kff;8 analysis_type=femmodel.parameters.AnalysisType; 9 9 10 if kffpartitioning, 11 [K_gg,K_ff,K_fs,p_g,p_f,dg,df,kmax]=SystemMatrices(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters); 12 p_f = Reduceload( p_f, K_fs, femmodel.ys); 13 else 14 [K_gg,K_ff,K_fs,p_g,p_f,dg,df,kmax]=SystemMatrices(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters); 15 [K_ff, K_fs] = Reducematrixfromgtof( K_gg, femmodel.nodesets); 16 p_f = Reduceloadfromgtof( p_g, K_fs, femmodel.ys, femmodel.nodesets); 17 df=Reducevectorgtof( dg, femmodel.nodesets,femmodel.parameters); 18 end 10 [K_ff,K_fs,p_f,df,kmax]=SystemMatrices(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters); 11 ys=CreateNodalConstraints(femmodel.nodes,analysis_type); 12 p_f = Reduceload( p_f, K_fs, ys); 19 13 20 14 issmprintf(VerboseSolver(),'%s%g',' condition number of stiffness matrix: ',condest(K_ff)); 21 15 u_f=Solver(K_ff,p_f,[],df,femmodel.parameters); 22 u_g= Mergesolutionfromftog( u_f, femmodel.ys, femmodel.nodesets); 23 16 u_g= Mergesolutionfromftog( u_f, ys, femmodel.nodes,femmodel.parameters); 24 17 [femmodel.elements,femmodel.materials]=InputUpdateFromSolution(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,u_g); -
issm/trunk/src/m/solvers/solver_nonlinear.m
r8404 r8803 6 6 7 7 %Branch on partitioning schema requested 8 kffpartitioning=femmodel.parameters.Kff;9 8 min_mechanical_constraints=femmodel.parameters.MinMechanicalConstraints; 9 analysis_type=femmodel.parameters.AnalysisType; 10 10 11 11 %keep a copy of loads for now … … 17 17 %Start non-linear iteration using input velocity: 18 18 ug=GetSolutionFromInputs(femmodel.elements, femmodel.nodes, femmodel.vertices, loads, femmodel.materials, femmodel.parameters); 19 uf=Reducevectorgtof( ug, femmodel.nodes ets,femmodel.parameters);19 uf=Reducevectorgtof( ug, femmodel.nodes,femmodel.parameters); 20 20 21 21 %Update the solution to make sure that vx and vxold are similar … … 28 28 old_uf=uf; 29 29 30 if kffpartitioning, 31 [K_gg,K_ff,K_fs,p_g,p_f,dg,df,kmax]=SystemMatrices(femmodel.elements,femmodel.nodes,femmodel.vertices,loads,femmodel.materials,femmodel.parameters); 32 p_f = Reduceload( p_f, K_fs, femmodel.ys); 33 else 34 [K_gg,K_ff,K_fs,p_g,p_f,dg,df,kmax]=SystemMatrices(femmodel.elements,femmodel.nodes,femmodel.vertices,loads,femmodel.materials,femmodel.parameters); 35 [K_ff, K_fs] = Reducematrixfromgtof( K_gg, femmodel.nodesets); 36 p_f = Reduceloadfromgtof( p_g, K_fs, femmodel.ys, femmodel.nodesets); 37 df=Reducevectorgtof( dg, femmodel.nodesets,femmodel.parameters); 38 end 30 [K_ff,K_fs,p_f,df,kmax]=SystemMatrices(femmodel.elements,femmodel.nodes,femmodel.vertices,loads,femmodel.materials,femmodel.parameters); 31 ys=CreateNodalConstraints(femmodel.nodes,analysis_type); 32 p_f = Reduceload( p_f, K_fs, femmodel.ys); 39 33 40 34 uf=Solver(K_ff,p_f,old_uf,df,femmodel.parameters); 41 ug= Mergesolutionfromftog( uf, femmodel.ys, femmodel.nodesets);35 ug= Mergesolutionfromftog( uf, ys, femmodel.nodes,femmodel.parameters); 42 36 43 37 [femmodel.elements,femmodel.materials]=InputUpdateFromSolution(femmodel.elements,femmodel.nodes,femmodel.vertices,loads,femmodel.materials,femmodel.parameters,ug); -
issm/trunk/src/m/solvers/solver_stokescoupling_nonlinear.m
r7392 r8803 4 4 % Usage: 5 5 % [femmodel]=solver_couplingstokes_nonlinear(femmodel,conserve_loads) 6 7 %Get parameters8 kffpartitioning=femmodel.parameters.Kff;9 6 10 7 %initialize solution vector … … 14 11 femmodel=SetCurrentConfiguration(femmodel,DiagnosticHorizAnalysisEnum); 15 12 ug_horiz=GetSolutionFromInputs(femmodel.elements, femmodel.nodes, femmodel.vertices, femmodel.loads, femmodel.materials, femmodel.parameters); 16 uf_horiz=Reducevectorgtof( ug_horiz, femmodel.nodes ets,femmodel.parameters);13 uf_horiz=Reducevectorgtof( ug_horiz, femmodel.nodes,femmodel.parameters); 17 14 18 15 while(~converged), … … 20 17 %First compute the horizontal velocity 21 18 femmodel=SetCurrentConfiguration(femmodel,DiagnosticHorizAnalysisEnum); 19 analysis_type=femmodel.parameters.AnalysisType; 22 20 23 21 %Update the solution to make sure that vx and vxold are similar … … 28 26 old_uf_horiz=uf_horiz; 29 27 30 if kffpartitioning, 31 [K_gg_horiz,K_ff_horiz,K_fs_horiz,p_g_horiz,p_f_horiz,d_g_horiz,d_f_horiz,kmax_horiz]=SystemMatrices(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters); 32 p_f_horiz = Reduceload( p_f_horiz, K_fs_horiz, femmodel.ys); 33 else 34 [K_gg_horiz,K_ff_horiz,K_fs_horiz,p_g_horiz,p_f_horiz,d_g_horiz,d_f_horiz,kmax]=SystemMatrices(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters); 35 [K_ff_horiz, K_fs_horiz] = Reducematrixfromgtof( K_gg_horiz, femmodel.nodesets); 36 p_f_horiz = Reduceloadfromgtof( p_g_horiz, K_fs_horiz, femmodel.ys, femmodel.nodesets); 37 d_f_horiz=Reducevectorgtof( d_g_horiz, femmodel.nodesets,femmodel.parameters); 38 39 end 28 [K_ff_horiz,K_fs_horiz,p_f_horiz,d_f_horiz,kmax_horiz]=SystemMatrices(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters); 29 ys=CreateNodalConstraints(femmodel.nodes,analysis_type); 30 p_f_horiz = Reduceload( p_f_horiz, K_fs_horiz, ys); 40 31 41 32 uf_horiz=Solver(K_ff_horiz,p_f_horiz,old_uf_horiz,d_f_horiz,femmodel.parameters); 42 ug_horiz= Mergesolutionfromftog( uf_horiz, femmodel.ys, femmodel.nodesets);33 ug_horiz= Mergesolutionfromftog( uf_horiz, ys, femmodel.nodes,femmodel.parameters); 43 34 44 35 [femmodel.elements,femmodel.materials]=InputUpdateFromSolution(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,ug_horiz); … … 49 40 %Then compute vertical velocity 50 41 femmodel=SetCurrentConfiguration(femmodel,DiagnosticVertAnalysisEnum); 42 analysis_type=femmodel.parameters.AnalysisType; 51 43 52 if kffpartitioning, 53 [K_gg_vert,K_ff_vert,K_fs_vert,p_g_vert,p_f_vert,d_g_vert,d_f_vert,kmax_vert]=SystemMatrices(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters); 54 p_f_vert = Reduceload( p_f_vert, K_fs_vert, femmodel.ys); 55 else 56 [K_gg_vert,K_ff_vert,K_fs_vert,p_g_vert,p_f_vert,d_g_vert,d_f_vert,kmax_vert]=SystemMatrices(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters); 57 [K_ff_vert, K_fs_vert] = Reducematrixfromgtof( K_gg_vert, femmodel.nodesets); 58 p_f_vert = Reduceloadfromgtof( p_g_vert, K_fs_vert, femmodel.ys, femmodel.nodesets); 59 d_f_vert=Reducevectorgtof( d_g_vert, femmodel.nodesets,femmodel.parameters); 60 end 44 [K_ff_vert,K_fs_vert,p_f_vert,d_f_vert,kmax_vert]=SystemMatrices(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters); 45 ys=CreateNodalConstraints(femmodel.nodes,analysis_type); 46 p_f_vert = Reduceload( p_f_vert, K_fs_vert, ys); 61 47 62 48 uf_vert=Solver(K_ff_vert,p_f_vert,[],d_f_vert,femmodel.parameters); 63 ug_vert= Mergesolutionfromftog( uf_vert, femmodel.ys, femmodel.nodesets);49 ug_vert= Mergesolutionfromftog( uf_vert, ys, femmodel.nodes,femmodel.parameters); 64 50 65 51 [femmodel.elements,femmodel.materials]=InputUpdateFromSolution(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,ug_vert); -
issm/trunk/src/m/solvers/solver_thermal_nonlinear.m
r8404 r8803 10 10 11 11 %Get parameters 12 kffpartitioning=femmodel.parameters.Kff;12 analysis_type=femmodel.parameters.AnalysisType; 13 13 14 14 %stiffness and load generation only: … … 23 23 while(~converged), 24 24 25 if kffpartitioning, 26 [K_gg,K_ff,K_fs,p_g,p_f,d_g,d_f,melting_offset]=SystemMatrices(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters); 27 p_f = Reduceload( p_f, K_fs, femmodel.ys); 28 else 29 [K_gg,K_ff,K_fs,p_g,p_f,d_g,d_f,melting_offset]=SystemMatrices(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters); 30 [K_ff, K_fs] = Reducematrixfromgtof( K_gg, femmodel.nodesets); 31 p_f = Reduceloadfromgtof( p_g, K_fs, femmodel.ys, femmodel.nodesets); 32 d_f=Reducevectorgtof( d_g, femmodel.nodesets,femmodel.parameters); 33 34 end 25 [K_ff,K_fs,p_f,d_f,melting_offset]=SystemMatrices(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters); 26 ys=CreateNodalConstraints(femmodel.nodes,analysis_type); 27 p_f = Reduceload( p_f, K_fs, ys); 35 28 36 29 issmprintf(VerboseSolver(),'%s%g',' condition number of stiffness matrix: ',condest(K_ff)); 37 30 t_f=Solver(K_ff,p_f,[],d_f,femmodel.parameters); 38 t_g= Mergesolutionfromftog( t_f, femmodel.ys, femmodel.nodesets);31 t_g= Mergesolutionfromftog( t_f, ys, femmodel.nodes,femmodel.parameters); 39 32 40 33 [femmodel.elements,femmodel.materials]=InputUpdateFromSolution(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,t_g);
Note:
See TracChangeset
for help on using the changeset viewer.