Material initialization
This function is called during the initialization phase of the simulation. You can use it to set up any necessary data structures or perform other initialization tasks, such as the inital state of the material and, if required, calculate material parameters.
This intialization function is called for both CPU and GPU implementations. Future implementations will enable the
runInitGPU function when utilizing GPU acceleration.
runInit()
void runInit(UserMatInitCPU data) const
data
- Type: UserMatInitCPU
- Description: User material host data structure. See UserMatInitCPU for more information on the data structure.
Example
void MatMetal::runInit(UserMatInitCPU data) const
{
double young = data.p_cmat[1];
double pr = data.p_cmat[2];
double bulk = young / (3.0 * (1.0 - 2.0 * pr));
double G = young / (2.0 * (1.0 + pr));
// Set material properties
data.p_cmat[43] = bulk;
// Stress-strain curve
int idlc = static_cast<int>(round(data.p_cmat[6]));
// Yield stress
double sigy0 = data.p_history[3];
// Set initial yield stress (if not already defined)
if (sigy0 == 0.0) {
// load material properties from database
sigy0 = mat::load_curve(data.p_curve_data, data.p_curve_val, idlc, 0.0);
data.p_history[3] = sigy0;
}
// Stiffness matrix
data.p_stiffness[0] = G;
data.p_stiffness[1] = bulk;
}