optimism.material package

Subpackages

Submodules

optimism.material.Gent module

optimism.material.Gent._gent_3D_energy_density(dispGrad, props)[source]
optimism.material.Gent._make_properties(K, mu, Jm)[source]
optimism.material.Gent.create_material_functions(properties)[source]
optimism.material.Gent.make_initial_state()[source]

optimism.material.Hardening module

class optimism.material.Hardening.HardeningModel(compute_hardening_energy_density, compute_flow_stress)

Bases: tuple

_asdict()

Return a new dict which maps field names to their values.

_field_defaults = {}
_fields = ('compute_hardening_energy_density', 'compute_flow_stress')
classmethod _make(iterable)

Make a new HardeningModel object from a sequence or iterable

_replace(**kwds)

Return a new HardeningModel object replacing specified fields with new values

compute_flow_stress

Alias for field number 1

compute_hardening_energy_density

Alias for field number 0

class optimism.material.Hardening.RateSensitivityModel(compute_potential, compute_overstress)

Bases: tuple

_asdict()

Return a new dict which maps field names to their values.

_field_defaults = {}
_fields = ('compute_potential', 'compute_overstress')
classmethod _make(iterable)

Make a new RateSensitivityModel object from a sequence or iterable

_replace(**kwds)

Return a new RateSensitivityModel object replacing specified fields with new values

compute_overstress

Alias for field number 1

compute_potential

Alias for field number 0

optimism.material.Hardening.create_hardening_model(properties)[source]
optimism.material.Hardening.linear(eqps, Y0, H)[source]
optimism.material.Hardening.power_law(eqps, Y0, n, eps0)[source]
optimism.material.Hardening.power_law_rate_sensitivity(eqps, eqpsOld, dt, S, m, epsDot0)[source]
optimism.material.Hardening.voce(eqps, Y0, Ysat, eps0)[source]

optimism.material.HyperViscoelastic module

optimism.material.HyperViscoelastic._compute_dissipated_energy(dispGrad, state, dt, props)[source]
optimism.material.HyperViscoelastic._compute_elastic_logarithmic_strain(dispGrad, stateOld)[source]
optimism.material.HyperViscoelastic._compute_state_increment(elasticStrain, dt, props)[source]
optimism.material.HyperViscoelastic._compute_state_new(dispGrad, stateOld, dt, props)[source]
optimism.material.HyperViscoelastic._dissipation_potential(Dv, props)[source]
optimism.material.HyperViscoelastic._energy_density(dispGrad, state, dt, props)[source]
optimism.material.HyperViscoelastic._eq_strain_energy(dispGrad, props)[source]
optimism.material.HyperViscoelastic._make_properties(properties)[source]
optimism.material.HyperViscoelastic._neq_strain_energy(elasticStrain, props)[source]
optimism.material.HyperViscoelastic.create_material_model_functions(properties)[source]

optimism.material.J2Plastic module

optimism.material.J2Plastic._compute_dissipation(dispGrad, stateOld, dt, props, hardeningModel)[source]
optimism.material.J2Plastic._energy_density(elStrain, state, dt, props, hardening_model)[source]
optimism.material.J2Plastic.compute_elastic_linear_strain(dispGrad, state)[source]
optimism.material.J2Plastic.compute_elastic_logarithmic_strain(dispGrad, state)[source]
optimism.material.J2Plastic.compute_elastic_seth_hill_strain(dispGrad, state)[source]
optimism.material.J2Plastic.compute_flow_direction(elasticStrain)[source]
optimism.material.J2Plastic.compute_state_increment(elasticStrain, state, dt, props, hardening_model)[source]
optimism.material.J2Plastic.compute_state_new_finite_deformations(dispGrad, stateOld, dt, props, hardening_model)[source]
optimism.material.J2Plastic.compute_state_new_seth_hill(dispGrad, stateOld, dt, props, hardening_model)[source]
optimism.material.J2Plastic.compute_state_new_small_deformations(dispGrad, stateOld, dt, props, hardening_model)[source]
optimism.material.J2Plastic.create_material_model_functions(properties)[source]
optimism.material.J2Plastic.elastic_deviatoric_free_energy(elasticStrain, props)[source]
optimism.material.J2Plastic.elastic_free_energy(elasticStrain, props)[source]
optimism.material.J2Plastic.elastic_volumetric_free_energy(strain, props)[source]
optimism.material.J2Plastic.incremental_potential(elasticTrialStrain, eqps, eqpsOld, dt, props, hardening_model)[source]
optimism.material.J2Plastic.make_initial_state_finite_deformations(shape=(1,))[source]
optimism.material.J2Plastic.make_initial_state_small_deformations(shape=(1,))[source]
optimism.material.J2Plastic.make_properties(E, nu, Y0)[source]
optimism.material.J2Plastic.r(elasticTrialStrain, eqps, eqpsOld, dt, props, hardening_model)

