Changeset 17967
- Timestamp:
- 05/09/14 08:25:21 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified issm/trunk-jpl/src/c/classes/Elements/Penta.cpp ¶
r17943 r17967 20 20 21 21 /*Constructors/destructor/copy*/ 22 /*FUNCTION Penta::~Penta(){{{*/ 23 Penta::~Penta(){ 22 Penta::~Penta(){/*{{{*/ 24 23 this->parameters=NULL; 25 24 } 26 25 /*}}}*/ 27 /*FUNCTION Penta::Penta(int id, int index, IoModel* iomodel,int nummodels) {{{*/ 28 Penta::Penta(int penta_id, int penta_sid, int index, IoModel* iomodel,int nummodels) 26 Penta::Penta(int penta_id, int penta_sid, int index, IoModel* iomodel,int nummodels)/*{{{*/ 29 27 :PentaRef(nummodels) 30 28 ,ElementHook(nummodels,index+1,NUMVERTICES,iomodel){ … … 61 59 } 62 60 /*}}}*/ 63 /*FUNCTION Penta::copy {{{*/ 64 Object* Penta::copy() { 61 Object* Penta::copy() {/*{{{*/ 65 62 66 63 int i; … … 108 105 109 106 /*Other*/ 110 /*FUNCTION Penta::AddInput{{{*/ 111 void Penta::AddInput(int input_enum,IssmDouble* values, int interpolation_enum){ 107 void Penta::AddInput(int input_enum,IssmDouble* values, int interpolation_enum){/*{{{*/ 112 108 113 109 _assert_(this->inputs); … … 115 111 } 116 112 /*}}}*/ 117 /*FUNCTION Penta::AddBasalInput{{{*/ 118 void Penta::AddBasalInput(int input_enum,IssmDouble* values, int interpolation_enum){ 113 void Penta::AddBasalInput(int input_enum,IssmDouble* values, int interpolation_enum){/*{{{*/ 119 114 120 115 _assert_(this->inputs); … … 141 136 } 142 137 /*}}}*/ 143 /*FUNCTION Penta::ComputeBasalStress {{{*/ 144 void Penta::ComputeBasalStress(Vector<IssmDouble>* sigma_b){ 138 void Penta::ComputeBasalStress(Vector<IssmDouble>* sigma_b){/*{{{*/ 145 139 146 140 int i,j; … … 229 223 } 230 224 /*}}}*/ 231 /*FUNCTION Penta::ComputeStrainRate {{{*/ 232 void Penta::ComputeStrainRate(){ 225 void Penta::ComputeStrainRate(){/*{{{*/ 233 226 234 227 IssmDouble xyz_list[NUMVERTICES][3]; … … 278 271 } 279 272 /*}}}*/ 280 /*FUNCTION Penta::ComputeStressTensor {{{*/ 281 void Penta::ComputeStressTensor(){ 273 void Penta::ComputeStressTensor(){/*{{{*/ 282 274 283 275 IssmDouble xyz_list[NUMVERTICES][3]; … … 332 324 } 333 325 /*}}}*/ 334 /*FUNCTION Penta::ComputeDeviatoricStressTensor {{{*/ 335 void Penta::ComputeDeviatoricStressTensor(){ 326 void Penta::ComputeDeviatoricStressTensor(){/*{{{*/ 336 327 337 328 IssmDouble xyz_list[NUMVERTICES][3]; … … 384 375 } 385 376 /*}}}*/ 386 /*FUNCTION Penta::Configure {{{*/ 387 void Penta::Configure(Elements* elementsin, Loads* loadsin, Nodes* nodesin,Vertices* verticesin, Materials* materialsin, Parameters* parametersin){ 377 void Penta::Configure(Elements* elementsin, Loads* loadsin, Nodes* nodesin,Vertices* verticesin, Materials* materialsin, Parameters* parametersin){/*{{{*/ 388 378 389 379 int analysis_counter; … … 418 408 } 419 409 /*}}}*/ 420 /*FUNCTION Penta::Delta18oParameterization{{{*/ 421 void Penta::Delta18oParameterization(void){ 410 void Penta::Delta18oParameterization(void){/*{{{*/ 422 411 423 412 /*Are we on the base? If not, return*/ … … 493 482 } 494 483 /*}}}*/ 495 /*FUNCTION Penta::FiniteElement{{{*/ 496 int Penta::FiniteElement(void){ 484 int Penta::FiniteElement(void){/*{{{*/ 497 485 return this->element_type; 498 486 } 499 487 /*}}}*/ 500 /*FUNCTION Penta::FSContactMigration{{{*/ 501 void Penta::FSContactMigration(Vector<IssmDouble>* vertexgrounded,Vector<IssmDouble>* vertexfloating){ 488 void Penta::FSContactMigration(Vector<IssmDouble>* vertexgrounded,Vector<IssmDouble>* vertexfloating){/*{{{*/ 502 489 503 490 if(!IsOnBase()) return; … … 580 567 } 581 568 /*}}}*/ 582 /*FUNCTION Penta::ObjectEnum{{{*/ 583 int Penta::ObjectEnum(void){ 569 int Penta::ObjectEnum(void){/*{{{*/ 584 570 585 571 return PentaEnum; … … 587 573 } 588 574 /*}}}*/ 589 /*FUNCTION Penta::GetAreaCoordinates{{{*/ 590 void Penta::GetAreaCoordinates(IssmDouble* area_coordinates,IssmDouble* xyz_zero,IssmDouble* xyz_list,int numpoints){ 575 void Penta::GetAreaCoordinates(IssmDouble* area_coordinates,IssmDouble* xyz_zero,IssmDouble* xyz_list,int numpoints){/*{{{*/ 591 576 /*Computeportion of the element that is grounded*/ 592 577 … … 623 608 } 624 609 /*}}}*/ 625 /*FUNCTION Penta::GetUpperPenta{{{*/ 626 Penta* Penta::GetUpperPenta(void){ 610 Penta* Penta::GetUpperPenta(void){/*{{{*/ 627 611 628 612 Penta* upper_penta=NULL; … … 633 617 } 634 618 /*}}}*/ 635 /*FUNCTION Penta::GetLowerPenta{{{*/ 636 Penta* Penta::GetLowerPenta(void){ 619 Penta* Penta::GetLowerPenta(void){/*{{{*/ 637 620 638 621 Penta* lower_penta=NULL; … … 643 626 } 644 627 /*}}}*/ 645 /*FUNCTION Penta::GetSurfacePenta{{{*/ 646 Penta* Penta::GetSurfacePenta(void){ 628 Penta* Penta::GetSurfacePenta(void){/*{{{*/ 647 629 648 630 /*Output*/ … … 664 646 } 665 647 /*}}}*/ 666 /*FUNCTION Penta::GetBasalPenta{{{*/ 667 Penta* Penta::GetBasalPenta(void){ 648 Penta* Penta::GetBasalPenta(void){/*{{{*/ 668 649 669 650 /*Output*/ … … 685 666 } 686 667 /*}}}*/ 687 /*FUNCTION Penta::GetUpperElement{{{*/ 688 Element* Penta::GetUpperElement(void){ 668 Element* Penta::GetUpperElement(void){/*{{{*/ 689 669 690 670 /*Output*/ … … 693 673 } 694 674 /*}}}*/ 695 /*FUNCTION Penta::GetBasalElement{{{*/ 696 Element* Penta::GetBasalElement(void){ 675 Element* Penta::GetBasalElement(void){/*{{{*/ 697 676 698 677 /*Output*/ … … 701 680 } 702 681 /*}}}*/ 703 /*FUNCTION Penta::GetGroundedPart{{{*/ 704 void Penta::GetGroundedPart(int* point1,IssmDouble* fraction1,IssmDouble* fraction2, bool* mainlyfloating){ 682 void Penta::GetGroundedPart(int* point1,IssmDouble* fraction1,IssmDouble* fraction2, bool* mainlyfloating){/*{{{*/ 705 683 /*Computeportion of the element that is grounded*/ 706 684 … … 755 733 } 756 734 /*}}}*/ 757 /*FUNCTION Penta::GetGroundedPortion{{{*/ 758 IssmDouble Penta::GetGroundedPortion(IssmDouble* xyz_list){ 735 IssmDouble Penta::GetGroundedPortion(IssmDouble* xyz_list){/*{{{*/ 759 736 /*Computeportion of the element that is grounded*/ 760 737 … … 857 834 } 858 835 /*}}}*/ 859 /*FUNCTION Penta::GetElementType {{{*/ 860 int Penta::GetElementType(){ 836 int Penta::GetElementType(){/*{{{*/ 861 837 862 838 /*return PentaRef field*/ … … 864 840 } 865 841 /*}}}*/ 866 /*FUNCTION Penta::ElementSizes{{{*/ 867 void Penta::ElementSizes(IssmDouble* hx,IssmDouble* hy,IssmDouble* hz){ 842 void Penta::ElementSizes(IssmDouble* hx,IssmDouble* hy,IssmDouble* hz){/*{{{*/ 868 843 869 844 IssmDouble xyz_list[NUMVERTICES][3]; … … 891 866 } 892 867 /*}}}*/ 893 /*FUNCTION Penta::GetNodeIndex {{{*/ 894 int Penta::GetNodeIndex(Node* node){ 868 int Penta::GetNodeIndex(Node* node){/*{{{*/ 895 869 896 870 _assert_(nodes); … … 904 878 } 905 879 /*}}}*/ 906 /*FUNCTION Penta::GetNumberOfNodes;{{{*/ 907 int Penta::GetNumberOfNodes(void){ 880 int Penta::GetNumberOfNodes(void){/*{{{*/ 908 881 return this->NumberofNodes(); 909 882 } 910 883 /*}}}*/ 911 /*FUNCTION Penta::GetNumberOfVertices;{{{*/ 912 int Penta::GetNumberOfVertices(void){ 884 int Penta::GetNumberOfVertices(void){/*{{{*/ 913 885 return NUMVERTICES; 914 886 } 915 887 /*}}}*/ 916 /*FUNCTION Penta::GetNode(int node_number) {{{*/ 917 Node* Penta::GetNode(int node_number){ 888 Node* Penta::GetNode(int node_number){/*{{{*/ 918 889 _assert_(node_number>=0); 919 890 _assert_(node_number<this->NumberofNodes()); … … 921 892 } 922 893 /*}}}*/ 923 /*FUNCTION Penta::GetInputValue(IssmDouble* pvalue,Node* node,int enumtype) {{{*/ 924 void Penta::GetInputValue(IssmDouble* pvalue,Node* node,int enumtype){ 894 void Penta::GetInputValue(IssmDouble* pvalue,Node* node,int enumtype){/*{{{*/ 925 895 926 896 Input* input=inputs->GetInput(enumtype); … … 934 904 } 935 905 /*}}}*/ 936 /*FUNCTION Penta::GetVerticesCoordinatesBase(IssmDouble** pxyz_list){{{*/ 937 void Penta::GetVerticesCoordinatesBase(IssmDouble** pxyz_list){ 906 void Penta::GetVerticesCoordinatesBase(IssmDouble** pxyz_list){/*{{{*/ 938 907 939 908 IssmDouble* xyz_list = xNew<IssmDouble>(NUMVERTICES2D*3); … … 944 913 945 914 }/*}}}*/ 946 /*FUNCTION Penta::GetVerticesCoordinatesTop(IssmDouble** pxyz_list){{{*/ 947 void Penta::GetVerticesCoordinatesTop(IssmDouble** pxyz_list){ 915 void Penta::GetVerticesCoordinatesTop(IssmDouble** pxyz_list){/*{{{*/ 948 916 949 917 IssmDouble* xyz_list = xNew<IssmDouble>(NUMVERTICES2D*3); … … 954 922 955 923 }/*}}}*/ 956 /*FUNCTION Penta::NormalSection{{{*/ 957 void Penta::NormalSection(IssmDouble* normal,IssmDouble* xyz_list){ 924 void Penta::NormalSection(IssmDouble* normal,IssmDouble* xyz_list){/*{{{*/ 958 925 959 926 /*Build unit outward pointing vector*/ … … 975 942 } 976 943 /*}}}*/ 977 /*FUNCTION Penta::StabilizationParameter {{{*/ 978 IssmDouble Penta::StabilizationParameter(IssmDouble u, IssmDouble v, IssmDouble w, IssmDouble diameter, IssmDouble kappa){ 944 IssmDouble Penta::StabilizationParameter(IssmDouble u, IssmDouble v, IssmDouble w, IssmDouble diameter, IssmDouble kappa){/*{{{*/ 979 945 /*Compute stabilization parameter*/ 980 946 /*kappa=thermalconductivity/(rho_ice*hearcapacity) for thermal model*/ … … 993 959 } 994 960 /*}}}*/ 995 /*FUNCTION Penta::ZeroLevelsetCoordinates{{{*/ 996 void Penta::ZeroLevelsetCoordinates(IssmDouble** pxyz_zero,IssmDouble* xyz_list,int levelsetenum){ 961 void Penta::ZeroLevelsetCoordinates(IssmDouble** pxyz_zero,IssmDouble* xyz_list,int levelsetenum){/*{{{*/ 997 962 /*Compute portion of the element that is grounded*/ 998 963 … … 1149 1114 } 1150 1115 /*}}}*/ 1151 /*FUNCTION Penta::InputDepthAverageAtBase{{{*/ 1152 void Penta::InputDepthAverageAtBase(int enum_type,int average_enum_type){ 1116 void Penta::InputDepthAverageAtBase(int enum_type,int average_enum_type){/*{{{*/ 1153 1117 1154 1118 int step,i; … … 1251 1215 } 1252 1216 /*}}}*/ 1253 /*FUNCTION Penta::InputExtrude {{{*/ 1254 void Penta::InputExtrude(int enum_type){ 1217 void Penta::InputExtrude(int enum_type){/*{{{*/ 1255 1218 1256 1219 int i,num_inputs; … … 1295 1258 } 1296 1259 /*}}}*/ 1297 /*FUNCTION Penta::InputScale{{{*/ 1298 void Penta::InputScale(int enum_type,IssmDouble scale_factor){ 1260 void Penta::InputScale(int enum_type,IssmDouble scale_factor){/*{{{*/ 1299 1261 1300 1262 Input* input=NULL; … … 1308 1270 } 1309 1271 /*}}}*/ 1310 /*FUNCTION Penta::InputUpdateFromIoModel {{{*/ 1311 void Penta::InputUpdateFromIoModel(int index,IoModel* iomodel){ 1272 void Penta::InputUpdateFromIoModel(int index,IoModel* iomodel){ /*{{{*/ 1312 1273 1313 1274 /*Intermediaries*/ … … 1405 1366 } 1406 1367 /*}}}*/ 1407 /*FUNCTION Penta::InputUpdateFromSolutionOneDof{{{*/ 1408 void Penta::InputUpdateFromSolutionOneDof(IssmDouble* solution,int enum_type){ 1368 void Penta::InputUpdateFromSolutionOneDof(IssmDouble* solution,int enum_type){/*{{{*/ 1409 1369 1410 1370 /*Intermediary*/ … … 1432 1392 } 1433 1393 /*}}}*/ 1434 /*FUNCTION Penta::InputUpdateFromSolutionOneDofCollpased{{{*/ 1435 void Penta::InputUpdateFromSolutionOneDofCollapsed(IssmDouble* solution,int enum_type){ 1394 void Penta::InputUpdateFromSolutionOneDofCollapsed(IssmDouble* solution,int enum_type){/*{{{*/ 1436 1395 1437 1396 const int numdof = NDOF1*NUMVERTICES; … … 1472 1431 } 1473 1432 /*}}}*/ 1474 /*FUNCTION Penta::InputUpdateFromVector(IssmDouble* vector, int name, int type);{{{*/ 1475 void Penta::InputUpdateFromVector(IssmDouble* vector, int name, int type){ 1433 void Penta::InputUpdateFromVector(IssmDouble* vector, int name, int type){/*{{{*/ 1476 1434 1477 1435 const int numdof = NDOF1 *NUMVERTICES; … … 1532 1490 } 1533 1491 /*}}}*/ 1534 /*FUNCTION Penta::IsOnBase{{{*/ 1535 bool Penta::IsOnBase(void){ 1492 bool Penta::IsOnBase(void){/*{{{*/ 1536 1493 1537 1494 IssmDouble values[NUMVERTICES]; … … 1551 1508 } 1552 1509 /*}}}*/ 1553 /*FUNCTION Penta::IsOnSurface{{{*/ 1554 bool Penta::IsOnSurface(void){ 1510 bool Penta::IsOnSurface(void){/*{{{*/ 1555 1511 1556 1512 IssmDouble values[NUMVERTICES]; … … 1570 1526 } 1571 1527 /*}}}*/ 1572 /*FUNCTION Penta::IsNodeOnShelfFromFlags {{{*/ 1573 bool Penta::IsNodeOnShelfFromFlags(IssmDouble* flags){ 1528 bool Penta::IsNodeOnShelfFromFlags(IssmDouble* flags){/*{{{*/ 1574 1529 1575 1530 int i; … … 1585 1540 } 1586 1541 /*}}}*/ 1587 /*FUNCTION Penta::JacobianDeterminant{{{*/ 1588 void Penta::JacobianDeterminant(IssmDouble* pJdet,IssmDouble* xyz_list,Gauss* gauss){ 1542 void Penta::JacobianDeterminant(IssmDouble* pJdet,IssmDouble* xyz_list,Gauss* gauss){/*{{{*/ 1589 1543 1590 1544 _assert_(gauss->Enum()==GaussPentaEnum); … … 1593 1547 } 1594 1548 /*}}}*/ 1595 /*FUNCTION Penta::JacobianDeterminantBase{{{*/ 1596 void Penta::JacobianDeterminantBase(IssmDouble* pJdet,IssmDouble* xyz_list_base,Gauss* gauss){ 1549 void Penta::JacobianDeterminantBase(IssmDouble* pJdet,IssmDouble* xyz_list_base,Gauss* gauss){/*{{{*/ 1597 1550 1598 1551 _assert_(gauss->Enum()==GaussPentaEnum); … … 1601 1554 } 1602 1555 /*}}}*/ 1603 /*FUNCTION Penta::JacobianDeterminantLine{{{*/ 1604 void Penta::JacobianDeterminantLine(IssmDouble* pJdet,IssmDouble* xyz_list_line,Gauss* gauss){ 1556 void Penta::JacobianDeterminantLine(IssmDouble* pJdet,IssmDouble* xyz_list_line,Gauss* gauss){/*{{{*/ 1605 1557 1606 1558 _assert_(gauss->Enum()==GaussPentaEnum); … … 1609 1561 } 1610 1562 /*}}}*/ 1611 /*FUNCTION Penta::JacobianDeterminantTop{{{*/ 1612 void Penta::JacobianDeterminantTop(IssmDouble* pJdet,IssmDouble* xyz_list_top,Gauss* gauss){ 1563 void Penta::JacobianDeterminantTop(IssmDouble* pJdet,IssmDouble* xyz_list_top,Gauss* gauss){/*{{{*/ 1613 1564 1614 1565 _assert_(gauss->Enum()==GaussPentaEnum); … … 1617 1568 } 1618 1569 /*}}}*/ 1619 /*FUNCTION Penta::JacobianDeterminantSurface{{{*/ 1620 void Penta::JacobianDeterminantSurface(IssmDouble* pJdet,IssmDouble* xyz_list_quad,Gauss* gauss){ 1570 void Penta::JacobianDeterminantSurface(IssmDouble* pJdet,IssmDouble* xyz_list_quad,Gauss* gauss){/*{{{*/ 1621 1571 1622 1572 _assert_(gauss->Enum()==GaussPentaEnum); … … 1625 1575 } 1626 1576 /*}}}*/ 1627 /*FUNCTION Penta::MinEdgeLength{{{*/ 1628 IssmDouble Penta::MinEdgeLength(IssmDouble* xyz_list){ 1577 IssmDouble Penta::MinEdgeLength(IssmDouble* xyz_list){/*{{{*/ 1629 1578 /*Return the minimum lenght of the nine egdes of the penta*/ 1630 1579 … … 1647 1596 } 1648 1597 /*}}}*/ 1649 /*FUNCTION Penta::NodalValue {{{*/ 1650 int Penta::NodalValue(IssmDouble* pvalue, int index, int natureofdataenum){ 1598 int Penta::NodalValue(IssmDouble* pvalue, int index, int natureofdataenum){/*{{{*/ 1651 1599 1652 1600 int i; … … 1679 1627 } 1680 1628 /*}}}*/ 1681 /*FUNCTION Penta::NewGauss(){{{*/ 1682 Gauss* Penta::NewGauss(void){ 1629 Gauss* Penta::NewGauss(void){/*{{{*/ 1683 1630 return new GaussPenta(); 1684 1631 } 1685 1632 /*}}}*/ 1686 /*FUNCTION Penta::NewGauss(int order){{{*/ 1687 Gauss* Penta::NewGauss(int order){ 1633 Gauss* Penta::NewGauss(int order){/*{{{*/ 1688 1634 return new GaussPenta(order,order); 1689 1635 } 1690 1636 /*}}}*/ 1691 /*FUNCTION Penta::NewGauss(IssmDouble* xyz_list, IssmDouble* xyz_list_front,int order_horiz,int order_vert){{{*/ 1692 Gauss* Penta::NewGauss(IssmDouble* xyz_list, IssmDouble* xyz_list_front,int order_horiz,int order_vert){ 1637 Gauss* Penta::NewGauss(IssmDouble* xyz_list, IssmDouble* xyz_list_front,int order_horiz,int order_vert){/*{{{*/ 1693 1638 1694 1639 IssmDouble area_coordinates[4][3]; … … 1699 1644 } 1700 1645 /*}}}*/ 1701 /*FUNCTION Penta::NewGaussBase(int order){{{*/ 1702 Gauss* Penta::NewGaussBase(int order){ 1646 Gauss* Penta::NewGaussBase(int order){/*{{{*/ 1703 1647 return new GaussPenta(0,1,2,order); 1704 1648 } 1705 1649 /*}}}*/ 1706 /*FUNCTION Penta::NewGaussLine(int vertex1,int vertex2,int order){{{*/ 1707 Gauss* Penta::NewGaussLine(int vertex1,int vertex2,int order){ 1650 Gauss* Penta::NewGaussLine(int vertex1,int vertex2,int order){/*{{{*/ 1708 1651 return new GaussPenta(vertex1,vertex2,order); 1709 1652 } 1710 1653 /*}}}*/ 1711 /*FUNCTION Penta::NewGaussTop(int order){{{*/ 1712 Gauss* Penta::NewGaussTop(int order){ 1654 Gauss* Penta::NewGaussTop(int order){/*{{{*/ 1713 1655 return new GaussPenta(3,4,5,order); 1714 1656 } 1715 1657 /*}}}*/ 1716 /*FUNCTION Penta::NodalFunctions{{{*/ 1717 void Penta::NodalFunctions(IssmDouble* basis, Gauss* gauss){ 1658 void Penta::NodalFunctions(IssmDouble* basis, Gauss* gauss){/*{{{*/ 1718 1659 1719 1660 _assert_(gauss->Enum()==GaussPentaEnum); … … 1722 1663 } 1723 1664 /*}}}*/ 1724 /*FUNCTION Penta::NodalFunctionsP1{{{*/ 1725 void Penta::NodalFunctionsP1(IssmDouble* basis, Gauss* gauss){ 1665 void Penta::NodalFunctionsP1(IssmDouble* basis, Gauss* gauss){/*{{{*/ 1726 1666 1727 1667 _assert_(gauss->Enum()==GaussPentaEnum); … … 1730 1670 } 1731 1671 /*}}}*/ 1732 /*FUNCTION Penta::NodalFunctionsDerivatives{{{*/ 1733 void Penta::NodalFunctionsDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list,Gauss* gauss){ 1672 void Penta::NodalFunctionsDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list,Gauss* gauss){/*{{{*/ 1734 1673 1735 1674 _assert_(gauss->Enum()==GaussPentaEnum); … … 1738 1677 } 1739 1678 /*}}}*/ 1740 /*FUNCTION Penta::NodalFunctionsP1Derivatives{{{*/ 1741 void Penta::NodalFunctionsP1Derivatives(IssmDouble* dbasis,IssmDouble* xyz_list,Gauss* gauss){ 1679 void Penta::NodalFunctionsP1Derivatives(IssmDouble* dbasis,IssmDouble* xyz_list,Gauss* gauss){/*{{{*/ 1742 1680 1743 1681 _assert_(gauss->Enum()==GaussPentaEnum); … … 1746 1684 } 1747 1685 /*}}}*/ 1748 /*FUNCTION Penta::NodalFunctionsMINIDerivatives{{{*/ 1749 void Penta::NodalFunctionsMINIDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list,Gauss* gauss){ 1686 void Penta::NodalFunctionsMINIDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list,Gauss* gauss){/*{{{*/ 1750 1687 1751 1688 _assert_(gauss->Enum()==GaussPentaEnum); … … 1754 1691 } 1755 1692 /*}}}*/ 1756 /*FUNCTION Penta::NodalFunctionsDerivativesVelocity{{{*/ 1757 void Penta::NodalFunctionsDerivativesVelocity(IssmDouble* dbasis,IssmDouble* xyz_list,Gauss* gauss){ 1693 void Penta::NodalFunctionsDerivativesVelocity(IssmDouble* dbasis,IssmDouble* xyz_list,Gauss* gauss){/*{{{*/ 1758 1694 1759 1695 _assert_(gauss->Enum()==GaussPentaEnum); … … 1762 1698 } 1763 1699 /*}}}*/ 1764 /*FUNCTION Penta::NodalFunctionsVelocity{{{*/ 1765 void Penta::NodalFunctionsVelocity(IssmDouble* basis, Gauss* gauss){ 1700 void Penta::NodalFunctionsVelocity(IssmDouble* basis, Gauss* gauss){/*{{{*/ 1766 1701 1767 1702 _assert_(gauss->Enum()==GaussPentaEnum); … … 1770 1705 } 1771 1706 /*}}}*/ 1772 /*FUNCTION Penta::NodalFunctionsPressure{{{*/ 1773 void Penta::NodalFunctionsPressure(IssmDouble* basis, Gauss* gauss){ 1707 void Penta::NodalFunctionsPressure(IssmDouble* basis, Gauss* gauss){/*{{{*/ 1774 1708 1775 1709 _assert_(gauss->Enum()==GaussPentaEnum); … … 1778 1712 } 1779 1713 /*}}}*/ 1780 /*FUNCTION Penta::NodalFunctionsTensor{{{*/ 1781 void Penta::NodalFunctionsTensor(IssmDouble* basis, Gauss* gauss){ 1714 void Penta::NodalFunctionsTensor(IssmDouble* basis, Gauss* gauss){/*{{{*/ 1782 1715 1783 1716 _assert_(gauss->Enum()==GaussPentaEnum); … … 1786 1719 } 1787 1720 /*}}}*/ 1788 /*FUNCTION Penta::NormalBase {{{*/ 1789 void Penta::NormalBase(IssmDouble* bed_normal,IssmDouble* xyz_list){ 1721 void Penta::NormalBase(IssmDouble* bed_normal,IssmDouble* xyz_list){/*{{{*/ 1790 1722 1791 1723 IssmDouble v13[3],v23[3]; … … 1809 1741 } 1810 1742 /*}}}*/ 1811 /*FUNCTION Penta::NormalTop {{{*/ 1812 void Penta::NormalTop(IssmDouble* top_normal,IssmDouble* xyz_list){ 1743 void Penta::NormalTop(IssmDouble* top_normal,IssmDouble* xyz_list){/*{{{*/ 1813 1744 1814 1745 int i; … … 1832 1763 } 1833 1764 /*}}}*/ 1834 /*FUNCTION Penta::NumberofNodesPressure{{{*/ 1835 int Penta::NumberofNodesPressure(void){ 1765 int Penta::NumberofNodesPressure(void){/*{{{*/ 1836 1766 return PentaRef::NumberofNodes(this->PressureInterpolation()); 1837 1767 } 1838 1768 /*}}}*/ 1839 /*FUNCTION Penta::NumberofNodesVelocity{{{*/ 1840 int Penta::NumberofNodesVelocity(void){ 1769 int Penta::NumberofNodesVelocity(void){/*{{{*/ 1841 1770 return PentaRef::NumberofNodes(this->VelocityInterpolation()); 1842 1771 } 1843 1772 /*}}}*/ 1844 /*FUNCTION Penta::PositiveDegreeDay{{{*/ 1845 void Penta::PositiveDegreeDay(IssmDouble* pdds,IssmDouble* pds,IssmDouble signorm){ 1773 void Penta::PositiveDegreeDay(IssmDouble* pdds,IssmDouble* pds,IssmDouble signorm){/*{{{*/ 1846 1774 1847 1775 IssmDouble agd[NUMVERTICES]; // surface mass balance … … 1894 1822 } 1895 1823 /*}}}*/ 1896 /*FUNCTION Penta::ReduceMatrices{{{*/ 1897 void Penta::ReduceMatrices(ElementMatrix* Ke,ElementVector* pe){ 1824 void Penta::ReduceMatrices(ElementMatrix* Ke,ElementVector* pe){/*{{{*/ 1898 1825 1899 1826 int analysis_type; … … 1951 1878 } 1952 1879 /*}}}*/ 1953 /*FUNCTION Penta::ResetFSBasalBoundaryCondition{{{*/ 1954 void Penta::ResetFSBasalBoundaryCondition(void){ 1880 void Penta::ResetFSBasalBoundaryCondition(void){/*{{{*/ 1955 1881 1956 1882 int approximation; … … 2014 1940 } 2015 1941 /*}}}*/ 2016 /*FUNCTION Penta::SetClone {{{*/ 2017 void Penta::SetClone(int* minranks){ 1942 void Penta::SetClone(int* minranks){/*{{{*/ 2018 1943 2019 1944 _error_("not implemented yet"); 2020 1945 } 2021 1946 /*}}}*/ 2022 /*FUNCTION Penta::SetCurrentConfiguration {{{*/ 2023 void Penta::SetCurrentConfiguration(Elements* elementsin, Loads* loadsin, Nodes* nodesin, Materials* materialsin, Parameters* parametersin){ 1947 void Penta::SetCurrentConfiguration(Elements* elementsin, Loads* loadsin, Nodes* nodesin, Materials* materialsin, Parameters* parametersin){/*{{{*/ 2024 1948 2025 1949 /*go into parameters and get the analysis_counter: */ … … 2036 1960 } 2037 1961 /*}}}*/ 2038 /*FUNCTION Penta::SetTemporaryElementType{{{*/ 2039 void Penta::SetTemporaryElementType(int element_type_in){ 1962 void Penta::SetTemporaryElementType(int element_type_in){/*{{{*/ 2040 1963 this->element_type=element_type_in; 2041 1964 } 2042 1965 /*}}}*/ 2043 /*FUNCTION Penta::SpawnTria {{{*/ 2044 Tria* Penta::SpawnTria(int index1,int index2,int index3){ 1966 Tria* Penta::SpawnTria(int index1,int index2,int index3){/*{{{*/ 2045 1967 2046 1968 int analysis_counter; … … 2069 1991 } 2070 1992 /*}}}*/ 2071 /*FUNCTION Penta::SpawnBasalElement{{{*/ 2072 Element* Penta::SpawnBasalElement(void){ 1993 Element* Penta::SpawnBasalElement(void){/*{{{*/ 2073 1994 2074 1995 _assert_(this->IsOnBase()); … … 2087 2008 } 2088 2009 /*}}}*/ 2089 /*FUNCTION Penta::SpawnTopElement{{{*/ 2090 Element* Penta::SpawnTopElement(void){ 2010 Element* Penta::SpawnTopElement(void){/*{{{*/ 2091 2011 2092 2012 _assert_(this->IsOnSurface()); … … 2097 2017 } 2098 2018 /*}}}*/ 2099 /*FUNCTION Penta::SmbGradients{{{*/ 2100 void Penta::SmbGradients(void){ 2019 void Penta::SmbGradients(void){/*{{{*/ 2101 2020 2102 2021 int i; … … 2143 2062 } 2144 2063 /*}}}*/ 2145 /*FUNCTION Penta::SurfaceArea {{{*/ 2146 IssmDouble Penta::SurfaceArea(void){ 2064 IssmDouble Penta::SurfaceArea(void){/*{{{*/ 2147 2065 2148 2066 int approximation; … … 2180 2098 } 2181 2099 /*}}}*/ 2182 /*FUNCTION Penta::TimeAdapt{{{*/ 2183 IssmDouble Penta::TimeAdapt(void){ 2100 IssmDouble Penta::TimeAdapt(void){/*{{{*/ 2184 2101 2185 2102 int i; … … 2224 2141 return dt; 2225 2142 }/*}}}*/ 2226 /*FUNCTION Penta::Update {{{*/ 2227 void Penta::Update(int index,IoModel* iomodel,int analysis_counter,int analysis_type,int finiteelement_type){ 2143 void Penta::Update(int index,IoModel* iomodel,int analysis_counter,int analysis_type,int finiteelement_type){ /*{{{*/ 2228 2144 2229 2145 /*Intermediaries*/ … … 2531 2447 } 2532 2448 /*}}}*/ 2533 /*FUNCTION Penta::UpdateConstraintsExtrudeFromBase{{{*/ 2534 void Penta::UpdateConstraintsExtrudeFromBase(void){ 2449 void Penta::UpdateConstraintsExtrudeFromBase(void){/*{{{*/ 2535 2450 2536 2451 if(!IsOnBase()) return; … … 2556 2471 } 2557 2472 /*}}}*/ 2558 /*FUNCTION Penta::UpdateConstraintsExtrudeFromTop{{{*/ 2559 void Penta::UpdateConstraintsExtrudeFromTop(void){ 2473 void Penta::UpdateConstraintsExtrudeFromTop(void){/*{{{*/ 2560 2474 2561 2475 if(!IsOnSurface()) return; … … 2578 2492 } 2579 2493 /*}}}*/ 2580 /*FUNCTION Penta::ValueP1OnGauss{{{*/ 2581 void Penta::ValueP1OnGauss(IssmDouble* pvalue,IssmDouble* values,Gauss* gauss){ 2494 void Penta::ValueP1OnGauss(IssmDouble* pvalue,IssmDouble* values,Gauss* gauss){/*{{{*/ 2582 2495 PentaRef::GetInputValue(pvalue,values,gauss,P1Enum); 2583 2496 } 2584 2497 /*}}}*/ 2585 /*FUNCTION Penta::ValueP1DerivativesOnGauss{{{*/ 2586 void Penta::ValueP1DerivativesOnGauss(IssmDouble* dvalue,IssmDouble* values,IssmDouble* xyz_list,Gauss* gauss){ 2498 void Penta::ValueP1DerivativesOnGauss(IssmDouble* dvalue,IssmDouble* values,IssmDouble* xyz_list,Gauss* gauss){/*{{{*/ 2587 2499 PentaRef::GetInputDerivativeValue(dvalue,values,xyz_list,gauss); 2588 2500 } 2589 2501 /*}}}*/ 2590 /*FUNCTION Penta::VertexConnectivity{{{*/ 2591 int Penta::VertexConnectivity(int vertexindex){ 2502 int Penta::VertexConnectivity(int vertexindex){/*{{{*/ 2592 2503 _assert_(this->vertices); 2593 2504 return this->vertices[vertexindex]->Connectivity(); 2594 2505 } 2595 2506 /*}}}*/ 2596 /*FUNCTION Penta::VerticalSegmentIndices{{{*/ 2597 void Penta::VerticalSegmentIndices(int** pindices,int* pnumseg){ 2507 void Penta::VerticalSegmentIndices(int** pindices,int* pnumseg){/*{{{*/ 2598 2508 2599 2509 /*output*/ … … 2608 2518 } 2609 2519 /*}}}*/ 2610 /*FUNCTION Penta::ViscousHeating{{{*/ 2611 void Penta::ViscousHeating(IssmDouble* pphi,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input){ 2520 void Penta::ViscousHeating(IssmDouble* pphi,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input){/*{{{*/ 2612 2521 2613 2522 /*Intermediaries*/ … … 2625 2534 } 2626 2535 /*}}}*/ 2627 /*FUNCTION Penta::VelocityInterpolation{{{*/ 2628 int Penta::VelocityInterpolation(void){ 2536 int Penta::VelocityInterpolation(void){/*{{{*/ 2629 2537 return PentaRef::VelocityInterpolation(); 2630 2538 } 2631 2539 /*}}}*/ 2632 /*FUNCTION Penta::PressureInterpolation{{{*/ 2633 int Penta::PressureInterpolation(void){ 2540 int Penta::PressureInterpolation(void){/*{{{*/ 2634 2541 return PentaRef::PressureInterpolation(); 2635 2542 } 2636 2543 /*}}}*/ 2637 /*FUNCTION Penta::IsZeroLevelset{{{*/ 2638 bool Penta::IsZeroLevelset(int levelset_enum){ 2544 bool Penta::IsZeroLevelset(int levelset_enum){/*{{{*/ 2639 2545 2640 2546 bool iszerols; … … 2654 2560 } 2655 2561 /*}}}*/ 2656 bool Penta::IsIcefront(void){/*{{{*/2562 bool Penta::IsIcefront(void){/*{{{*/ 2657 2563 2658 2564 bool isicefront; … … 2673 2579 return isicefront; 2674 2580 }/*}}}*/ 2675 /*FUNCTION Penta::AverageOntoPartition {{{*/ 2676 void Penta::AverageOntoPartition(Vector<IssmDouble>* partition_contributions,Vector<IssmDouble>* partition_areas,IssmDouble* vertex_response,IssmDouble* qmu_part){ 2581 void Penta::AverageOntoPartition(Vector<IssmDouble>* partition_contributions,Vector<IssmDouble>* partition_areas,IssmDouble* vertex_response,IssmDouble* qmu_part){/*{{{*/ 2677 2582 _error_("Not supported yet!"); 2678 2583 } 2679 2584 /*}}}*/ 2680 /*FUNCTION Penta::IceVolume {{{*/ 2681 IssmDouble Penta::IceVolume(void){ 2585 IssmDouble Penta::IceVolume(void){/*{{{*/ 2682 2586 2683 2587 /*The volume of a troncated prism is base * 1/3 sum(length of edges)*/ … … 2701 2605 } 2702 2606 /*}}}*/ 2703 /*FUNCTION Penta::IceVolumeAboveFloatation {{{*/ 2704 IssmDouble Penta::IceVolumeAboveFloatation(void){ 2607 IssmDouble Penta::IceVolumeAboveFloatation(void){/*{{{*/ 2705 2608 2706 2609 /*Volume above floatation: H + rho_water/rho_ice*bathymetry for nodes on the bed*/ … … 2732 2635 } 2733 2636 /*}}}*/ 2734 /*FUNCTION Penta::MinVel{{{*/ 2735 void Penta::MinVel(IssmDouble* pminvel){ 2637 void Penta::MinVel(IssmDouble* pminvel){/*{{{*/ 2736 2638 2737 2639 /*Get minimum:*/ … … 2742 2644 } 2743 2645 /*}}}*/ 2744 /*FUNCTION Penta::MinVx{{{*/ 2745 void Penta::MinVx(IssmDouble* pminvx){ 2646 void Penta::MinVx(IssmDouble* pminvx){/*{{{*/ 2746 2647 2747 2648 /*Get minimum:*/ … … 2752 2653 } 2753 2654 /*}}}*/ 2754 /*FUNCTION Penta::MinVy{{{*/ 2755 void Penta::MinVy(IssmDouble* pminvy){ 2655 void Penta::MinVy(IssmDouble* pminvy){/*{{{*/ 2756 2656 2757 2657 /*Get minimum:*/ … … 2762 2662 } 2763 2663 /*}}}*/ 2764 /*FUNCTION Penta::MinVz{{{*/ 2765 void Penta::MinVz(IssmDouble* pminvz){ 2664 void Penta::MinVz(IssmDouble* pminvz){/*{{{*/ 2766 2665 2767 2666 /*Get minimum:*/ … … 2772 2671 } 2773 2672 /*}}}*/ 2774 /*FUNCTION Penta::MassFlux {{{*/ 2775 IssmDouble Penta::MassFlux( IssmDouble* segment){ 2673 IssmDouble Penta::MassFlux( IssmDouble* segment){/*{{{*/ 2776 2674 2777 2675 IssmDouble mass_flux=0; … … 2796 2694 } 2797 2695 /*}}}*/ 2798 /*FUNCTION Penta::MassFlux {{{*/ 2799 IssmDouble Penta::MassFlux( IssmDouble x1, IssmDouble y1, IssmDouble x2, IssmDouble y2,int segment_id){ 2696 IssmDouble Penta::MassFlux( IssmDouble x1, IssmDouble y1, IssmDouble x2, IssmDouble y2,int segment_id){/*{{{*/ 2800 2697 2801 2698 IssmDouble mass_flux=0; … … 2820 2717 } 2821 2718 /*}}}*/ 2822 /*FUNCTION Penta::MaxAbsVx{{{*/ 2823 void Penta::MaxAbsVx(IssmDouble* pmaxabsvx){ 2719 void Penta::MaxAbsVx(IssmDouble* pmaxabsvx){/*{{{*/ 2824 2720 2825 2721 /*Get maximum:*/ … … 2830 2726 } 2831 2727 /*}}}*/ 2832 /*FUNCTION Penta::MaxAbsVy{{{*/ 2833 void Penta::MaxAbsVy(IssmDouble* pmaxabsvy){ 2728 void Penta::MaxAbsVy(IssmDouble* pmaxabsvy){/*{{{*/ 2834 2729 2835 2730 /*Get maximum:*/ … … 2840 2735 } 2841 2736 /*}}}*/ 2842 /*FUNCTION Penta::MaxAbsVz{{{*/ 2843 void Penta::MaxAbsVz(IssmDouble* pmaxabsvz){ 2737 void Penta::MaxAbsVz(IssmDouble* pmaxabsvz){/*{{{*/ 2844 2738 2845 2739 /*Get maximum:*/ … … 2850 2744 } 2851 2745 /*}}}*/ 2852 /*FUNCTION Penta::MaxVel{{{*/ 2853 void Penta::MaxVel(IssmDouble* pmaxvel){ 2746 void Penta::MaxVel(IssmDouble* pmaxvel){/*{{{*/ 2854 2747 2855 2748 /*Get maximum:*/ … … 2861 2754 } 2862 2755 /*}}}*/ 2863 /*FUNCTION Penta::MaxVx{{{*/ 2864 void Penta::MaxVx(IssmDouble* pmaxvx){ 2756 void Penta::MaxVx(IssmDouble* pmaxvx){/*{{{*/ 2865 2757 2866 2758 /*Get maximum:*/ … … 2871 2763 } 2872 2764 /*}}}*/ 2873 /*FUNCTION Penta::MaxVy{{{*/ 2874 void Penta::MaxVy(IssmDouble* pmaxvy){ 2765 void Penta::MaxVy(IssmDouble* pmaxvy){/*{{{*/ 2875 2766 2876 2767 /*Get maximum:*/ … … 2881 2772 } 2882 2773 /*}}}*/ 2883 /*FUNCTION Penta::MaxVz{{{*/ 2884 void Penta::MaxVz(IssmDouble* pmaxvz){ 2774 void Penta::MaxVz(IssmDouble* pmaxvz){/*{{{*/ 2885 2775 2886 2776 /*Get maximum:*/ … … 2891 2781 } 2892 2782 /*}}}*/ 2893 /*FUNCTION Penta::ElementResponse{{{*/ 2894 void Penta::ElementResponse(IssmDouble* presponse,int response_enum){ 2783 void Penta::ElementResponse(IssmDouble* presponse,int response_enum){/*{{{*/ 2895 2784 2896 2785 switch(response_enum){ … … 2921 2810 } 2922 2811 /*}}}*/ 2923 /*FUNCTION Penta::TotalSmb {{{*/ 2924 IssmDouble Penta::TotalSmb(void){ 2812 IssmDouble Penta::TotalSmb(void){/*{{{*/ 2925 2813 2926 2814 /*The smb[Gt yr-1] of one element is area[m2] * smb [ m ice yr^-1] * rho_ice [kg m-3] / 1e+10^12 */ … … 2953 2841 2954 2842 #ifdef _HAVE_GIA_ 2955 /*FUNCTION Penta::GiaDeflection {{{*/ 2956 void Penta::GiaDeflection(Vector<IssmDouble>* wg,Vector<IssmDouble>* dwgdt,IssmDouble* x,IssmDouble* y){ 2843 void Penta::GiaDeflection(Vector<IssmDouble>* wg,Vector<IssmDouble>* dwgdt,IssmDouble* x,IssmDouble* y){/*{{{*/ 2957 2844 _error_("GIA deflection not implemented yet!"); 2958 2845 } … … 2960 2847 #endif 2961 2848 2962 /*FUNCTION Penta::ControlInputGetGradient{{{*/ 2963 void Penta::ControlInputGetGradient(Vector<IssmDouble>* gradient,int enum_type,int control_index){ 2849 void Penta::ControlInputGetGradient(Vector<IssmDouble>* gradient,int enum_type,int control_index){/*{{{*/ 2964 2850 2965 2851 int vertexpidlist[NUMVERTICES]; … … 2984 2870 2985 2871 }/*}}}*/ 2986 /*FUNCTION Penta::ControlInputScaleGradient{{{*/ 2987 void Penta::ControlInputScaleGradient(int enum_type,IssmDouble scale){ 2872 void Penta::ControlInputScaleGradient(int enum_type,IssmDouble scale){/*{{{*/ 2988 2873 2989 2874 Input* input=NULL; … … 3003 2888 ((ControlInput*)input)->ScaleGradient(scale); 3004 2889 }/*}}}*/ 3005 /*FUNCTION Penta::ControlInputSetGradient{{{*/ 3006 void Penta::ControlInputSetGradient(IssmDouble* gradient,int enum_type,int control_index){ 2890 void Penta::ControlInputSetGradient(IssmDouble* gradient,int enum_type,int control_index){/*{{{*/ 3007 2891 3008 2892 int vertexpidlist[NUMVERTICES]; … … 3029 2913 3030 2914 }/*}}}*/ 3031 /*FUNCTION Penta::ControlToVectors{{{*/ 3032 void Penta::ControlToVectors(Vector<IssmPDouble>* vector_control, Vector<IssmPDouble>* vector_gradient,int control_enum){ 2915 void Penta::ControlToVectors(Vector<IssmPDouble>* vector_control, Vector<IssmPDouble>* vector_gradient,int control_enum){/*{{{*/ 3033 2916 3034 2917 Input* input=NULL; … … 3071 2954 3072 2955 }/*}}}*/ 3073 /*FUNCTION Penta::GradientIndexing{{{*/ 3074 void Penta::GradientIndexing(int* indexing,int control_index){ 2956 void Penta::GradientIndexing(int* indexing,int control_index){/*{{{*/ 3075 2957 3076 2958 /*Get some parameters*/ … … 3085 2967 } 3086 2968 /*}}}*/ 3087 /*FUNCTION Penta::Gradj {{{*/ 3088 void Penta::Gradj(Vector<IssmDouble>* gradient,int control_type,int control_index){ 2969 void Penta::Gradj(Vector<IssmDouble>* gradient,int control_type,int control_index){/*{{{*/ 3089 2970 /*dJ/dalpha = ∂L/∂alpha = ∂J/∂alpha + ∂/∂alpha(KU-F)*/ 3090 2971 … … 3178 3059 } 3179 3060 /*}}}*/ 3180 /*FUNCTION Penta::GradjDragSSA {{{*/ 3181 void Penta::GradjDragSSA(Vector<IssmDouble>* gradient,int control_index){ 3061 void Penta::GradjDragSSA(Vector<IssmDouble>* gradient,int control_index){/*{{{*/ 3182 3062 3183 3063 /*Gradient is 0 if on shelf or not on bed*/ … … 3190 3070 3191 3071 } /*}}}*/ 3192 /*FUNCTION Penta::GradjDragHO {{{*/ 3193 void Penta::GradjDragHO(Vector<IssmDouble>* gradient,int control_index){ 3072 void Penta::GradjDragHO(Vector<IssmDouble>* gradient,int control_index){/*{{{*/ 3194 3073 3195 3074 int i,j; … … 3261 3140 } 3262 3141 /*}}}*/ 3263 /*FUNCTION Penta::GradjDragFS {{{*/ 3264 void Penta::GradjDragFS(Vector<IssmDouble>* gradient,int control_index){ 3142 void Penta::GradjDragFS(Vector<IssmDouble>* gradient,int control_index){/*{{{*/ 3265 3143 3266 3144 int i,j; … … 3353 3231 } 3354 3232 /*}}}*/ 3355 /*FUNCTION Penta::GradjBbarSSA {{{*/ 3356 void Penta::GradjBbarSSA(Vector<IssmDouble>* gradient,int control_index){ 3233 void Penta::GradjBbarSSA(Vector<IssmDouble>* gradient,int control_index){/*{{{*/ 3357 3234 3358 3235 /*This element should be collapsed into a tria element at its base*/ … … 3373 3250 3374 3251 } /*}}}*/ 3375 /*FUNCTION Penta::GradjBbarHO {{{*/ 3376 void Penta::GradjBbarHO(Vector<IssmDouble>* gradient,int control_index){ 3252 void Penta::GradjBbarHO(Vector<IssmDouble>* gradient,int control_index){/*{{{*/ 3377 3253 3378 3254 /*Gradient is computed on bed only (Bbar)*/ … … 3392 3268 this->inputs->DeleteInput(DamageDbarEnum); 3393 3269 } /*}}}*/ 3394 /*FUNCTION Penta::GradjBbarFS {{{*/ 3395 void Penta::GradjBbarFS(Vector<IssmDouble>* gradient,int control_index){ 3270 void Penta::GradjBbarFS(Vector<IssmDouble>* gradient,int control_index){/*{{{*/ 3396 3271 3397 3272 /*Gradient is computed on bed only (Bbar)*/ … … 3411 3286 this->inputs->DeleteInput(DamageDbarEnum); 3412 3287 } /*}}}*/ 3413 /*FUNCTION Penta::InputControlUpdate{{{*/ 3414 void Penta::InputControlUpdate(IssmDouble scalar,bool save_parameter){ 3288 void Penta::InputControlUpdate(IssmDouble scalar,bool save_parameter){/*{{{*/ 3415 3289 3416 3290 /*Intermediary*/ … … 3455 3329 } 3456 3330 /*}}}*/ 3457 /*FUNCTION Penta::SurfaceAverageVelMisfit {{{*/ 3458 IssmDouble Penta::SurfaceAverageVelMisfit(void){ 3331 IssmDouble Penta::SurfaceAverageVelMisfit(void){/*{{{*/ 3459 3332 3460 3333 int approximation; … … 3492 3365 } 3493 3366 /*}}}*/ 3494 /*FUNCTION Penta::SurfaceAbsVelMisfit {{{*/ 3495 IssmDouble Penta::SurfaceAbsVelMisfit(void){ 3367 IssmDouble Penta::SurfaceAbsVelMisfit(void){/*{{{*/ 3496 3368 3497 3369 int approximation; … … 3529 3401 } 3530 3402 /*}}}*/ 3531 /*FUNCTION Penta::SurfaceLogVelMisfit {{{*/ 3532 IssmDouble Penta::SurfaceLogVelMisfit(void){ 3403 IssmDouble Penta::SurfaceLogVelMisfit(void){/*{{{*/ 3533 3404 3534 3405 int approximation; … … 3566 3437 } 3567 3438 /*}}}*/ 3568 /*FUNCTION Penta::SurfaceLogVxVyMisfit {{{*/ 3569 IssmDouble Penta::SurfaceLogVxVyMisfit(void){ 3439 IssmDouble Penta::SurfaceLogVxVyMisfit(void){/*{{{*/ 3570 3440 3571 3441 IssmDouble J; … … 3605 3475 } 3606 3476 /*}}}*/ 3607 /*FUNCTION Penta::SurfaceRelVelMisfit {{{*/ 3608 IssmDouble Penta::SurfaceRelVelMisfit(void){ 3477 IssmDouble Penta::SurfaceRelVelMisfit(void){/*{{{*/ 3609 3478 3610 3479 int approximation; … … 3642 3511 } 3643 3512 /*}}}*/ 3644 /*FUNCTION Penta::ThicknessAbsGradient{{{*/ 3645 IssmDouble Penta::ThicknessAbsGradient(void){ 3513 IssmDouble Penta::ThicknessAbsGradient(void){/*{{{*/ 3646 3514 3647 3515 _error_("Not implemented yet"); 3648 3516 } 3649 3517 /*}}}*/ 3650 /*FUNCTION Penta::ThicknessAbsMisfit {{{*/ 3651 IssmDouble Penta::ThicknessAbsMisfit(void){ 3518 IssmDouble Penta::ThicknessAbsMisfit(void){/*{{{*/ 3652 3519 3653 3520 int approximation; … … 3668 3535 } 3669 3536 /*}}}*/ 3670 /*FUNCTION Penta::DragCoefficientAbsGradient{{{*/ 3671 IssmDouble Penta::DragCoefficientAbsGradient(void){ 3537 IssmDouble Penta::DragCoefficientAbsGradient(void){/*{{{*/ 3672 3538 3673 3539 IssmDouble J; … … 3683 3549 } 3684 3550 /*}}}*/ 3685 /*FUNCTION Penta::RheologyBbarAbsGradient{{{*/ 3686 IssmDouble Penta::RheologyBbarAbsGradient(void){ 3551 IssmDouble Penta::RheologyBbarAbsGradient(void){/*{{{*/ 3687 3552 3688 3553 IssmDouble J; … … 3698 3563 } 3699 3564 /*}}}*/ 3700 /*FUNCTION Penta::GetVectorFromControlInputs{{{*/ 3701 void Penta::GetVectorFromControlInputs(Vector<IssmDouble>* vector,int control_enum,int control_index,const char* data){ 3565 void Penta::GetVectorFromControlInputs(Vector<IssmDouble>* vector,int control_enum,int control_index,const char* data){/*{{{*/ 3702 3566 3703 3567 int vertexpidlist[NUMVERTICES]; … … 3721 3585 } 3722 3586 /*}}}*/ 3723 /*FUNCTION Penta::SetControlInputsFromVector{{{*/ 3724 void Penta::SetControlInputsFromVector(IssmDouble* vector,int control_enum,int control_index){ 3587 void Penta::SetControlInputsFromVector(IssmDouble* vector,int control_enum,int control_index){/*{{{*/ 3725 3588 3726 3589 IssmDouble values[NUMVERTICES]; … … 3751 3614 3752 3615 #ifdef _HAVE_DAKOTA_ 3753 /*FUNCTION Penta::InputUpdateFromVectorDakota(IssmDouble* vector, int name, int type);{{{*/ 3754 void Penta::InputUpdateFromVectorDakota(IssmDouble* vector, int name, int type){ 3616 void Penta::InputUpdateFromVectorDakota(IssmDouble* vector, int name, int type){/*{{{*/ 3755 3617 3756 3618 int i,j; … … 3852 3714 } 3853 3715 /*}}}*/ 3854 /*FUNCTION Penta::InputUpdateFromMatrixDakota(IssmDouble* matrix, int nrows, int ncols, int name, int type);{{{*/ 3855 void Penta::InputUpdateFromMatrixDakota(IssmDouble* matrix, int nrows, int ncols, int name, int type){ 3716 void Penta::InputUpdateFromMatrixDakota(IssmDouble* matrix, int nrows, int ncols, int name, int type){/*{{{*/ 3856 3717 3857 3718 int i,t,row; … … 3892 3753 /*}}}*/ 3893 3754 #endif 3894 /*FUNCTION Penta::GetSolutionFromInputsOneDof {{{*/ 3895 void Penta::GetSolutionFromInputsOneDof(Vector<IssmDouble>* solution, int enum_type){ 3755 void Penta::GetSolutionFromInputsOneDof(Vector<IssmDouble>* solution, int enum_type){/*{{{*/ 3896 3756 3897 3757 const int numdof=NDOF1*NUMVERTICES; … … 3923 3783 } 3924 3784 /*}}}*/ 3925 /*FUNCTION Penta::MigrateGroundingLine{{{*/ 3926 void Penta::MigrateGroundingLine(IssmDouble* phi_ungrounding){ 3785 void Penta::MigrateGroundingLine(IssmDouble* phi_ungrounding){/*{{{*/ 3927 3786 3928 3787 int i,migration_style; … … 4028 3887 } 4029 3888 /*}}}*/ 4030 /*FUNCTION Penta::PotentialUngrounding{{{*/ 4031 void Penta::PotentialUngrounding(Vector<IssmDouble>* potential_ungrounding){ 3889 void Penta::PotentialUngrounding(Vector<IssmDouble>* potential_ungrounding){/*{{{*/ 4032 3890 4033 3891 IssmDouble h[NUMVERTICES],r[NUMVERTICES],gl[NUMVERTICES]; … … 4056 3914 } 4057 3915 /*}}}*/ 4058 /*FUNCTION Penta::UpdatePotentialUngrounding{{{*/ 4059 int Penta::UpdatePotentialUngrounding(IssmDouble* vertices_potentially_ungrounding,Vector<IssmDouble>* vec_nodes_on_iceshelf,IssmDouble* nodes_on_iceshelf){ 3916 int Penta::UpdatePotentialUngrounding(IssmDouble* vertices_potentially_ungrounding,Vector<IssmDouble>* vec_nodes_on_iceshelf,IssmDouble* nodes_on_iceshelf){/*{{{*/ 4060 3917 4061 3918 int i;
Note:
See TracChangeset
for help on using the changeset viewer.