Source code for o3seespy.command.nd_material.wrapper

from o3seespy.command.nd_material.base_material import NDMaterialBase


[docs]class InitialStateAnalysisWrapper(NDMaterialBase): """ The InitialStateAnalysisWrapper NDMaterial Class The InitialStateAnalysisWrapper nDMaterial allows for the use of the InitialStateAnalysis command for setting initial conditions. The InitialStateAnalysisWrapper can be used with any nDMaterial. This material wrapper allows for the development of an initial stress field while maintaining the original geometry of the problem. An example analysis is provided below to demonstrate the use of this material wrapper object. """ op_type = 'InitialStateAnalysisWrapper' def __init__(self, osi, n_d_mat, n_dim): """ Initial method for InitialStateAnalysisWrapper Parameters ---------- osi: o3seespy.OpenSeesInstance n_d_mat: obj The object of the associated ndmaterial object n_dim: int Number of dimensions (2 for 2d, 3 for 3d) Examples -------- >>> import o3seespy as o3 >>> osi = o3.OpenSeesInstance(ndm=2) >>> mat = o3.nd_material.ElasticIsotropic(osi, e_mod=1.0, nu=1.0, rho=0.0) >>> o3.nd_material.InitialStateAnalysisWrapper(osi, n_d_mat=mat, n_dim=1) """ self.osi = osi self.n_d_mat = n_d_mat self.n_dim = int(n_dim) if osi is not None: osi.n_mat += 1 self._tag = osi.n_mat self._parameters = [self.op_type, self._tag, self.n_d_mat.tag, self.n_dim] if osi is None: self.built = 0 if osi is not None: self.to_process(osi)
[docs] def set_update_material_stage(self, value, ele=None, eles=None): self.set_parameter(self.osi, 'updateMaterialStage', value, ele, eles)
[docs] def set_g_mod(self, value, ele=None, eles=None): self.set_parameter(self.osi, 'shearModulus', value, ele, eles)
[docs] def set_bulk_mod(self, value, ele=None, eles=None): self.set_parameter(self.osi, 'bulkModulus', value, ele, eles)
[docs] def set_friction_angle(self, value, ele=None, eles=None): self.set_parameter(self.osi, 'frictionAngle', value, ele, eles)
[docs] def set_cohesion(self, value, ele=None, eles=None): self.set_parameter(self.osi, 'cohesion', value, ele, eles)
[docs]class InitStressNDMaterial(NDMaterialBase): """ The InitStressNDMaterial NDMaterial Class This command is used to construct an Initial Stress material object.The stress-strain behaviour for this material is defined by another material.Initial Stress Material enables definition of initial stress for the material under consideration.The strain that corresponds to the initial stress will be calculated from the other material. """ op_type = 'InitStressNDMaterial' def __init__(self, osi, other, init_stress, n_dim): """ Initial method for InitStressNDMaterial Parameters ---------- osi: o3seespy.OpenSeesInstance other: obj Object of the other material init_stress: float Initial stress n_dim: int Number of dimensions (e.g. if plane strain ndim=2) Examples -------- >>> import o3seespy as o3 >>> osi = o3.OpenSeesInstance(ndm=2) >>> mat = o3.nd_material.ElasticIsotropic(osi, e_mod=1.0, nu=1.0, rho=0.0) >>> o3.nd_material.InitStressNDMaterial(osi, other=mat, init_stress=1.0, n_dim=2) """ self.osi = osi self.other = other self.init_stress = float(init_stress) self.n_dim = int(n_dim) if osi is not None: osi.n_mat += 1 self._tag = osi.n_mat self._parameters = [self.op_type, self._tag, self.other.tag, self.init_stress, self.n_dim] if osi is None: self.built = 0 if osi is not None: self.to_process(osi)
[docs]class InitStrainNDMaterial(NDMaterialBase): """ The InitStrainNDMaterial NDMaterial Class This command is used to construct an Initial Strain material object. The stress-strain behaviour for this material is defined by another material. Initial Strain Material enables definition of initial strains for the material under consideration. The stress that corresponds to the initial strain will be calculated from the other material. """ op_type = 'InitStrainNDMaterial' def __init__(self, osi, other, init_strain, n_dim): """ Initial method for InitStrainNDMaterial Parameters ---------- osi: o3seespy.OpenSeesInstance other: obj Object of the other material init_strain: float Initial strain n_dim: float Number of dimensions """ self.osi = osi self.other = other self.init_strain = float(init_strain) self.n_dim = float(n_dim) if osi is not None: osi.n_mat += 1 self._tag = osi.n_mat self._parameters = [self.op_type, self._tag, self.other.tag, self.init_strain, self.n_dim] if osi is None: self.built = 0 if osi is not None: self.to_process(osi)