We consider a spatial domain (d = 2 or 3), a time interval , and a diffusion equation of the following form:
with initial conditions
.
Here, denotes the space- and time-dependent diffusive field and are describes external forces. denotes the first time derivative and the spatial gradient operator. Furthermore, the scalar parameter and the symmetric second-order diffusion tensor are space-dependent coefficients.
can be related to a Wiener process using the relation
which direction-dependent smoothing lengths .
For the special case of and , corresponds to the standard deviation of the Gaussian smoothing in meters.
In the isotropic case, simplifies to a scalar value, in which case we may re-write the diffusion equation as
with and the isotropic smoothing length .
%config Completer.use_jedi = False
# Standard Python packages
import matplotlib.pyplot as plt
import numpy as np
import os
import toml
# Salvus imports
from salvus.mesh.structured_grid_2D import StructuredGrid2D
from salvus.mesh.unstructured_mesh import UnstructuredMesh
import salvus.flow.api
import salvus.flow.simple_config as sc
SALVUS_FLOW_SITE_NAME = os.environ.get("SITE_NAME", "token")
sg = StructuredGrid2D.rectangle(nelem_x=40, nelem_y=60, max_x=4.0, max_y=6.0)
mesh = sg.get_unstructured_mesh()
mesh.find_side_sets("cartesian")
input_mesh = mesh.copy()
input_mesh.attach_field("some_field", np.random.randn(mesh.npoint))
input_mesh.map_nodal_fields_to_element_nodal()
input_mesh.write_h5("initial_values.h5")
input_mesh