Jacobian of incremental_potential with respect to positional argument(s) 1. Takes the same arguments as incremental_potential but returns the jacobian of the output with respect to the arguments at positions 1.

optimism.material.J2Plastic.update_state(elasticTrialStrain, stateOld, dt, props, hardening_model)[source]

optimism.material.LinearElastic module

optimism.material.LinearElastic._linear_elastic_energy_density(strain, props)[source]
optimism.material.LinearElastic._make_properties(E, nu)[source]
optimism.material.LinearElastic.compute_state_new(dispGrad, internalVars, dt)[source]
optimism.material.LinearElastic.create_material_model_functions(properties)[source]
optimism.material.LinearElastic.green_lagrange_strain(dispGrad)[source]
optimism.material.LinearElastic.linear_strain(dispGrad)[source]
optimism.material.LinearElastic.log_strain(dispGrad)[source]
optimism.material.LinearElastic.make_initial_state()[source]

optimism.material.MaterialModel module

class optimism.material.MaterialModel.MatProps(props, num_props, num_states)

Bases: tuple

_asdict()

Return a new dict which maps field names to their values.

_field_defaults = {}
_fields = ('props', 'num_props', 'num_states')
classmethod _make(iterable)

Make a new MatProps object from a sequence or iterable

_replace(**kwds)

Return a new MatProps object replacing specified fields with new values

num_props

Alias for field number 1

num_states

Alias for field number 2

props

Alias for field number 0

class optimism.material.MaterialModel.MaterialModel(compute_energy_density, compute_initial_state, compute_state_new, compute_material_qoi, density)

Bases: tuple

_asdict()

Return a new dict which maps field names to their values.

_field_defaults = {'compute_material_qoi': 0.0, 'density': None}
_fields = ('compute_energy_density', 'compute_initial_state', 'compute_state_new', 'compute_material_qoi', 'density')
classmethod _make(iterable)

Make a new MaterialModel object from a sequence or iterable

_replace(**kwds)

Return a new MaterialModel object replacing specified fields with new values

compute_energy_density

Alias for field number 0

compute_initial_state

Alias for field number 1

compute_material_qoi

Alias for field number 3

compute_state_new

Alias for field number 2

density

Alias for field number 4

optimism.material.MaterialUniaxialSimulator module

class optimism.material.MaterialUniaxialSimulator.UniaxialOutput(time, strainHistory, stressHistory, energyHistory, internalVariableHistory)

Bases: tuple

Output from a uniaxial tension test on a material.

time

discrete time points in the unixial data

Type:

array

strainHistory

displacement gradient tensor at each time point

Type:

array

stressHistory

Piola stress tensor at each time point

Type:

array

energyHistory

Potential function value at each time point

Type:

array

internalVariableHistory

Collection of internal variables for the given material at each time point.

Type:

array

_asdict()

Return a new dict which maps field names to their values.

_field_defaults = {}
_fields = ('time', 'strainHistory', 'stressHistory', 'energyHistory', 'internalVariableHistory')
classmethod _make(iterable)

Make a new UniaxialOutput object from a sequence or iterable

_replace(**kwds)

Return a new UniaxialOutput object replacing specified fields with new values

energyHistory

Alias for field number 3

internalVariableHistory

Alias for field number 4

strainHistory

Alias for field number 1

stressHistory

Alias for field number 2

time

Alias for field number 0

optimism.material.MaterialUniaxialSimulator.makeStrainTensor_(freeStrains, p)[source]
optimism.material.MaterialUniaxialSimulator.run(materialModel, strain_history, maxTime, steps=10, tol=0.001)[source]

Generates the uniaxial response of a given material :param materialModel: Material to subject to uniaxial stress test :type materialModel: MaterialModel object :param strain_history: The tensile strain as a function of time :type strain_history: callable (float) -> float :param maxTime: Upper limit of the time interval :type maxTime: float :param steps: Number of time steps to take :type steps: int

Returns:

UniaxialOutput

Return type:

named tuple of constitutive output

optimism.material.Neohookean module

optimism.material.Neohookean._adagio_neohookean(dispGrad, internalVariables, props)[source]
optimism.material.Neohookean._compute_state_new(dispGrad, internalVars, props)[source]
optimism.material.Neohookean._make_properties(E, nu)[source]
optimism.material.Neohookean._neohookean_3D_energy_density(dispGrad, internalVariables, props)[source]
optimism.material.Neohookean.create_material_model_functions(properties)[source]
optimism.material.Neohookean.make_initial_state()[source]

Module contents