salvus.flow.simple_config.boundary
Various boundary conditions.
Classes
Absorbing
Absorbingclass Absorbing(
salvus.flow.utils.deep_setters._DeepSetter,
salvus.flow.simple_config.boundary._Base,
):
def __init__(
self,
width_in_meters: float,
taper_amplitude: float,
side_sets: List[str],
side_sets_are_axis_aligned: Optional[bool] = None,
):
...Apply first order Clayton-Enquist boundary conditions, optionally also with damping sponge layers.
width_in_metersfloat — Width of the absorbing layers in meters. The longer, the better. 3.5 - 5 wavelengths are typically sufficient. Example:1.06taper_amplitudefloat — Taper amplitude. As a rule of thumb, a good choice is setting the taper amplitude to the central frequency in Hertz. Example:1.07side_setsList[str] — Side sets at which to apply the boundary conditions. Example:['x0', 'x1', 'y1']side_sets_are_axis_alignedOptional[bool] — Allow the solver to make the assumption that side sets are axis aligned. This can lead to much faster absorbing layer attachment. Example:true
apply()
apply()def apply(self, d: Union[Dict, _DeepSetter]) -> None:
...Set the contents with a dictionary.
dUnion[Dict, _DeepSetter] — The dictionary to set.
copy()
copy()def copy(self) -> _DeepSetter:
...Return a deep copy of the object.
get_dictionary()
get_dictionary()def get_dictionary(self) -> Dict:
...Get the contents of this object as a dictionary.
validate()
validate()def validate(self) -> None:
...Validates the current state of the configuration against its schema.
HomogeneousDirichlet
HomogeneousDirichletclass HomogeneousDirichlet(
salvus.flow.utils.deep_setters._DeepSetter,
salvus.flow.simple_config.boundary._Base,
):
def __init__(
self, side_sets: List[str], components: Optional[List[bool]] = None
):
...Homogeneous dirichlet boundary conditions
side_setsList[str] — Side sets at which to apply the boundary conditions. Example:['y0', 'x1']componentsOptional[List[bool]] — Indicator whether Dirichlet condition is applied for this coordinate axis.
apply()
apply()def apply(self, d: Union[Dict, _DeepSetter]) -> None:
...Set the contents with a dictionary.
dUnion[Dict, _DeepSetter] — The dictionary to set.
copy()
copy()def copy(self) -> _DeepSetter:
...Return a deep copy of the object.
get_dictionary()
get_dictionary()def get_dictionary(self) -> Dict:
...Get the contents of this object as a dictionary.
validate()
validate()def validate(self) -> None:
...Validates the current state of the configuration against its schema.
Neumann
Neumannclass Neumann(
salvus.flow.utils.deep_setters._DeepSetter,
salvus.flow.simple_config.boundary._Base,
):
def __init__(self, side_sets: List[str]):
...Apply a Neumann boundary condition
side_setsList[str] — Side sets at which to apply the boundary conditions. Example:['y0', 'x1']
apply()
apply()def apply(self, d: Union[Dict, _DeepSetter]) -> None:
...Set the contents with a dictionary.
dUnion[Dict, _DeepSetter] — The dictionary to set.
copy()
copy()def copy(self) -> _DeepSetter:
...Return a deep copy of the object.
get_dictionary()
get_dictionary()def get_dictionary(self) -> Dict:
...Get the contents of this object as a dictionary.
validate()
validate()def validate(self) -> None:
...Validates the current state of the configuration against its schema.
OceanLoading
OceanLoadingclass OceanLoading(
salvus.flow.utils.deep_setters._DeepSetter,
salvus.flow.simple_config.boundary._Base,
):
def __init__(self, side_sets: List[str]):
...Apply an ocean load at the boundary
side_setsList[str] — Side sets at which to apply the boundary conditions. Example:['y0', 'x1']
apply()
apply()def apply(self, d: Union[Dict, _DeepSetter]) -> None:
...Set the contents with a dictionary.
dUnion[Dict, _DeepSetter] — The dictionary to set.
copy()
copy()def copy(self) -> _DeepSetter:
...Return a deep copy of the object.
get_dictionary()
get_dictionary()def get_dictionary(self) -> Dict:
...Get the contents of this object as a dictionary.
validate()
validate()def validate(self) -> None:
...Validates the current state of the configuration against its schema.