Source code for o3seespy.command.nd_material.uc_san_diego_ud_soil

from o3seespy.command.nd_material.base_material import NDMaterialBase


[docs]class FluidSolidPorous(NDMaterialBase): """ The FluidSolidPorous NDMaterial Class FluidSolidPorous material couples the responses of two phases: fluid and solid. The fluid phase response is only volumetric and linear elastic. The solid phase can be any NDMaterial. This material is developed to simulate the response of saturated porous media under fully undrained condition. """ op_type = 'FluidSolidPorous' def __init__(self, osi, nd, soil_mat, combined_bulk_modul, pa=101.0): r""" Initial method for FluidSolidPorous Parameters ---------- osi: o3seespy.OpenSeesInstance nd: float Number of dimensions, 2 for plane-strain, and 3 for 3d analysis. soil_mat: obj The material number for the solid phase material (previously defined). combined_bulk_modul: float Combined undrained bulk modulus :math:`b_c` relating changes in pore pressure and volumetric strain, may be approximated by: :math:`b_c \approx b_f /n` where :math:`b_f` is the bulk modulus of fluid phase (2.2x106 kpa (or 3.191x105 psi) for water), and :math:`n` the initial porosity. pa: float, optional Optional atmospheric pressure for normalization (typically 101 kpa in si units, or 14.65 psi in english units) """ self.osi = osi self.nd = float(nd) self.soil_mat = soil_mat self.combined_bulk_modul = float(combined_bulk_modul) self.pa = float(pa) if osi is not None: osi.n_mat += 1 self._tag = osi.n_mat self._parameters = [self.op_type, self._tag, self.nd, self.soil_mat.tag, self.combined_bulk_modul, self.pa] 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_combined_bulk_modulus(self, value, ele=None, eles=None): self.set_parameter(self.osi, 'combinedBulkModulus', value, ele, eles)