Changeset 137
- Timestamp:
- 04/29/09 15:41:31 (16 years ago)
- Location:
- issm/trunk/src
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/UpdateFromInputsx/UpdateFromInputsx.cpp
r8 r137 25 25 elements->Configure(elements,loads, nodes, materials); 26 26 loads->Configure(elements, loads, nodes, materials); 27 nodes->Configure(elements, loads, nodes, materials); 27 28 28 /*Update elements, loads and materials from inputs: */29 /*Update elements, nodes, loads and materials from inputs: */ 29 30 elements->UpdateFromInputs(inputs); 31 nodes->UpdateFromInputs(inputs); 30 32 loads->UpdateFromInputs(inputs); 31 33 materials->UpdateFromInputs(inputs); 32 nodes->UpdateFromInputs(inputs);33 34 34 35 return noerr; -
issm/trunk/src/c/objects/Icefront.cpp
r93 r137 550 550 #define __FUNCT__ "Icefront::UpdateFromInputs" 551 551 void Icefront::UpdateFromInputs(ParameterInputs* inputs){ 552 552 553 int i; 554 int doflist0[MAXDOFSPERNODE]; 555 int doflist1[MAXDOFSPERNODE]; 556 int doflist2[MAXDOFSPERNODE]; 557 int doflist3[MAXDOFSPERNODE]; 558 int numberofdofspernode; 559 560 /*element: */ 561 double* h_param=NULL; 562 double* b_param=NULL; 563 564 /*Get dof list: */ 565 nodes[0]->GetDofList(&doflist0[0],&numberofdofspernode); 566 nodes[1]->GetDofList(&doflist1[0],&numberofdofspernode); 567 if(strcmp(type,"quad")){ 568 nodes[2]->GetDofList(&doflist2[0],&numberofdofspernode); 569 nodes[3]->GetDofList(&doflist3[0],&numberofdofspernode); 570 } 571 572 /*Update internal data if inputs holds new values: */ 573 h_param=ParameterInputsRecover(inputs,"thickness"); 574 b_param=ParameterInputsRecover(inputs,"bed"); 575 576 if(h_param){ 577 h[0]=h_param[doflist0[0]]; 578 h[1]=h_param[doflist1[0]]; 579 if(strcmp(type,"quad")){ 580 h[2]=h_param[doflist2[0]]; 581 h[3]=h_param[doflist3[0]]; 582 } 583 } 584 585 if(b_param){ 586 b[0]=b_param[doflist0[0]]; 587 b[1]=b_param[doflist1[0]]; 588 if(strcmp(type,"quad")){ 589 b[2]=b_param[doflist2[0]]; 590 b[3]=b_param[doflist3[0]]; 591 } 592 } 593 553 594 } 554 595 -
issm/trunk/src/c/objects/Node.cpp
r95 r137 434 434 void Node::UpdateFromInputs(ParameterInputs* inputs){ 435 435 436 //throw ErrorException(__FUNCT__," not supported yet!"); 436 int doflist[MAXDOFSPERNODE*3]; 437 int numberofdofspernode; 438 439 /*element: */ 440 double* x_param=NULL; 441 double* y_param=NULL; 442 double* z_param=NULL; 443 444 /*Get dof list: */ 445 GetDofList(&doflist[0],&numberofdofspernode); 446 447 /*Update internal data if inputs holds new values: */ 448 x_param=ParameterInputsRecover(inputs,"x"); 449 y_param=ParameterInputsRecover(inputs,"y"); 450 z_param=ParameterInputsRecover(inputs,"z"); 451 452 if(x_param)x[0]=x_param[doflist[0]]; 453 if(y_param)x[1]=y_param[doflist[0]]; 454 if(y_param)x[2]=z_param[doflist[0]]; 437 455 438 456 } -
issm/trunk/src/c/objects/Penta.cpp
r128 r137 716 716 int numberofdofspernode; 717 717 718 double* thickness=NULL; 719 double* bed=NULL; 720 double* surface=NULL; 721 double* drag=NULL; 718 /*element: */ 719 double* h_param=NULL; 720 double* s_param=NULL; 721 double* b_param=NULL; 722 double* k_param=NULL; 723 double* melting_param=NULL; 724 double* accumulation_param=NULL; 725 726 /*material: */ 722 727 double* temperature_average_param=NULL; 723 double* flow_law_param=NULL; 724 double temperature_average; 725 double B_average; 726 728 double temperature_average; 729 double* B_param=NULL; 730 double B_average; 727 731 728 732 … … 731 735 732 736 /*Update internal data if inputs holds new values: */ 733 thickness=ParameterInputsRecover(inputs,"thickness"); 734 bed=ParameterInputsRecover(inputs,"bed"); 735 surface=ParameterInputsRecover(inputs,"surface"); 736 drag=ParameterInputsRecover(inputs,"drag"); 737 738 for(i=0;i<5;i++){ 739 if(thickness)h[i]=thickness[doflist[i*numberofdofspernode+0]]; 740 if(bed)b[i]=bed[doflist[i*numberofdofspernode+0]]; 741 if(surface)s[i]=surface[doflist[i*numberofdofspernode+0]]; 742 if(drag)k[i]=drag[doflist[i*numberofdofspernode+0]]; 737 h_param=ParameterInputsRecover(inputs,"thickness"); 738 s_param=ParameterInputsRecover(inputs,"surface"); 739 b_param=ParameterInputsRecover(inputs,"bed"); 740 k_param=ParameterInputsRecover(inputs,"drag"); 741 melting_param=ParameterInputsRecover(inputs,"melting"); 742 accumulation_param=ParameterInputsRecover(inputs,"accumulation"); 743 744 for(i=0;i<6;i++){ 745 if(h_param)h[i]=h_param[doflist[i*numberofdofspernode+0]]; 746 if(s_param)s[i]=s_param[doflist[i*numberofdofspernode+0]]; 747 if(b_param)b[i]=b_param[doflist[i*numberofdofspernode+0]]; 748 if(k_param)k[i]=k_param[doflist[i*numberofdofspernode+0]]; 749 if(melting_param)melting[i]=melting_param[doflist[i*numberofdofspernode+0]]; 750 if(accumulation_param)accumulation[i]=accumulation_param[doflist[i*numberofdofspernode+0]]; 743 751 } 744 752 745 753 //Update material if necessary 746 754 temperature_average_param=ParameterInputsRecover(inputs,"temperature_average"); 747 flow_law_param=ParameterInputsRecover(inputs,"B");755 B_param=ParameterInputsRecover(inputs,"B"); 748 756 if(temperature_average_param){ 749 for(i=0;i< 3;i++) temperature_average+=temperature_average_param[doflist[i*numberofdofspernode+0]];750 temperature_average=temperature_average/ 3.0;757 for(i=0;i<6;i++) temperature_average+=temperature_average_param[doflist[i*numberofdofspernode+0]]; 758 temperature_average=temperature_average/6.0; 751 759 B_average=Paterson(temperature_average); 752 760 matice->SetB(B_average); 753 761 } 754 762 755 //Update material if B is provided. 756 if(flow_law_param){ 757 for(i=0;i<3;i++) B_average+=flow_law_param[doflist[i*numberofdofspernode+0]]; 758 B_average=B_average/3.0; 763 if(B_param){ 764 for(i=0;i<6;i++) B_average+=B_param[doflist[i*numberofdofspernode+0]]; 765 B_average=B_average/6.0; 759 766 matice->SetB(B_average); 760 767 } 761 768 762 769 } 763 770 764 771 Matpar* Penta::GetMatPar(){ 765 772 return matpar; -
issm/trunk/src/c/objects/Tria.cpp
r128 r137 883 883 int numberofdofspernode; 884 884 885 double* thickness=NULL; 886 double* bed=NULL; 887 double* surface=NULL; 888 double* drag=NULL; 885 /*element: */ 886 double* h_param=NULL; 887 double* s_param=NULL; 888 double* b_param=NULL; 889 double* k_param=NULL; 890 double* melting_param=NULL; 891 double* accumulation_param=NULL; 892 893 /*material: */ 889 894 double* temperature_average_param=NULL; 890 double* flow_law_param=NULL; 891 double temperature_average; 892 double B_average; 893 895 double temperature_average; 896 double* B_param=NULL; 897 double B_average; 894 898 895 899 … … 898 902 899 903 /*Update internal data if inputs holds new values: */ 900 thickness=ParameterInputsRecover(inputs,"thickness"); 901 bed=ParameterInputsRecover(inputs,"bed"); 902 surface=ParameterInputsRecover(inputs,"surface"); 903 drag=ParameterInputsRecover(inputs,"drag"); 904 h_param=ParameterInputsRecover(inputs,"thickness"); 905 s_param=ParameterInputsRecover(inputs,"surface"); 906 b_param=ParameterInputsRecover(inputs,"bed"); 907 k_param=ParameterInputsRecover(inputs,"drag"); 908 melting_param=ParameterInputsRecover(inputs,"melting"); 909 accumulation_param=ParameterInputsRecover(inputs,"accumulation"); 904 910 905 911 for(i=0;i<3;i++){ 906 if(thickness)h[i]=thickness[doflist[i*numberofdofspernode+0]]; 907 if(bed)b[i]=bed[doflist[i*numberofdofspernode+0]]; 908 if(surface)s[i]=surface[doflist[i*numberofdofspernode+0]]; 909 if(drag)k[i]=drag[doflist[i*numberofdofspernode+0]]; 912 if(h_param)h[i]=h_param[doflist[i*numberofdofspernode+0]]; 913 if(s_param)s[i]=s_param[doflist[i*numberofdofspernode+0]]; 914 if(b_param)b[i]=b_param[doflist[i*numberofdofspernode+0]]; 915 if(k_param)k[i]=k_param[doflist[i*numberofdofspernode+0]]; 916 if(melting_param)melting[i]=melting_param[doflist[i*numberofdofspernode+0]]; 917 if(accumulation_param)accumulation[i]=accumulation_param[doflist[i*numberofdofspernode+0]]; 910 918 } 911 919 912 920 //Update material if necessary 913 921 temperature_average_param=ParameterInputsRecover(inputs,"temperature_average"); 914 flow_law_param=ParameterInputsRecover(inputs,"B");922 B_param=ParameterInputsRecover(inputs,"B"); 915 923 if(temperature_average_param){ 916 924 for(i=0;i<3;i++) temperature_average+=temperature_average_param[doflist[i*numberofdofspernode+0]]; … … 920 928 } 921 929 922 //Update material if B is provided. 923 if(flow_law_param){ 924 for(i=0;i<3;i++) B_average+=flow_law_param[doflist[i*numberofdofspernode+0]]; 930 if(B_param){ 931 for(i=0;i<3;i++) B_average+=B_param[doflist[i*numberofdofspernode+0]]; 925 932 B_average=B_average/3.0; 926 933 matice->SetB(B_average); -
issm/trunk/src/m/solutions/cielo/control.m
r8 r137 29 29 eval(['inputs.' m.parameters.control_type '=p_g;']); 30 30 inputs.fit=m.parameters.fit(n); 31 32 %Update inputs in datasets 33 [m.elements,m.nodes, loads,m.materials]=UpdateFromInputs(m.elements,m.nodes, loads,m.materials,inputs); 31 34 32 35 disp(' computing gradJ...'); -
issm/trunk/src/m/solutions/cielo/diagnostic_core_linear.m
r128 r137 7 7 %stiffness and load generation only: 8 8 m.parameters.kflag=1; m.parameters.pflag=1; 9 10 %Update inputs in datasets 11 [m.elements,m.nodes, m.loads,m.materials]=UpdateFromInputs(m.elements,m.nodes, m.loads,m.materials,inputs); 9 12 10 13 %system matrices
Note:
See TracChangeset
for help on using the changeset viewer.