Changeset 5689
- Timestamp:
- 09/07/10 12:02:39 (15 years ago)
- Location:
- issm/trunk/src
- Files:
-
- 25 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/modules/Mergesolutionfromftogx/Mergesolutionfromftogx.cpp
r5057 r5689 5 5 #include "./Mergesolutionfromftogx.h" 6 6 7 void Mergesolutionfromftogx( Vec* pug, Vec uf, Vec ys, NodeSets* nodesets, bool flag_ys0){7 void Mergesolutionfromftogx( Vec* pug, Vec uf, Vec ys, NodeSets* nodesets,Parameters* parameters,bool flag_ys0){ 8 8 9 9 /*output: */ 10 10 Vec ug=NULL; 11 int ug_local_size; 11 Vec ys0=NULL; 12 int ug_local_size; 13 14 /*Display message*/ 15 int verbose; parameters->FindParam(&verbose,VerboseEnum); 16 if (verbose) printf(" Merging solution vector from fset to gset\n"); 12 17 13 /*intermediary*/14 Vec ys0=NULL;15 16 18 /*Merge f set back into g set: */ 17 19 ug=NewVec(nodesets->GetGSize()); -
issm/trunk/src/c/modules/Mergesolutionfromftogx/Mergesolutionfromftogx.h
r5057 r5689 9 9 10 10 /* local prototypes: */ 11 void Mergesolutionfromftogx( Vec* pug, Vec uf,Vec ys, NodeSets* nodesets, bool flag_ys0=false);11 void Mergesolutionfromftogx( Vec* pug, Vec uf,Vec ys, NodeSets* nodesets,Parameters* parameters,bool flag_ys0=false); 12 12 13 13 #endif /* _MERGESOLUTIONFROMFTOGX_H */ -
issm/trunk/src/c/modules/PenaltyConstraintsx/PenaltyConstraintsx.cpp
r4573 r5689 23 23 int analysis_type; 24 24 25 /*Display message*/ 26 int verbose; parameters->FindParam(&verbose,VerboseEnum); 27 if (verbose) printf(" Constraining penalties\n"); 28 25 29 /*recover parameters: */ 26 30 parameters->FindParam(&min_mechanical_constraints,MinMechanicalConstraintsEnum); -
issm/trunk/src/c/modules/PenaltySystemMatricesx/PenaltySystemMatricesx.cpp
r5420 r5689 15 15 double kmax; 16 16 Load* load=NULL; 17 18 17 int configuration_type; 18 19 /*Display message*/ 20 int verbose; parameters->FindParam(&verbose,VerboseEnum); 21 if (verbose) printf(" Generating penalty matrices\n"); 19 22 20 23 /*retrive parameters: */ -
issm/trunk/src/c/modules/Reduceloadfromgtofx/Reduceloadfromgtofx.cpp
r5057 r5689 8 8 #error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!" 9 9 #endif 10 11 10 #include "./Reduceloadfromgtofx.h" 12 11 13 void Reduceloadfromgtofx( Vec* ppf, Vec pg, Mat Kfs, Vec y_s, NodeSets* nodesets, bool flag_ys0){12 void Reduceloadfromgtofx( Vec* ppf, Vec pg, Mat Kfs, Vec y_s, NodeSets* nodesets,Parameters* parameters,bool flag_ys0){ 14 13 15 14 /*output: */ … … 22 21 int Kfsm,Kfsn; 23 22 PetscScalar a; 24 23 24 /*Display message*/ 25 int verbose; parameters->FindParam(&verbose,VerboseEnum); 26 if (verbose) printf(" Reducing Load vector from gset to fset\n"); 25 27 26 28 if(!pg){ … … 28 30 } 29 31 else{ 30 31 32 /* Reduce pg to pn:*/ 32 33 VecDuplicate(pg,&pn); -
issm/trunk/src/c/modules/Reduceloadfromgtofx/Reduceloadfromgtofx.h
r5057 r5689 9 9 10 10 /* local prototypes: */ 11 void Reduceloadfromgtofx( Vec* ppf, Vec pg, Mat Kfs, Vec ys, NodeSets* nodesets, bool flag_ys0=false);11 void Reduceloadfromgtofx( Vec* ppf, Vec pg, Mat Kfs, Vec ys, NodeSets* nodesets,Parameters* parameters, bool flag_ys0=false); 12 12 13 13 #endif /* _REDUCELOADFROMGTOFX_H */ -
issm/trunk/src/c/modules/Reducematrixfromgtofx/Reducematrixfromgtofx.cpp
r5057 r5689 2 2 * \brief reduce matrix from g set to f fset 3 3 */ 4 5 4 #include "./Reducematrixfromgtofx.h" 6 5 7 void Reducematrixfromgtofx( Mat* pKff, Mat* pKfs,Mat Kgg,NodeSets* nodesets ){6 void Reducematrixfromgtofx( Mat* pKff, Mat* pKfs,Mat Kgg,NodeSets* nodesets,Parameters* parameters){ 8 7 9 8 /*output: */ 10 9 Mat Kff=NULL; 11 10 Mat Kfs=NULL; 11 12 /*Display message*/ 13 int verbose; parameters->FindParam(&verbose,VerboseEnum); 14 if (verbose) printf(" Reducing Stiffness Matrix from gset to fset\n"); 12 15 13 16 //Reduce matrix from g-size to f-size -
issm/trunk/src/c/modules/Reducematrixfromgtofx/Reducematrixfromgtofx.h
r5057 r5689 10 10 11 11 /* local prototypes: */ 12 void Reducematrixfromgtofx( Mat* pKff, Mat* pKfs,Mat Kgg,NodeSets* nodesets );12 void Reducematrixfromgtofx( Mat* pKff, Mat* pKfs,Mat Kgg,NodeSets* nodesets,Parameters* parameters); 13 13 14 14 #endif /* _REDUCEMATRIXFROMGTOFX_H */ -
issm/trunk/src/c/modules/Solverx/Solverx.cpp
r5686 r5689 28 28 int solver_type; 29 29 char* solver_string=NULL; 30 31 /*Display message*/ 32 int verbose; parameters->FindParam(&verbose,VerboseEnum); 33 if (verbose) printf(" Solving\n"); 30 34 31 35 /*First, check that f-set is not NULL, ie model is fully constrained: */ -
issm/trunk/src/c/modules/SystemMatricesx/SystemMatricesx.cpp
r5420 r5689 26 26 int analysis_type; 27 27 int configuration_type; 28 29 /*Display message*/ 30 int verbose; parameters->FindParam(&verbose,VerboseEnum); 31 if (verbose) printf(" Generating matrices\n"); 28 32 29 33 /*retrive parameters: */ -
issm/trunk/src/c/solvers/solver_adjoint_linear.cpp
r5686 r5689 14 14 /*parameters:*/ 15 15 int kflag,pflag; 16 int verbose=0;17 16 18 17 /*output: */ … … 27 26 Vec pf=NULL; 28 27 29 /*Recover parameters: */30 28 kflag=1; pflag=1; 31 femmodel->parameters->FindParam(&verbose,VerboseEnum);32 33 //*Generate system matrices34 if(verbose)_printf_(" Generating matrices\n");35 29 SystemMatricesx(&Kgg, &pg,femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,kflag,pflag); 36 37 if(verbose)_printf_(" Generating penalty matrices\n");38 //*Generate penalty system matrices39 30 PenaltySystemMatricesx(Kgg, pg,NULL,femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,kflag,pflag); 40 31 41 /*!Reduce matrix from g to f size:*/ 42 if(verbose)_printf_(" reducing matrix from g to f set\n"); 43 Reducematrixfromgtofx(&Kff,&Kfs,Kgg,femmodel->nodesets); MatFree(&Kgg); 32 Reducematrixfromgtofx(&Kff,&Kfs,Kgg,femmodel->nodesets,femmodel->parameters); MatFree(&Kgg); 33 Reduceloadfromgtofx(&pf, pg, Kfs, femmodel->ys, femmodel->nodesets,femmodel->parameters,true);VecFree(&pg); MatFree(&Kfs);//true means spc = 0 44 34 45 /*!Reduce load from g to f size: */46 if(verbose)_printf_(" reducing load from g to f set\n"); //true means spc = 047 Reduceloadfromgtofx(&pf, pg, Kfs, femmodel->ys, femmodel->nodesets,true);VecFree(&pg); MatFree(&Kfs);48 49 /*Solve: */50 if(verbose)_printf_(" solving\n");51 35 Solverx(&uf, Kff, pf, NULL, femmodel->parameters); MatFree(&Kff); VecFree(&pf); 52 36 53 //Merge back to g set 54 if(verbose)_printf_(" merging solution from f to g set\n");//true means spc=0 55 Mergesolutionfromftogx(&ug, uf,femmodel->ys,femmodel->nodesets,true);VecFree(&uf); 37 Mergesolutionfromftogx(&ug, uf,femmodel->ys,femmodel->nodesets,femmodel->parameters,true);VecFree(&uf);//true means spc0 56 38 57 //Update inputs using new solution:58 39 InputUpdateFromSolutionx( femmodel->elements,femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,ug); 59 40 60 /*free ressources: */61 41 VecFree(&ug); 62 42 VecFree(&uf); -
issm/trunk/src/c/solvers/solver_diagnostic_nonlinear.cpp
r5686 r5689 36 36 int kflag,pflag; 37 37 int verbose=0; 38 int dim;39 38 40 39 /*Recover parameters: */ 41 40 kflag=1; pflag=1; 42 femmodel->parameters->FindParam(&dim,DimEnum);43 41 femmodel->parameters->FindParam(&verbose,VerboseEnum); 44 42 femmodel->parameters->FindParam(&min_mechanical_constraints,MinMechanicalConstraintsEnum); … … 69 67 VecFree(&old_uf);old_uf=uf; 70 68 71 if(verbose)_printf_(" Generating matrices\n");72 69 SystemMatricesx(&Kgg, &pg,femmodel->elements,femmodel->nodes,femmodel->vertices,loads,femmodel->materials,femmodel->parameters,kflag,pflag); 73 74 if(verbose)_printf_(" Generating penalty matrices\n");75 70 PenaltySystemMatricesx(Kgg, pg,NULL,femmodel->elements,femmodel->nodes,femmodel->vertices,loads,femmodel->materials,femmodel->parameters,kflag,pflag); 76 71 77 if(verbose)_printf_(" reducing matrix from g to f set\n"); 78 Reducematrixfromgtofx(&Kff,&Kfs,Kgg,femmodel->nodesets); 79 80 /*Free ressources: */ 72 Reducematrixfromgtofx(&Kff,&Kfs,Kgg,femmodel->nodesets,femmodel->parameters); 81 73 MatFree(&Kgg); 82 74 83 if(verbose)_printf_(" reducing load from g to f set\n"); 84 Reduceloadfromgtofx(&pf, pg, Kfs, femmodel->ys, femmodel->nodesets); 85 86 //no need for pg and Kfs anymore 75 Reduceloadfromgtofx(&pf, pg, Kfs, femmodel->ys, femmodel->nodesets,femmodel->parameters); 87 76 VecFree(&pg); 88 77 MatFree(&Kfs); 89 78 90 if(verbose)_printf_(" solving\n");91 79 Solverx(&uf, Kff, pf, old_uf, femmodel->parameters); 92 80 93 if(verbose)_printf_(" merging solution from f to g set\n"); 94 Mergesolutionfromftogx(&ug, uf,femmodel->ys,femmodel->nodesets); 81 Mergesolutionfromftogx(&ug, uf,femmodel->ys,femmodel->nodesets,femmodel->parameters); 95 82 96 //Update inputs using new solution:97 83 InputUpdateFromSolutionx( femmodel->elements,femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,ug); 98 84 99 if(verbose)_printf_(" penalty constraints\n");100 85 PenaltyConstraintsx(&constraints_converged, &num_unstable_constraints, femmodel->elements,femmodel->nodes,femmodel->vertices,loads,femmodel->materials,femmodel->parameters); 101 102 86 if(verbose)_printf_(" number of unstable constraints: %i\n",num_unstable_constraints); 103 87 104 /*Figure out if convergence is reached.*/105 88 convergence(&converged,Kff,pf,uf,old_uf,femmodel->parameters); 106 89 MatFree(&Kff);VecFree(&pf); 107 90 108 /*add converged to inputs: */109 91 InputUpdateFromConstantx( femmodel->elements,femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,converged,ConvergedEnum); 110 92 … … 126 108 } 127 109 128 /* Delete loads only if no ouput was requested:*/110 /*clean-up*/ 129 111 if(conserve_loads) delete loads; 130 131 /*clean up*/132 112 VecFree(&uf); 133 113 VecFree(&ug); -
issm/trunk/src/c/solvers/solver_linear.cpp
r5686 r5689 29 29 femmodel->parameters->FindParam(&verbose,VerboseEnum); 30 30 31 //*Generate system matrices32 if(verbose)_printf_(" Generating matrices\n");33 31 SystemMatricesx(&Kgg, &pg,femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,kflag,pflag); 34 35 if(verbose)_printf_(" Generating penalty matrices\n");36 //*Generate penalty system matrices37 32 PenaltySystemMatricesx(Kgg, pg,NULL,femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,kflag,pflag); 38 33 39 /*!Reduce matrix from g to f size:*/ 40 if(verbose)_printf_(" reducing matrix from g to f set\n"); 41 Reducematrixfromgtofx(&Kff,&Kfs,Kgg,femmodel->nodesets); MatFree(&Kgg); 34 Reducematrixfromgtofx(&Kff,&Kfs,Kgg,femmodel->nodesets,femmodel->parameters); MatFree(&Kgg); 35 Reduceloadfromgtofx(&pf, pg, Kfs, femmodel->ys, femmodel->nodesets,femmodel->parameters);VecFree(&pg); MatFree(&Kfs); 42 36 43 /*!Reduce load from g to f size: */44 if(verbose)_printf_(" reducing load from g to f set\n");45 Reduceloadfromgtofx(&pf, pg, Kfs, femmodel->ys, femmodel->nodesets);VecFree(&pg); MatFree(&Kfs);46 47 /*Solve: */48 if(verbose)_printf_(" solving\n");49 37 Solverx(&uf, Kff, pf, NULL, femmodel->parameters); MatFree(&Kff); VecFree(&pf); 50 38 51 //Merge back to g set 52 if(verbose)_printf_(" merging solution from f to g set\n"); 53 Mergesolutionfromftogx(&ug, uf,femmodel->ys,femmodel->nodesets);VecFree(&uf); 39 Mergesolutionfromftogx(&ug, uf,femmodel->ys,femmodel->nodesets,femmodel->parameters);VecFree(&uf); 54 40 55 //Update inputs using new solution:56 41 InputUpdateFromSolutionx( femmodel->elements,femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,ug); 57 42 58 /*free ressources: */59 43 VecFree(&ug); 60 44 VecFree(&uf); -
issm/trunk/src/c/solvers/solver_thermal_nonlinear.cpp
r5686 r5689 75 75 } 76 76 77 /*!Reduce matrix from g to f size:*/ 78 Reducematrixfromgtofx(&Kff,&Kfs,Kgg,femmodel->nodesets); 77 Reducematrixfromgtofx(&Kff,&Kfs,Kgg,femmodel->nodesets,femmodel->parameters); 79 78 80 79 /*Free ressources: */ 81 80 MatFree(&Kgg); 82 81 83 if(verbose)_printf_(" reducing load from g to f set\n"); 84 Reduceloadfromgtofx(&pf, pg, Kfs, femmodel->ys, femmodel->nodesets); 82 Reduceloadfromgtofx(&pf, pg, Kfs, femmodel->ys, femmodel->nodesets,femmodel->parameters); 85 83 86 84 //no need for pg and Kfs anymore … … 89 87 90 88 /*Solve: */ 91 if(verbose)_printf_("%s\n","solving");92 89 VecFree(&tf); 93 90 Solverx(&tf, Kff, pf,tf_old, femmodel->parameters); … … 97 94 MatFree(&Kff);VecFree(&pf);VecFree(&tg); 98 95 99 if(verbose)_printf_(" merging solution from f to g set\n"); 100 Mergesolutionfromftogx(&tg, tf,femmodel->ys,femmodel->nodesets); 96 Mergesolutionfromftogx(&tg, tf,femmodel->ys,femmodel->nodesets,femmodel->parameters); 101 97 102 //Update inputs using new solution:103 if (verbose) _printf_(" updating inputs\n");104 98 InputUpdateFromSolutionx(femmodel->elements,femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,tg); 105 99 106 100 //Deal with penalty loads 107 if(verbose)_printf_(" penalty constraints\n");108 101 PenaltyConstraintsx(&constraints_converged, &num_unstable_constraints, femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters); 109 102 -
issm/trunk/src/m/solvers/solver_adjoint_linear.m
r5631 r5689 5 5 % femmodel =solver_adjoint_linear(femmodel) 6 6 7 %stiffness and load generation only:8 7 femmodel.parameters.Kflag=1; femmodel.parameters.Pflag=1; 9 8 10 %system matrices11 9 [K_gg, p_g]=SystemMatrices(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters); 12 10 [K_gg, p_g,kmax]=PenaltySystemMatrices(K_gg,p_g,femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters); 13 11 14 %Reduce tangent matrix from g size to f size 15 [K_ff, K_fs] = Reducematrixfromgtof( K_gg, femmodel.nodesets); 12 [K_ff, K_fs] = Reducematrixfromgtof( K_gg, femmodel.nodesets,femmodel.parameters); 16 13 %K_ff=transpose(K_ff); 14 p_f = Reduceloadfromgtof( p_g, K_fs, femmodel.ys, femmodel.nodesets,femmodel.parameters,true); 15 17 16 displaystring(femmodel.parameters.Verbose>1,'%s%g',' condition number of stiffness matrix: ',condest(K_ff)); 18 19 %Reduce load from g size to f size20 p_f = Reduceloadfromgtof( p_g, K_fs, femmodel.ys, femmodel.nodesets,true);21 22 %Solve23 17 u_f=Solver(K_ff,p_f,[],femmodel.parameters); 24 18 25 %Merge back to g set 26 u_g= Mergesolutionfromftog( u_f, femmodel.ys, femmodel.nodesets,true); 19 u_g= Mergesolutionfromftog( u_f, femmodel.ys, femmodel.nodesets,femmodel.parameters,true); 27 20 28 %Update inputs using new solution29 21 [femmodel.elements,femmodel.materials]=InputUpdateFromSolution(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,u_g); 30 -
issm/trunk/src/m/solvers/solver_diagnostic_nonlinear.m
r5609 r5689 31 31 old_uf=uf; 32 32 33 displaystring(femmodel.parameters.Verbose,'%s',' Generating matrices:');34 33 [K_gg_nopenalty , p_g_nopenalty]=SystemMatrices(femmodel.elements,femmodel.nodes,femmodel.vertices,loads,femmodel.materials,femmodel.parameters); 35 36 displaystring(femmodel.parameters.Verbose,'%s',' Generating penalty matrices:');37 34 [K_gg , p_g, kmax]=PenaltySystemMatrices(K_gg_nopenalty,p_g_nopenalty,femmodel.elements,femmodel.nodes,femmodel.vertices,loads,femmodel.materials,femmodel.parameters); 38 35 36 [K_ff, K_fs] = Reducematrixfromgtof( K_gg, femmodel.nodesets,femmodel.parameters); 37 p_f = Reduceloadfromgtof( p_g, K_fs, femmodel.ys, femmodel.nodesets,femmodel.parameters); 39 38 40 displaystring(femmodel.parameters.Verbose,'%s',' reducing matrix from g to f set');41 [K_ff, K_fs] = Reducematrixfromgtof( K_gg, femmodel.nodesets);42 43 displaystring(femmodel.parameters.Verbose,'%s',' reduce load from g size to f size');44 p_f = Reduceloadfromgtof( p_g, K_fs, femmodel.ys, femmodel.nodesets);45 46 displaystring(femmodel.parameters.Verbose,'%s',' solving');47 39 uf=Solver(K_ff,p_f,old_uf,femmodel.parameters); 48 40 49 displaystring(femmodel.parameters.Verbose,'%s',' merge back to g set'); 50 ug= Mergesolutionfromftog( uf, femmodel.ys, femmodel.nodesets ); 41 ug= Mergesolutionfromftog( uf, femmodel.ys, femmodel.nodesets,femmodel.parameters); 51 42 52 %Update inputs using new solution53 43 [femmodel.elements,femmodel.materials]=InputUpdateFromSolution(femmodel.elements,femmodel.nodes,femmodel.vertices,loads,femmodel.materials,femmodel.parameters,ug); 54 55 displaystring(femmodel.parameters.Verbose,'%s',' penalty constraints');56 44 [loads,constraints_converged,num_unstable_constraints] =PenaltyConstraints( femmodel.elements,femmodel.nodes,femmodel.vertices,loads, femmodel.materials,femmodel.parameters); 57 45 -
issm/trunk/src/m/solvers/solver_linear.m
r5195 r5689 5 5 % femmodel =solver_linear(femmodel) 6 6 7 %stiffness and load generation only:8 7 femmodel.parameters.Kflag=1; femmodel.parameters.Pflag=1; 9 8 10 %system matrices11 9 [K_gg, p_g]=SystemMatrices(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters); 12 10 [K_gg, p_g,kmax]=PenaltySystemMatrices(K_gg,p_g,femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters); 13 11 14 %Reduce tangent matrix from g size to f size 15 [K_ff, K_fs] = Reducematrixfromgtof( K_gg, femmodel.nodesets); 12 [K_ff, K_fs] = Reducematrixfromgtof( K_gg, femmodel.nodesets,femmodel.parameters); 13 p_f = Reduceloadfromgtof( p_g, K_fs, femmodel.ys, femmodel.nodesets,femmodel.parameters); 14 16 15 displaystring(femmodel.parameters.Verbose>1,'%s%g',' condition number of stiffness matrix: ',condest(K_ff)); 17 18 %Reduce load from g size to f size19 p_f = Reduceloadfromgtof( p_g, K_fs, femmodel.ys, femmodel.nodesets);20 21 %Solve22 16 u_f=Solver(K_ff,p_f,[],femmodel.parameters); 23 17 24 %Merge back to g set 25 u_g= Mergesolutionfromftog( u_f, femmodel.ys, femmodel.nodesets ); 18 u_g= Mergesolutionfromftog( u_f, femmodel.ys, femmodel.nodesets,femmodel.parameters); 26 19 27 %Update inputs using new solution28 20 [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_thermal_nonlinear.m
r5057 r5689 27 27 [K_gg , p_g, melting_offset]=PenaltySystemMatrices(K_gg_nopenalty,p_g_nopenalty,femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters); 28 28 29 %Reduce tangent matrix from g size to f size 30 [K_ff, K_fs] = Reducematrixfromgtof( K_gg, femmodel.nodesets); 31 32 %Reduce load from g size to f size 33 p_f = Reduceloadfromgtof( p_g, K_fs, femmodel.ys, femmodel.nodesets); 29 [K_ff, K_fs] = Reducematrixfromgtof( K_gg, femmodel.nodesets,femmodel.parameters); 30 p_f = Reduceloadfromgtof( p_g, K_fs, femmodel.ys, femmodel.nodesets,femmodel.parameters); 34 31 35 32 displaystring(femmodel.parameters.Verbose,'%s%g',' condition number of stiffness matrix: ',condest(K_ff)); 36 33 t_f=Solver(K_ff,p_f,[],femmodel.parameters); 37 34 38 displaystring(femmodel.parameters.Verbose,'%s',[' merging solution back to g set']); 39 t_g= Mergesolutionfromftog( t_f, femmodel.ys, femmodel.nodesets ); 40 41 displaystring(femmodel.parameters.Verbose,'%s',[' updating inputs']); 35 t_g= Mergesolutionfromftog( t_f, femmodel.ys, femmodel.nodesets,femmodel.parameters); 42 36 [femmodel.elements,femmodel.materials]=InputUpdateFromSolution(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,t_g); 43 37 44 %penalty constraints45 displaystring(femmodel.parameters.Verbose,'%s',[' penalty constraints']);46 38 [femmodel.loads,constraints_converged,num_unstable_constraints] =PenaltyConstraints(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads, femmodel.materials,femmodel.parameters); 47 39 -
issm/trunk/src/mex/Mergesolutionfromftog/Mergesolutionfromftog.cpp
r5057 r5689 8 8 9 9 /*input datasets: */ 10 bool flag_ys0; 11 Vec uf=NULL; 12 Vec ys=NULL; 13 NodeSets* nodesets=NULL; 10 bool flag_ys0; 11 Vec uf = NULL; 12 Vec ys = NULL; 13 NodeSets *nodesets = NULL; 14 Parameters *parameters = NULL; 14 15 15 16 /* output datasets: */ … … 20 21 21 22 /*checks on arguments on the matlab side: */ 22 if((nlhs!=NLHS) || (nrhs!= 3 && nrhs!=4)){23 if((nlhs!=NLHS) || (nrhs!=4 && nrhs!=5)){ 23 24 MergesolutionfromftogUsage(); 24 25 ISSMERROR(" usage. See above"); … … 29 30 FetchData(&ys,YS); 30 31 FetchNodeSets(&nodesets,NODESETS); 32 FetchParams(¶meters,PARAMETERS); 31 33 32 34 /*!Reduce vector: */ 33 if (nrhs== 3){34 Mergesolutionfromftogx(&ug, uf,ys,nodesets );35 if (nrhs==4){ 36 Mergesolutionfromftogx(&ug, uf,ys,nodesets,parameters); 35 37 } 36 38 else{ 37 39 FetchData(&flag_ys0,YSFLAG); 38 Mergesolutionfromftogx(&ug, uf,ys,nodesets, flag_ys0);40 Mergesolutionfromftogx(&ug, uf,ys,nodesets,parameters,flag_ys0); 39 41 } 40 42 … … 44 46 /*Free ressources: */ 45 47 VecFree(&uf); 48 VecFree(&ug); 46 49 VecFree(&ys); 47 50 delete nodesets; 48 VecFree(&ug);51 delete parameters; 49 52 50 53 /*end module: */ … … 55 58 { 56 59 _printf_("\n"); 57 _printf_(" usage: [ug] = %s(uf,ys,nodesets );\n",__FUNCT__);60 _printf_(" usage: [ug] = %s(uf,ys,nodesets,parameters);\n",__FUNCT__); 58 61 _printf_("\n"); 59 62 } -
issm/trunk/src/mex/Mergesolutionfromftog/Mergesolutionfromftog.h
r5057 r5689 22 22 #define YS (mxArray*)prhs[1] 23 23 #define NODESETS (mxArray*)prhs[2] 24 #define YSFLAG (mxArray*)prhs[3] 24 #define PARAMETERS (mxArray*)prhs[3] 25 #define YSFLAG (mxArray*)prhs[4] 25 26 26 27 /* serial output macros: */ … … 31 32 #define NLHS 1 32 33 #undef NRHS 33 #define NRHS 334 #define NRHS 5 34 35 35 36 #endif /* _MERGESOLUTIONFROMFTOG_H */ 36 -
issm/trunk/src/mex/Reduceloadfromgtof/Reduceloadfromgtof.cpp
r5057 r5689 8 8 9 9 /*input datasets: */ 10 bool flag_ys0; 11 Vec pg=NULL; 12 Mat Kfs=NULL; 13 Vec ys=NULL; 14 NodeSets* nodesets=NULL; 10 bool flag_ys0; 11 Vec pg = NULL; 12 Mat Kfs = NULL; 13 Vec ys = NULL; 14 NodeSets *nodesets = NULL; 15 Parameters *parameters = NULL; 15 16 16 17 /* output datasets: */ … … 21 22 22 23 /*checks on arguments on the matlab side: */ 23 if((nlhs!=NLHS) || (nrhs!= 4 && nrhs!=5)){24 if((nlhs!=NLHS) || (nrhs!=5 && nrhs!=6)){ 24 25 ReduceloadfromgtofUsage(); 25 26 ISSMERROR(" usage. See above"); … … 31 32 FetchData(&ys,YS); 32 33 FetchNodeSets(&nodesets,NODESETS); 34 FetchParams(¶meters,PARAMETERS); 33 35 34 36 /*!Reduce load from g to f size: */ 35 if (nrhs== 4){36 Reduceloadfromgtofx(&pf, pg, Kfs, ys, nodesets );37 if (nrhs==5){ 38 Reduceloadfromgtofx(&pf, pg, Kfs, ys, nodesets,parameters); 37 39 } 38 40 else{ 39 41 FetchData(&flag_ys0,YSFLAG); 40 Reduceloadfromgtofx(&pf, pg, Kfs, ys, nodesets, flag_ys0);42 Reduceloadfromgtofx(&pf, pg, Kfs, ys, nodesets,parameters,flag_ys0); 41 43 } 42 44 … … 50 52 VecFree(&ys); 51 53 delete nodesets; 54 delete parameters; 52 55 53 56 /*end module: */ … … 58 61 { 59 62 _printf_("\n"); 60 _printf_(" usage: [pf] = %s(pg,Kfs,ys,nodesets );\n",__FUNCT__);63 _printf_(" usage: [pf] = %s(pg,Kfs,ys,nodesets,parameters);\n",__FUNCT__); 61 64 _printf_("\n"); 62 65 } -
issm/trunk/src/mex/Reduceloadfromgtof/Reduceloadfromgtof.h
r5057 r5689 23 23 #define YS (mxArray*)prhs[2] 24 24 #define NODESETS (mxArray*)prhs[3] 25 #define YSFLAG (mxArray*)prhs[4] 25 #define PARAMETERS (mxArray*)prhs[4] 26 #define YSFLAG (mxArray*)prhs[5] 26 27 27 28 /* serial output macros: */ … … 32 33 #define NLHS 1 33 34 #undef NRHS 34 #define NRHS 4 35 35 #define NRHS 5 36 36 37 37 #endif /* _REDUCELOADFROMGTOF_H */ 38 -
issm/trunk/src/mex/Reducematrixfromgtof/Reducematrixfromgtof.cpp
r5057 r5689 8 8 9 9 /*input datasets: */ 10 Mat Kgg=NULL; 11 NodeSets* nodesets=NULL; 10 Mat Kgg = NULL; 11 NodeSets *nodesets = NULL; 12 Parameters *parameters = NULL; 12 13 13 14 /* output datasets: */ 14 Mat Kff =NULL;15 Mat Kfs =NULL;15 Mat Kff = NULL; 16 Mat Kfs = NULL; 16 17 17 18 /*Boot module: */ … … 24 25 FetchData(&Kgg,KGG); 25 26 FetchNodeSets(&nodesets,NODESETS); 27 FetchParams(¶meters,PARAMETERS); 26 28 27 29 /*!Reduce matrix from g to f size:*/ 28 Reducematrixfromgtofx(&Kff,&Kfs,Kgg,nodesets );30 Reducematrixfromgtofx(&Kff,&Kfs,Kgg,nodesets,parameters); 29 31 30 32 /*write output datasets: */ … … 34 36 /*Free ressources: */ 35 37 delete nodesets; 38 delete parameters; 36 39 MatFree(&Kgg); 37 40 MatFree(&Kff); … … 45 48 { 46 49 _printf_("\n"); 47 _printf_(" usage: [Kff,Kfs] = %s(Kgg,nodesets );\n",__FUNCT__);50 _printf_(" usage: [Kff,Kfs] = %s(Kgg,nodesets,parameters);\n",__FUNCT__); 48 51 _printf_("\n"); 49 52 } -
issm/trunk/src/mex/Reducematrixfromgtof/Reducematrixfromgtof.h
r5057 r5689 21 21 #define KGG (mxArray*)prhs[0] 22 22 #define NODESETS (mxArray*)prhs[1] 23 #define PARAMETERS (mxArray*)prhs[2] 23 24 24 25 /* serial output macros: */ … … 30 31 #define NLHS 2 31 32 #undef NRHS 32 #define NRHS 2 33 33 #define NRHS 3 34 34 35 35 #endif /* _REDUCEMATRIXFROMGTOF_H */ 36 -
issm/trunk/src/mex/SystemMatrices/SystemMatrices.cpp
r5332 r5689 8 8 9 9 /*input datasets: */ 10 Elements * elements=NULL;11 Nodes * nodes=NULL;12 Vertices * vertices=NULL;13 Loads * loads=NULL;14 Materials * materials=NULL;15 Parameters * parameters=NULL;10 Elements *elements = NULL; 11 Nodes *nodes = NULL; 12 Vertices *vertices = NULL; 13 Loads *loads = NULL; 14 Materials *materials = NULL; 15 Parameters *parameters = NULL; 16 16 int kflag,pflag; 17 17 … … 42 42 nodes-> Configure(elements,loads, nodes,vertices, materials,parameters); 43 43 loads-> Configure(elements, loads, nodes,vertices, materials,parameters); 44 materials-> 44 materials-> Configure(elements, loads, nodes,vertices, materials,parameters); 45 45 46 46 /*!Generate internal degree of freedom numbers: */
Note:
See TracChangeset
for help on using the changeset viewer.