Changeset 23588
- Timestamp:
- 01/02/19 20:42:58 (6 years ago)
- Location:
- issm/trunk-jpl/src/c
- Files:
-
- 31 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/classes/Constraints/Constraint.h
r22200 r23588 22 22 virtual void ActivatePenaltyMethod(void)=0; 23 23 virtual void ConstrainNode(Nodes* nodes,Parameters* parameters)=0; 24 virtual bool InAnalysis(int analysis_type)=0;25 24 virtual void PenaltyDofAndValue(int* dof,IssmDouble* value,Nodes* nodes,Parameters* parameters)=0; 26 25 virtual void InputUpdateFromVectorDakota(IssmDouble* vector,Nodes* nodes,int name,int type) = 0; -
issm/trunk-jpl/src/c/classes/Constraints/Constraints.cpp
r23533 r23588 24 24 for(int i=0;i<this->Size();i++){ 25 25 Constraint* constraint=(Constraint*)this->GetObjectByOffset(i); 26 if(constraint->InAnalysis(in_analysis)){ 27 constraint->ActivatePenaltyMethod(); 28 } 26 constraint->ActivatePenaltyMethod(); 29 27 } 30 28 -
issm/trunk-jpl/src/c/classes/Constraints/SpcDynamic.cpp
r22361 r23588 112 112 } 113 113 /*}}}*/ 114 bool SpcDynamic::InAnalysis(int in_analysis_type){/*{{{*/115 if (in_analysis_type==this->analysis_type) return true;116 else return false;117 }118 /*}}}*/119 114 120 115 /*SpcDynamic functions*/ -
issm/trunk-jpl/src/c/classes/Constraints/SpcDynamic.h
r22361 r23588 40 40 void ActivatePenaltyMethod(void); 41 41 void ConstrainNode(Nodes* nodes,Parameters* parameters); 42 bool InAnalysis(int analysis_type);43 42 void PenaltyDofAndValue(int* dof,IssmDouble* value,Nodes* nodes,Parameters* parameters){_error_("not implemented yet");}; 44 43 void InputUpdateFromVectorDakota(IssmDouble* vector,Nodes* nodes,int name,int type){_error_("not implemented yet");}; -
issm/trunk-jpl/src/c/classes/Constraints/SpcStatic.cpp
r23066 r23588 109 109 } 110 110 /*}}}*/ 111 bool SpcStatic::InAnalysis(int in_analysis_type){/*{{{*/112 if (in_analysis_type==this->analysis_type) return true;113 else return false;114 }115 /*}}}*/116 111 void SpcStatic::InputUpdateFromVectorDakota(IssmDouble* vector,Nodes* nodes,int name,int type){/*{{{*/ 117 112 -
issm/trunk-jpl/src/c/classes/Constraints/SpcStatic.h
r22361 r23588 39 39 void ActivatePenaltyMethod(void); 40 40 void ConstrainNode(Nodes* nodes,Parameters* parameters); 41 bool InAnalysis(int analysis_type);42 41 void PenaltyDofAndValue(int* dof,IssmDouble* value,Nodes* nodes,Parameters* parameters){_error_("not implemented yet");}; 43 42 void InputUpdateFromVectorDakota(IssmDouble* vector,Nodes* nodes,int name,int type); -
issm/trunk-jpl/src/c/classes/Constraints/SpcTransient.cpp
r22361 r23588 159 159 } 160 160 /*}}}*/ 161 bool SpcTransient::InAnalysis(int in_analysis_type){/*{{{*/162 163 if (in_analysis_type==this->analysis_type) return true;164 else return false;165 }166 /*}}}*/167 161 void SpcTransient::PenaltyDofAndValue(int* pdof,IssmDouble* pvalue,Nodes* nodes,Parameters* parameters){/*{{{*/ 168 162 -
issm/trunk-jpl/src/c/classes/Constraints/SpcTransient.h
r22361 r23588 41 41 void ActivatePenaltyMethod(void); 42 42 void ConstrainNode(Nodes* nodes,Parameters* parameters); 43 bool InAnalysis(int analysis_type);44 43 void PenaltyDofAndValue(int* dof,IssmDouble* value,Nodes* nodes,Parameters* parameters); 45 44 void InputUpdateFromVectorDakota(IssmDouble* vector,Nodes* nodes,int name,int type){_error_("not implemented yet");}; -
issm/trunk-jpl/src/c/classes/FemModel.cpp
r23587 r23588 3443 3443 3444 3444 Constraint* constraint=(Constraint*)this->constraints_list[analysis_index]->GetObjectByOffset(i); 3445 if(!constraint->InAnalysis(analysis_enum)) _error_("AMR create constraints for "<<EnumToStringx(analysis_enum)<<" not supported yet!\n");3446 3445 3447 3446 SpcStatic* spcstatic = xDynamicCast<SpcStatic*>(constraint); … … 4543 4542 for (int i=0;i<nodes->Size();i++){ 4544 4543 Node* node=xDynamicCast<Node*>(nodes->GetObjectByOffset(i)); 4545 _assert_(node->InAnalysis(HydrologyDCEfficientAnalysisEnum));4546 4544 if(serial_active[node->Sid()]==1.){ 4547 4545 node->Activate(); … … 4616 4614 for (int i=0;i<nodes->Size();i++){ 4617 4615 Node* node=xDynamicCast<Node*>(nodes->GetObjectByOffset(i)); 4618 _assert_(node->InAnalysis(HydrologyDCInefficientAnalysisEnum));4619 4616 if(serial_active[node->Sid()]==1.){ 4620 4617 node->Activate(); … … 4665 4662 for (int i=0;i<nodes->Size();i++){ 4666 4663 Node* node=xDynamicCast<Node*>(nodes->GetObjectByOffset(i)); 4667 _assert_(node->InAnalysis(L2ProjectionEPLAnalysisEnum));4668 4664 if(serial_active[node->Sid()]==1.){ 4669 4665 node->Activate(); -
issm/trunk-jpl/src/c/classes/Loads/Load.h
r23524 r23588 31 31 virtual void GetNodesSidList(int* sidlist)=0; 32 32 virtual int GetNumberOfNodes(void)=0; 33 virtual bool InAnalysis(int analysis_type)=0;34 33 virtual bool IsPenalty(void)=0; 35 34 virtual void PenaltyCreateJacobianMatrix(Matrix<IssmDouble>* Jff,IssmDouble kmax)=0; -
issm/trunk-jpl/src/c/classes/Loads/Moulin.cpp
r23532 r23588 219 219 220 220 return NUMVERTICES; 221 }222 /*}}}*/223 bool Moulin::InAnalysis(int in_analysis_type){/*{{{*/224 if (in_analysis_type==this->analysis_type)return true;225 else return false;226 221 } 227 222 /*}}}*/ -
issm/trunk-jpl/src/c/classes/Loads/Moulin.h
r23020 r23588 70 70 void GetNodesLidList(int* lidlist); 71 71 int GetNumberOfNodes(void); 72 bool InAnalysis(int analysis_type);73 72 bool IsPenalty(void); 74 73 void PenaltyCreateJacobianMatrix(Matrix<IssmDouble>* Jff,IssmDouble kmax){_error_("Not implemented yet");}; -
issm/trunk-jpl/src/c/classes/Loads/Neumannflux.cpp
r23532 r23588 246 246 247 247 return NUMNODES_BOUNDARY; 248 }249 /*}}}*/250 bool Neumannflux::InAnalysis(int in_analysis_type){/*{{{*/251 if (in_analysis_type==this->analysis_type) return true;252 else return false;253 248 } 254 249 /*}}}*/ -
issm/trunk-jpl/src/c/classes/Loads/Neumannflux.h
r23020 r23588 63 63 void GetNodesSidList(int* sidlist); 64 64 int GetNumberOfNodes(void); 65 bool InAnalysis(int analysis_type);66 65 bool IsPenalty(void); 67 66 void PenaltyCreateJacobianMatrix(Matrix<IssmDouble>* Jff,IssmDouble kmax){_error_("Not implemented yet");}; -
issm/trunk-jpl/src/c/classes/Loads/Numericalflux.cpp
r23532 r23588 345 345 } 346 346 347 }348 /*}}}*/349 bool Numericalflux::InAnalysis(int in_analysis_type){/*{{{*/350 if (in_analysis_type==this->analysis_type) return true;351 else return false;352 347 } 353 348 /*}}}*/ -
issm/trunk-jpl/src/c/classes/Loads/Numericalflux.h
r20827 r23588 64 64 void GetNodesSidList(int* sidlist); 65 65 int GetNumberOfNodes(void); 66 bool InAnalysis(int analysis_type);67 66 bool IsPenalty(void); 68 67 void PenaltyCreateJacobianMatrix(Matrix<IssmDouble>* Jff,IssmDouble kmax){_error_("Not implemented yet");}; -
issm/trunk-jpl/src/c/classes/Loads/Pengrid.cpp
r23532 r23588 217 217 218 218 return NUMVERTICES; 219 }220 /*}}}*/221 bool Pengrid::InAnalysis(int in_analysis_type){/*{{{*/222 if (in_analysis_type==this->analysis_type)return true;223 else return false;224 219 } 225 220 /*}}}*/ -
issm/trunk-jpl/src/c/classes/Loads/Pengrid.h
r23524 r23588 65 65 void GetNodesSidList(int* sidlist); 66 66 int GetNumberOfNodes(void); 67 bool InAnalysis(int analysis_type);68 67 bool IsPenalty(void); 69 68 void PenaltyCreateJacobianMatrix(Matrix<IssmDouble>* Jff,IssmDouble kmax){_error_("Not implemented yet");}; -
issm/trunk-jpl/src/c/classes/Loads/Penpair.cpp
r20827 r23588 165 165 166 166 return NUMVERTICES; 167 }168 /*}}}*/169 bool Penpair::InAnalysis(int in_analysis_type){/*{{{*/170 if (in_analysis_type==this->analysis_type)return true;171 else return false;172 167 } 173 168 /*}}}*/ -
issm/trunk-jpl/src/c/classes/Loads/Penpair.h
r20827 r23588 55 55 void GetNodesSidList(int* sidlist); 56 56 int GetNumberOfNodes(void); 57 bool InAnalysis(int analysis_type);58 57 bool IsPenalty(void); 59 58 void PenaltyCreateJacobianMatrix(Matrix<IssmDouble>* Jff,IssmDouble kmax); -
issm/trunk-jpl/src/c/classes/Loads/Riftfront.cpp
r23532 r23588 306 306 307 307 return NUMVERTICES; 308 }309 /*}}}*/310 bool Riftfront::InAnalysis(int in_analysis_type){/*{{{*/311 if (in_analysis_type==this->analysis_type) return true;312 else return false;313 308 } 314 309 /*}}}*/ -
issm/trunk-jpl/src/c/classes/Loads/Riftfront.h
r20827 r23588 81 81 void GetNodesSidList(int* sidlist); 82 82 int GetNumberOfNodes(void); 83 bool InAnalysis(int analysis_type);84 83 bool IsPenalty(void); 85 84 void PenaltyCreateJacobianMatrix(Matrix<IssmDouble>* Jff,IssmDouble kmax){_error_("Not implemented yet");}; -
issm/trunk-jpl/src/c/classes/Node.cpp
r23585 r23588 395 395 } 396 396 /*}}}*/ 397 bool Node::InAnalysis(int in_analysis_enum){/*{{{*/398 if (in_analysis_enum==this->analysis_enum) return true;399 else return false;400 }401 /*}}}*/402 397 int Node::Lid(void){/*{{{*/ 403 398 return lid; -
issm/trunk-jpl/src/c/classes/Node.h
r23585 r23588 68 68 int GetNumberOfDofs(int approximation_enum,int setenum); 69 69 void HardDeactivate(void); 70 bool InAnalysis(int analysis_enum);71 70 bool IsActive(void); 72 71 int IsClone(); -
issm/trunk-jpl/src/c/modules/ConfigureObjectsx/ConfigureObjectsx.cpp
r23490 r23588 30 30 for(i=0;i<loads->Size();i++){ 31 31 load=(Load*)loads->GetObjectByOffset(i); 32 _assert_(load->InAnalysis(configuration_type));33 32 load->Configure(elements,loads,nodes,vertices,materials,parameters); 34 33 } -
issm/trunk-jpl/src/c/modules/ConstraintsStatex/ConstraintsStatex.cpp
r23490 r23588 33 33 for(int i=0;i<femmodel->loads->Size();i++){ 34 34 Load* load=(Load*)femmodel->loads->GetObjectByOffset(i); 35 _assert_(load->InAnalysis(analysis_type));36 35 if(load->ObjectEnum()==PengridEnum){ 37 36 Pengrid* pengrid=(Pengrid*)load; -
issm/trunk-jpl/src/c/modules/ConstraintsStatex/RiftConstraintsState.cpp
r23490 r23588 20 20 for (i=0;i<loads->Size();i++){ 21 21 Load* load=(Load*)loads->GetObjectByOffset(i); 22 _assert_(load->InAnalysis(configuration_type));23 22 if(RiftfrontEnum==loads->GetEnum(i)){ 24 23 found=1; … … 76 75 77 76 load=(Load*)loads->GetObjectByOffset(i); 78 _assert_(load->InAnalysis(configuration_type));79 77 riftfront=(Riftfront*)load; 80 78 riftfront->Constrain(&unstable); … … 109 107 110 108 load=(Load*)loads->GetObjectByOffset(i); 111 _assert_(load->InAnalysis(configuration_type));112 109 riftfront=(Riftfront*)load; 113 110 if (riftfront->IsFrozen()){ … … 140 137 if (RiftfrontEnum==loads->GetEnum(i)){ 141 138 load=(Load*)loads->GetObjectByOffset(i); 142 _assert_(load->InAnalysis(configuration_type));143 139 riftfront=(Riftfront*)load; 144 140 riftfront->FreezeConstraints(); -
issm/trunk-jpl/src/c/modules/CreateJacobianMatrixx/CreateJacobianMatrixx.cpp
r23490 r23588 36 36 for (i=0;i<femmodel->loads->Size();i++){ 37 37 load=(Load*)femmodel->loads->GetObjectByOffset(i); 38 _assert_(load->InAnalysis(configuration_type));39 38 load->CreateJacobianMatrix(Jff); 40 39 load->PenaltyCreateJacobianMatrix(Jff,kmax); -
issm/trunk-jpl/src/c/modules/ResetConstraintsx/ResetConstraintsx.cpp
r23524 r23588 31 31 for(int i=0;i<femmodel->loads->Size();i++){ 32 32 Load* load=(Load*)femmodel->loads->GetObjectByOffset(i); 33 _assert_(load->InAnalysis(analysis_type));34 33 if(load->ObjectEnum()==PengridEnum){ 35 34 Pengrid* pengrid=(Pengrid*)load; -
issm/trunk-jpl/src/c/modules/UpdateDynamicConstraintsx/UpdateDynamicConstraintsx.cpp
r14999 r23588 20 20 21 21 for(int i=0;i<constraints->Size();i++){ 22 Constraint* constraint=(Constraint*)constraints->GetObjectByOffset(i); 23 ((SpcDynamic*)constraint)->SetDynamicConstraint(nodes,yg_serial); 22 24 23 Constraint* constraint=(Constraint*)constraints->GetObjectByOffset(i);24 25 /*Check this constraint belongs to this analysis: */26 if(constraint->InAnalysis(configuration_type) && constraint->ObjectEnum()==SpcDynamicEnum){27 28 ((SpcDynamic*)constraint)->SetDynamicConstraint(nodes,yg_serial);29 30 }31 25 } 32 26 -
issm/trunk-jpl/src/c/solutionsequences/solutionsequence_fct.cpp
r23066 r23588 105 105 for(int i=0;i<femmodel->constraints->Size();i++){ 106 106 Constraint* constraint=(Constraint*)femmodel->constraints->GetObjectByOffset(i); 107 if(constraint->InAnalysis(configuration_type)){ 108 constraint->PenaltyDofAndValue(&dof,&d,femmodel->nodes,femmodel->parameters); 109 if(dof!=-1){ 110 MatSetValue(LHS,dof,dof,dmax,INSERT_VALUES); 111 } 107 constraint->PenaltyDofAndValue(&dof,&d,femmodel->nodes,femmodel->parameters); 108 if(dof!=-1){ 109 MatSetValue(LHS,dof,dof,dmax,INSERT_VALUES); 112 110 } 113 111 } … … 151 149 for(int i=0;i<femmodel->constraints->Size();i++){ 152 150 Constraint* constraint=(Constraint*)femmodel->constraints->GetObjectByOffset(i); 153 if(constraint->InAnalysis(configuration_type)){ 154 constraint->PenaltyDofAndValue(&dof,&d,femmodel->nodes,femmodel->parameters); 155 d = d*dmax; 156 if(dof!=-1){ 157 VecSetValues(RHS,1,&dof,(const double*)&d,INSERT_VALUES); 158 } 151 constraint->PenaltyDofAndValue(&dof,&d,femmodel->nodes,femmodel->parameters); 152 d = d*dmax; 153 if(dof!=-1){ 154 VecSetValues(RHS,1,&dof,(const double*)&d,INSERT_VALUES); 159 155 } 160 156 }
Note:
See TracChangeset
for help on using the changeset viewer.