Changeset 19384 for issm/trunk-jpl/src


Ignore:
Timestamp:
06/01/15 06:34:39 (10 years ago)
Author:
cborstad
Message:

CHG: no source term for damage evolution if law=0; damage updated in stress balance

Location:
issm/trunk-jpl/src
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.cpp

    r19381 r19384  
    8282        int law;
    8383        iomodel->Constant(&law,DamageLawEnum);
    84         if (law>0){
     84        if (law==0){
     85                parameters->AddObject(iomodel->CopyConstantObject(DamageStressThresholdEnum));
     86                parameters->AddObject(iomodel->CopyConstantObject(DamageKappaEnum));
     87        }
     88        else if (law>0){
    8589                parameters->AddObject(iomodel->CopyConstantObject(DamageC1Enum));
    8690                parameters->AddObject(iomodel->CopyConstantObject(DamageC2Enum));
     
    98102void           DamageEvolutionAnalysis::Core(FemModel* femmodel){/*{{{*/
    99103        _error_("not implemented");
     104}/*}}}*/
     105void           DamageEvolutionAnalysis::CreateDamageFInput(Element* element){/*{{{*/
     106
     107        /*Fetch number of vertices and allocate output*/
     108        int numnodes = element->GetNumberOfNodes();
     109        IssmDouble* f   = xNew<IssmDouble>(numnodes);
     110
     111        /*Calculate damage evolution source term: */
     112        for (int i=0;i<numnodes;i++){
     113
     114                /* healing could be handled here */
     115
     116                /* no source term; damage handled in stress balance */
     117                f[i]=0;
     118        }
     119
     120        /*Add input*/
     121        element->AddInput(DamageFEnum,f,element->GetElementType());
     122       
     123        /*Clean up and return*/
     124        xDelete<IssmDouble>(f);
    100125}/*}}}*/
    101126void           DamageEvolutionAnalysis::CreateDamageFInputExp(Element* element){/*{{{*/
     
    502527        element->FindParam(&damagelaw,DamageLawEnum);
    503528        switch(damagelaw){
     529                case 0:
     530                        this->CreateDamageFInput(element);
     531                        break;
    504532                case 1:
    505533                        this->CreateDamageFInputPralong(element);
  • issm/trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.h

    r18930 r19384  
    2222                /*Finite element Analysis*/
    2323                void           Core(FemModel* femmodel);
     24                void           CreateDamageFInput(Element* element);
    2425                void           CreateDamageFInputExp(Element* element);
    2526                void           CreateDamageFInputPralong(Element* element);
  • issm/trunk-jpl/src/m/classes/damage.m

    r19381 r19384  
    173173                        fielddisplay(self,'isdamage','is damage mechanics being used? {true,false}');
    174174                        if self.isdamage,
    175                                 fielddisplay(self,'law','damage law {''0: undamaged'',''1: pralong''}');
     175                                fielddisplay(self,'law','damage law {''0: no source term'',''1: pralong''}');
    176176                                fielddisplay(self,'D','damage tensor (scalar)');
    177177                                fielddisplay(self,'spcdamage','damage constraints (NaN means no constraint)');
  • issm/trunk-jpl/src/m/classes/damage.py

    r19381 r19384  
    5252                if self.isdamage:
    5353                        s+="%s\n" % fielddisplay(self,"D","damage tensor (scalar for now)")
    54                         s+="%s\n" % fielddisplay(self,"law","damage law ['0: undamaged','1: pralong']")
     54                        s+="%s\n" % fielddisplay(self,"law","damage law ['0: no source term','1: pralong']")
    5555                        s+="%s\n" % fielddisplay(self,"spcdamage","damage constraints (NaN means no constraint)")
    5656                        s+="%s\n" % fielddisplay(self,"max_damage","maximum possible damage (0<=max_damage<1)")
Note: See TracChangeset for help on using the changeset viewer.