Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Example

mat_metal.cpp

MatMetal::MatMetal()
{
    // Enable GPU implementation of this material model
    gpu_enabled = true;

    // Material configuration
    num_hist          =  6;    // Number of state variables per integration point
    pos_epsp          =  0;    // For prop damage, sensor output
    pos_temp          =  4;    // For prop damage, prop thermal
    pos_texture       = -1;    // For texture, not used by this material model
    pos_damage        =  1;    // For damage, position in the state variable array
    erode_flag        =  2;    // Erosion flag (0=no erosion, 1=element erosion, 2=node splitting)
    pos_erode_flag    = -1;    // Not used, since this material model does not use element erosion
    pos_depsp         =  5;    // For prop damage
    pos_rate          = -1;    // For prop damage
    pos_evol          = -1;    // For prop damage
    pos_damage1       =  1;    // For prop damage
    pos_damage2       =  2;    // For prop damage
    pos_damage_active = -1;    // For prop damage

    // Curve definitions
    curve.emplace_back(6);     // A curve ID is present at position 6 in the material parameter array (cmat)

    // Add the location in the state variable array and the output name for contour plot
    contour.emplace_back(0, "Effective plastic strain");
    contour.emplace_back(1, "Damage");
    contour.emplace_back(4, "Temperature");

    // Stiffness reduction (for GPU only)
    stiff_shear = NO_REDUCTION;
    stiff_bulk  = NO_REDUCTION;
    stiff_xi    = NO_REDUCTION;
    stiff_bfac  = NO_REDUCTION;
}