// Store J, Jres, and Jp, which is calculated incrementally, and available for archiving and Jp // initialize all to 1 char *ClampedNeohookean::InitHistoryData(char *pchr,MPMBase *mptr) { double *p = CreateAndZeroDoubles(pchr,3); p[J_History] = 1.; p[J_History+1] = 1.; p[JP_HISTORY] = 1.; return (char *)p; }
// The IsoPlasticity has not history data, but its plasticity law might char *IsoPlasticity::InitHistoryData(void) { int num = plasticLaw->HistoryDoublesNeeded(); if(num==0) return NULL; double *p = CreateAndZeroDoubles(num); plasticLaw->InitPlasticHistoryData(p); return (char *)p; }
// Particle J char *TaitLiquid::InitHistoryData(char *pchr,MPMBase *mptr) { double *p = CreateAndZeroDoubles(pchr,3); p[J_History]=1.; // J p[J_History+1]=1.; // Jres // J_History+2 is shear rate, initially zero return (char *)p; }
// Store J, which is calculated incrementally, and available for archiving // Store Jres for residual stress calculations // initialize both to 1 char *Neohookean::InitHistoryData(char *pchr,MPMBase *mptr) { double *p = CreateAndZeroDoubles(pchr,2); p[0] = 1.; p[1] = 1.; return (char *)p; }
// First ones for hardening law. Particle J appended at the end char *HEIsotropic::InitHistoryData(char *pchr,MPMBase *mptr) { J_History = plasticLaw->HistoryDoublesNeeded(); double *p = CreateAndZeroDoubles(pchr,J_History+2); plasticLaw->InitPlasticHistoryData(p); p[J_History]=1.; // J p[J_History+1]=1.; // J return (char *)p; }
// history variables are the current peak elastic displacement in mode I or mode II char *CubicTraction::InitHistoryData(void) { double *p = CreateAndZeroDoubles(2); return (char *)p; }
// history is cumulative strain char *HillPlastic::InitHistoryData(void) { double *p = CreateAndZeroDoubles(1); return (char *)p; }
// Particle J char *TaitLiquid::InitHistoryData(void) { J_history = 0; double *p = CreateAndZeroDoubles(J_history+1); p[J_history]=1.; // J return (char *)p; }