Ejemplo n.º 1
0
 def test_meshio(self):
     points = np.array([
         [0.0, 0.0, 0.0],
         [0.0, 1.0, 0.0],
         [0.0, 0.0, 1.0],
         [1.0, 0.0, 0.0],
     ])
     cells = [("tetra", np.array([[0, 1, 2, 3]]))]
     mesh = meshio.Mesh(points, cells)
     model = Gaussian(dim=3, len_scale=0.1)
     srf = SRF(model)
     srf.mesh(mesh, points="points")
     self.assertEqual(len(srf.field), 4)
     srf.mesh(mesh, points="centroids")
     self.assertEqual(len(srf.field), 1)
def get_srf_2d(model, mean=None, var=None, len_scale=None):

    # covariance model for conductivity field
    cov_model = Gaussian(dim=2, var=var, len_scale=len_scale, anis=[1])
    srf = SRF(model=cov_model, mean=mean, seed=1000)
    cond = np.exp(srf.mesh(model.msh))

    return cond
# covariance model for conductivity field
cov_model = Gaussian(dim=2, var=2, len_scale=100, anis=[1])
srf = SRF(model=cov_model, mean=-9, seed=1000)

# model setup
model = OGS(task_root="pump_2d_steady", task_id="model", output_dir="out")
model.pcs.add_block(
        PCS_TYPE="GROUNDWATER_FLOW", NUM_TYPE="NEW", TIM_TYPE="STEADY")

# generate a radial mesh and geometry ("boundary" polyline)
model.msh.generate("radial", dim=2, rad=rad, angles=angles)
model.gli.generate("radial", dim=2, rad_out=rad[-1], angles=angles)
model.gli.add_points([0.0, 0.0, 0.0], "pwell")

# generate a 2D conductivity field
cond = np.exp(srf.mesh(model.msh))
model.mpd.add(name="conductivity")
model.mpd.add_block(  # edit recent mpd file
    MSH_TYPE="GROUNDWATER_FLOW",
    MMP_TYPE="PERMEABILITY",
    DIS_TYPE="ELEMENT",
    DATA=by_id(cond),
)

model.bc.add_block(  # boundary condition
    PCS_TYPE="GROUNDWATER_FLOW",
    PRIMARY_VARIABLE="HEAD",
    GEO_TYPE=["POLYLINE", "boundary"],
    DIS_TYPE=["CONSTANT", 0.0],
)