{
    "componentChunkName": "component---src-templates-python-api-api-tsx",
    "path": "/2025.1.3/references/python_api/salvus/material/orientation",
    "result": {"data":{"site":{"siteMetadata":{"salvusDocVersions":{"current":"2026.5.0"}}},"jsonType":{"module_name":"salvus.material.orientation","module_docstring":"Experimental orientation materials.","classes":[{"qualified_name":"salvus.material.orientation.AxesDips","name":"AxesDips","init_documentation":{"qualified_name":"salvus.material.orientation.AxesDips.__init__","name":"__init__","signature":"class AxesDips(salvus.material.orientation._OrientedMaterial):\n    def __init__(self, DIP_X: _pd.FC, DIP_Y: _pd.FC) -> None: ...","description":"An orientation material parameterized by dip angles in the X and Y\ndirection.\n\nRotationally (around local Z) ambiguous.","parameters":[{"name":"DIP_X","description":"Dip away from vertical in the XZ plane, in degrees.","type_hint":"_pd.FC","default_value":null},{"name":"DIP_Y","description":"Dip away from vertical in the YZ plane, in degrees.","type_hint":"_pd.FC","default_value":null}]},"methods":[{"qualified_name":"salvus.material.orientation.AxesDips.generate_rotation_matrix","name":"generate_rotation_matrix","signature":"def generate_rotation_matrix(self) -> npt.NDArray: ...","description":"Create the rotation matrix for this orientation material.","parameters":[]},{"qualified_name":"salvus.material.orientation.AxesDips.get_basis_vector","name":"get_basis_vector","signature":"def get_basis_vector(\n    self, axis: typing.Literal[\"local_X\", \"local_Y\", \"local_Z\"]\n) -> npt.NDArray: ...","description":"Gets one of the local basis vectors.","parameters":[{"name":"axis","description":"The local basis vector to get.","type_hint":"typing.Literal['local_X', 'local_Y', 'local_Z']","default_value":null}]},{"qualified_name":"salvus.material.orientation.AxesDips.get_basis_vectors","name":"get_basis_vectors","signature":"def get_basis_vectors(\n    self,\n) -> tuple[npt.NDArray, npt.NDArray, npt.NDArray]: ...","description":"Get local basis vectors for a material expressed in global coordinates.","parameters":[]},{"qualified_name":"salvus.material.orientation.AxesDips.map","name":"map","signature":"def map(\n    self, f: typing.Callable[[str, typing.Any], tuple[str, typing.Any]]\n) -> typing.Self: ...","description":"Generic map for dataclass instances.\n\n`f` should be a function taking two parameters: the name of the\ndataclass member and its value, and it should return a tuple containing\nthe same quantities. If a member is not to be transformed, `f` should\njust return a tuple of the input member name and value, unchanged. Both\nnames and values can be transformed, with the semantics following those\nof `dataclasses.replace`.\n\nIn Salvus we primarily treat dataclasses as containers offering\nsemantics similar to typed dictionaries. Deriving from this protocol\nallows any relevant dataclass to additionally be treated functorially.\nThis allows for the generic un- and re-wrapping of value held in\ndataclasses, and essentially replaces the following imperative code:\n\n```python\n@dataclass\nclass A:\n    member: int\n\n# Before\nmy_a = A(member=1)\nmy_a_new = dataclasses.replace(my_a, member=2 * my_a.member)\n\n# After\nmy_a_new = A(val=1).map(lambda key, val: (key, 2 * val))\n```\n\nAs with many functional patterns, the perceived benefits for simple\ndemonstrative purposes is minimal. The scalability of this pattern\nbecomes apparent, however, when parsing deeply nested abstractions, as\nthe transformation logic can be factored out into independent\nfunctions. This is used extensively, for example, in the realization\nlogic of the layered mesher, where generic materials can have generic\nparameters, etc.","parameters":[{"name":"f","description":"The function to map over the dataclass.","type_hint":"typing.Callable[[str, typing.Any], tuple[str, typing.Any]]","default_value":null}]},{"qualified_name":"salvus.material.orientation.AxesDips.map_realized_parameters","name":"map_realized_parameters","signature":"def map_realized_parameters(\n    self,\n    f_constant: typing.Callable[\n        [str, _pd.RealizedConstantParameter], _pd.RealizedConstantParameter\n    ] = salvus.material.base_materials._map_realized_default,\n    f_discrete: typing.Callable[\n        [str, _pd.RealizedDiscreteParameter], _pd.RealizedDiscreteParameter\n    ] = salvus.material.base_materials._map_realized_default,\n    f_analytic: typing.Callable[\n        [str, _pd.RealizedAnalyticParameter], _pd.RealizedAnalyticParameter\n    ] = salvus.material.base_materials._map_realized_default,\n) -> Self: ...","description":"Apply functions to each parameter individually, distinguishing _pd.\n\nUseful when one wants to transform each parameter type separately. For\ninstance, transformations of discrete parameters often require more\nassociated logic than their constant equivalents. This function\nabstracts away the boilerplate of check for each parameter type, and\nsubsequently transforming it with some function, as well as ensuring\nthat the parameters are indeed of the correct realized type.\n\nThe signatures of each transformation function should take the\nparameter's name and value as two distinct inputs, and return the\n(potentially modified) parameter value.","parameters":[{"name":"f_constant","description":"The function to apply to constant parameters. Defaults to returning the parameter as-is.","type_hint":"typing.Callable[[str, _pd.RealizedConstantParameter], _pd.RealizedConstantParameter]","default_value":"salvus.material.base_materials._map_realized_default"},{"name":"f_discrete","description":"The function to apply to discrete parameters. Defaults to returning the parameter as-is.","type_hint":"typing.Callable[[str, _pd.RealizedDiscreteParameter], _pd.RealizedDiscreteParameter]","default_value":"salvus.material.base_materials._map_realized_default"},{"name":"f_analytic","description":"The function to apply to analytic parameters. Defaults to returning the parameter as-is.","type_hint":"typing.Callable[[str, _pd.RealizedAnalyticParameter], _pd.RealizedAnalyticParameter]","default_value":"salvus.material.base_materials._map_realized_default"}]},{"qualified_name":"salvus.material.orientation.AxesDips.qc_test","name":"qc_test","signature":"def qc_test(\n    self,\n    level: validation.QCLevel | str = QCLevel.strict,\n    display_issues: bool = True,\n) -> dict[str, MaterialQCIssue]: ...","description":"Run a series of material quality control tests.\n\nThe function also prints a summary of the issues found, including their\nseverity and any mitigation steps that can be taken.","parameters":[{"name":"level","description":"The level of quality control to perform. The BASIC level performs minimal checks, while the STRICT level performs more thorough checks that are potentially slow. One can pass an enumeration value or a string representation of the level.","type_hint":"validation.QCLevel | str","default_value":"QCLevel.strict"},{"name":"display_issues","description":"If True, prints the issues found during the quality control checks. If False, issues are collected but not printed.","type_hint":"bool","default_value":"True"}]},{"qualified_name":"salvus.material.orientation.AxesDips.to_json","name":"to_json","signature":"def to_json(\n    self,\n    external_file_hash: types = None,\n    timer: types = None,\n    log_to_logger: bool = False,\n    comm: types = None,\n) -> builtins.dict: ...","description":"Serialize the object to a dictionary that can be written to JSON.","parameters":[{"name":"external_file_hash","description":"Hash of any external files associated with this object. Can be passed here in which case it will be stored in a centralized location in the JSON file.","type_hint":"types","default_value":"None"},{"name":"timer","description":"Execution timer.","type_hint":"types","default_value":"None"},{"name":"log_to_logger","description":"Log timings to the logger.","type_hint":"bool","default_value":"False"},{"name":"comm","description":"MPI communicator, if any.","type_hint":"types","default_value":"None"}]},{"qualified_name":"salvus.material.orientation.AxesDips.to_wavelength_oracle","name":"to_wavelength_oracle","signature":"def to_wavelength_oracle(\n    self, n_dim: typing.Literal[2, 3] | None = None\n) -> _pd.FC: ...","description":"The wavelength oracle.","parameters":[{"name":"n_dim","description":"Dimension to return the oracle for, deprecated.","type_hint":"typing.Literal[2, 3] | None","default_value":"None"}]},{"qualified_name":"salvus.material.orientation.AxesDips.with_orientation","name":"with_orientation","signature":"def with_orientation(self, orientation: Material | None) -> Material: ...","description":"Experimetal method to add orientation to a material.","parameters":[{"name":"orientation","description":"The orientation.","type_hint":"Material | None","default_value":null}]}],"class_methods":[{"qualified_name":"salvus.material.orientation.AxesDips.from_dataset","name":"from_dataset","signature":"def from_dataset(ds: xr.Dataset) -> Material[_pd.F]: ...","description":"Construct a material from an xarray Dataset.","parameters":[{"name":"ds","description":"The dataset to construct the material from.","type_hint":"xr.Dataset","default_value":null}]},{"qualified_name":"salvus.material.orientation.AxesDips.from_json","name":"from_json","signature":"def from_json(d: builtins.dict) -> Any: ...","description":"Recreate the object from a dictionary serialization of its\ninitialization parameters.","parameters":[{"name":"d","description":"Dictionary containing its init parameters and a few other things.","type_hint":"builtins.dict","default_value":null}]},{"qualified_name":"salvus.material.orientation.AxesDips.from_material","name":"from_material","signature":"def from_material(\n    m: Material[_pd.F],\n    reduction_method: (\n        typing.Literal[\"remove-components\", \"force\"] | None\n    ) = None,\n) -> typing.Self: ...","description":"Construct this material from another within the same physical system.","parameters":[{"name":"m","description":"Material to transform.","type_hint":"Material[_pd.F]","default_value":null},{"name":"reduction_method","description":"Method to move between incompatible symmetry classes. None will only move to symmetries that are equal or more permissive, while `remove-components` will drop components that are found to match the new material's constraints as necessary, and thus leading to loss of free parameters but not of information. The option \"force\" will take all information necessary to construct the new parameter set without verification, leading to loss of information.","type_hint":"typing.Literal['remove-components', 'force'] | None","default_value":"None"}]},{"qualified_name":"salvus.material.orientation.AxesDips.from_params","name":"from_params","signature":"def from_params(dip_x: _pd.R, dip_y: _pd.R) -> typing.Self: ...","description":"Construct this material from generic parameters.","parameters":[{"name":"dip_x","description":"Dip away from vertical in the XZ plane, in degrees.","type_hint":"_pd.R","default_value":null},{"name":"dip_y","description":"Dip away from vertical in the YZ plane, in degrees.","type_hint":"_pd.R","default_value":null}]},{"qualified_name":"salvus.material.orientation.AxesDips.material_system","name":"material_system","signature":"def material_system() -> type[Material]: ...","description":"Method that will return the material system of material.","parameters":[]}],"properties":[{"qualified_name":"salvus.material.orientation.AxesDips.ds","name":"ds","description":"Material's xarray representation.","return_type_hint":"typing.Mapping","has_setter":false,"has_deleter":false},{"qualified_name":"salvus.material.orientation.AxesDips.flatten","name":"flatten","description":"Get all parameters as a dict.","return_type_hint":"dict","has_setter":false,"has_deleter":false}]},{"qualified_name":"salvus.material.orientation.AzimuthDip","name":"AzimuthDip","init_documentation":{"qualified_name":"salvus.material.orientation.AzimuthDip.__init__","name":"__init__","signature":"class AzimuthDip(salvus.material.orientation._OrientedMaterial):\n    def __init__(self, AZIMUTH: _pd.FC, DIP: _pd.FC) -> None: ...","description":"An orientation material parameterized by dip and azimuth.\n\nRotationally (around local Z) ambiguous.","parameters":[{"name":"AZIMUTH","description":"Azimuth away from X (towards Y) in degrees.","type_hint":"_pd.FC","default_value":null},{"name":"DIP","description":"Dip away from vertical in degrees,","type_hint":"_pd.FC","default_value":null}]},"methods":[{"qualified_name":"salvus.material.orientation.AzimuthDip.generate_rotation_matrix","name":"generate_rotation_matrix","signature":"def generate_rotation_matrix(self) -> npt.NDArray: ...","description":"Create the rotation matrix for this orientation material.","parameters":[]},{"qualified_name":"salvus.material.orientation.AzimuthDip.get_basis_vector","name":"get_basis_vector","signature":"def get_basis_vector(\n    self, axis: typing.Literal[\"local_X\", \"local_Y\", \"local_Z\"]\n) -> npt.NDArray: ...","description":"Gets one of the local basis vectors.","parameters":[{"name":"axis","description":"The local basis vector to get.","type_hint":"typing.Literal['local_X', 'local_Y', 'local_Z']","default_value":null}]},{"qualified_name":"salvus.material.orientation.AzimuthDip.get_basis_vectors","name":"get_basis_vectors","signature":"def get_basis_vectors(\n    self,\n) -> tuple[npt.NDArray, npt.NDArray, npt.NDArray]: ...","description":"Get local basis vectors for a material expressed in global coordinates.","parameters":[]},{"qualified_name":"salvus.material.orientation.AzimuthDip.map","name":"map","signature":"def map(\n    self, f: typing.Callable[[str, typing.Any], tuple[str, typing.Any]]\n) -> typing.Self: ...","description":"Generic map for dataclass instances.\n\n`f` should be a function taking two parameters: the name of the\ndataclass member and its value, and it should return a tuple containing\nthe same quantities. If a member is not to be transformed, `f` should\njust return a tuple of the input member name and value, unchanged. Both\nnames and values can be transformed, with the semantics following those\nof `dataclasses.replace`.\n\nIn Salvus we primarily treat dataclasses as containers offering\nsemantics similar to typed dictionaries. Deriving from this protocol\nallows any relevant dataclass to additionally be treated functorially.\nThis allows for the generic un- and re-wrapping of value held in\ndataclasses, and essentially replaces the following imperative code:\n\n```python\n@dataclass\nclass A:\n    member: int\n\n# Before\nmy_a = A(member=1)\nmy_a_new = dataclasses.replace(my_a, member=2 * my_a.member)\n\n# After\nmy_a_new = A(val=1).map(lambda key, val: (key, 2 * val))\n```\n\nAs with many functional patterns, the perceived benefits for simple\ndemonstrative purposes is minimal. The scalability of this pattern\nbecomes apparent, however, when parsing deeply nested abstractions, as\nthe transformation logic can be factored out into independent\nfunctions. This is used extensively, for example, in the realization\nlogic of the layered mesher, where generic materials can have generic\nparameters, etc.","parameters":[{"name":"f","description":"The function to map over the dataclass.","type_hint":"typing.Callable[[str, typing.Any], tuple[str, typing.Any]]","default_value":null}]},{"qualified_name":"salvus.material.orientation.AzimuthDip.map_realized_parameters","name":"map_realized_parameters","signature":"def map_realized_parameters(\n    self,\n    f_constant: typing.Callable[\n        [str, _pd.RealizedConstantParameter], _pd.RealizedConstantParameter\n    ] = salvus.material.base_materials._map_realized_default,\n    f_discrete: typing.Callable[\n        [str, _pd.RealizedDiscreteParameter], _pd.RealizedDiscreteParameter\n    ] = salvus.material.base_materials._map_realized_default,\n    f_analytic: typing.Callable[\n        [str, _pd.RealizedAnalyticParameter], _pd.RealizedAnalyticParameter\n    ] = salvus.material.base_materials._map_realized_default,\n) -> Self: ...","description":"Apply functions to each parameter individually, distinguishing _pd.\n\nUseful when one wants to transform each parameter type separately. For\ninstance, transformations of discrete parameters often require more\nassociated logic than their constant equivalents. This function\nabstracts away the boilerplate of check for each parameter type, and\nsubsequently transforming it with some function, as well as ensuring\nthat the parameters are indeed of the correct realized type.\n\nThe signatures of each transformation function should take the\nparameter's name and value as two distinct inputs, and return the\n(potentially modified) parameter value.","parameters":[{"name":"f_constant","description":"The function to apply to constant parameters. Defaults to returning the parameter as-is.","type_hint":"typing.Callable[[str, _pd.RealizedConstantParameter], _pd.RealizedConstantParameter]","default_value":"salvus.material.base_materials._map_realized_default"},{"name":"f_discrete","description":"The function to apply to discrete parameters. Defaults to returning the parameter as-is.","type_hint":"typing.Callable[[str, _pd.RealizedDiscreteParameter], _pd.RealizedDiscreteParameter]","default_value":"salvus.material.base_materials._map_realized_default"},{"name":"f_analytic","description":"The function to apply to analytic parameters. Defaults to returning the parameter as-is.","type_hint":"typing.Callable[[str, _pd.RealizedAnalyticParameter], _pd.RealizedAnalyticParameter]","default_value":"salvus.material.base_materials._map_realized_default"}]},{"qualified_name":"salvus.material.orientation.AzimuthDip.qc_test","name":"qc_test","signature":"def qc_test(\n    self,\n    level: validation.QCLevel | str = QCLevel.strict,\n    display_issues: bool = True,\n) -> dict[str, MaterialQCIssue]: ...","description":"Run a series of material quality control tests.\n\nThe function also prints a summary of the issues found, including their\nseverity and any mitigation steps that can be taken.","parameters":[{"name":"level","description":"The level of quality control to perform. The BASIC level performs minimal checks, while the STRICT level performs more thorough checks that are potentially slow. One can pass an enumeration value or a string representation of the level.","type_hint":"validation.QCLevel | str","default_value":"QCLevel.strict"},{"name":"display_issues","description":"If True, prints the issues found during the quality control checks. If False, issues are collected but not printed.","type_hint":"bool","default_value":"True"}]},{"qualified_name":"salvus.material.orientation.AzimuthDip.to_json","name":"to_json","signature":"def to_json(\n    self,\n    external_file_hash: types = None,\n    timer: types = None,\n    log_to_logger: bool = False,\n    comm: types = None,\n) -> builtins.dict: ...","description":"Serialize the object to a dictionary that can be written to JSON.","parameters":[{"name":"external_file_hash","description":"Hash of any external files associated with this object. Can be passed here in which case it will be stored in a centralized location in the JSON file.","type_hint":"types","default_value":"None"},{"name":"timer","description":"Execution timer.","type_hint":"types","default_value":"None"},{"name":"log_to_logger","description":"Log timings to the logger.","type_hint":"bool","default_value":"False"},{"name":"comm","description":"MPI communicator, if any.","type_hint":"types","default_value":"None"}]},{"qualified_name":"salvus.material.orientation.AzimuthDip.to_wavelength_oracle","name":"to_wavelength_oracle","signature":"def to_wavelength_oracle(\n    self, n_dim: typing.Literal[2, 3] | None = None\n) -> _pd.FC: ...","description":"The wavelength oracle.","parameters":[{"name":"n_dim","description":"Dimension to return the oracle for, deprecated.","type_hint":"typing.Literal[2, 3] | None","default_value":"None"}]},{"qualified_name":"salvus.material.orientation.AzimuthDip.with_orientation","name":"with_orientation","signature":"def with_orientation(self, orientation: Material | None) -> Material: ...","description":"Experimetal method to add orientation to a material.","parameters":[{"name":"orientation","description":"The orientation.","type_hint":"Material | None","default_value":null}]}],"class_methods":[{"qualified_name":"salvus.material.orientation.AzimuthDip.from_dataset","name":"from_dataset","signature":"def from_dataset(ds: xr.Dataset) -> Material[_pd.F]: ...","description":"Construct a material from an xarray Dataset.","parameters":[{"name":"ds","description":"The dataset to construct the material from.","type_hint":"xr.Dataset","default_value":null}]},{"qualified_name":"salvus.material.orientation.AzimuthDip.from_json","name":"from_json","signature":"def from_json(d: builtins.dict) -> Any: ...","description":"Recreate the object from a dictionary serialization of its\ninitialization parameters.","parameters":[{"name":"d","description":"Dictionary containing its init parameters and a few other things.","type_hint":"builtins.dict","default_value":null}]},{"qualified_name":"salvus.material.orientation.AzimuthDip.from_material","name":"from_material","signature":"def from_material(\n    m: Material[_pd.F],\n    reduction_method: (\n        typing.Literal[\"remove-components\", \"force\"] | None\n    ) = None,\n) -> typing.Self: ...","description":"Construct this material from another within the same physical system.","parameters":[{"name":"m","description":"Material to transform.","type_hint":"Material[_pd.F]","default_value":null},{"name":"reduction_method","description":"Method to move between incompatible symmetry classes. None will only move to symmetries that are equal or more permissive, while `remove-components` will drop components that are found to match the new material's constraints as necessary, and thus leading to loss of free parameters but not of information. The option \"force\" will take all information necessary to construct the new parameter set without verification, leading to loss of information.","type_hint":"typing.Literal['remove-components', 'force'] | None","default_value":"None"}]},{"qualified_name":"salvus.material.orientation.AzimuthDip.from_params","name":"from_params","signature":"def from_params(azimuth: _pd.R, dip: _pd.R) -> typing.Self: ...","description":"Construct this material from generic parameters.","parameters":[{"name":"azimuth","description":"Azimuth away from X (towards Y) in degrees.","type_hint":"_pd.R","default_value":null},{"name":"dip","description":"Dip away from vertical in degrees.","type_hint":"_pd.R","default_value":null}]},{"qualified_name":"salvus.material.orientation.AzimuthDip.material_system","name":"material_system","signature":"def material_system() -> type[Material]: ...","description":"Method that will return the material system of material.","parameters":[]}],"properties":[{"qualified_name":"salvus.material.orientation.AzimuthDip.ds","name":"ds","description":"Material's xarray representation.","return_type_hint":"typing.Mapping","has_setter":false,"has_deleter":false},{"qualified_name":"salvus.material.orientation.AzimuthDip.flatten","name":"flatten","description":"Get all parameters as a dict.","return_type_hint":"dict","has_setter":false,"has_deleter":false}]},{"qualified_name":"salvus.material.orientation.AzimuthDipRake","name":"AzimuthDipRake","init_documentation":{"qualified_name":"salvus.material.orientation.AzimuthDipRake.__init__","name":"__init__","signature":"class AzimuthDipRake(salvus.material.orientation._OrientedMaterial):\n    def __init__(self, AZIMUTH: _pd.FC, DIP: _pd.FC, RAKE: _pd.FC) -> None: ...","description":"An orientation material parameterized by dip, azimuth and rake.\n\nRake is the intrinsic rotation in degrees about the local Z in the tilt\nplane. It describes the direction of local X and Y with respect to the\nstrike, i.e. the line on the dipping plane which runs horizontal. It can be\nunderstood by \"looking\" along the azimuthal direction towards the \"down\"\ndirection. With a rake of 0, this direction is the local X, and to the left\n(along the horizontal strike of the plane) is the local Y. Rake is measured\nanticlockwise from this frame (i.e. from local X towards local Y). X being\naligned exactly horizontally to the left when looking down the dip plane\ncorresponds to a rake of 90. In global coordinates, the projection of local\nX and global X have an angle of azimuth + rake.","parameters":[{"name":"AZIMUTH","description":"Azimuth away from X (towards Y) in degrees.","type_hint":"_pd.FC","default_value":null},{"name":"DIP","description":"Dip away from vertical in degrees.","type_hint":"_pd.FC","default_value":null},{"name":"RAKE","description":"Rake that local X makes away from straight down the dipplane in degrees. 0 is straight down the dip plane, 90 is horizontal to the left (anticlockwise) of the dip plane, when looking down the dip plane. This is an intrinsic angle, and the direction of local X and Y will be determined by the combination of azimuth and rake.","type_hint":"_pd.FC","default_value":null}]},"methods":[{"qualified_name":"salvus.material.orientation.AzimuthDipRake.generate_rotation_matrix","name":"generate_rotation_matrix","signature":"def generate_rotation_matrix(self) -> npt.NDArray: ...","description":"Create the rotation matrix for this orientation material.","parameters":[]},{"qualified_name":"salvus.material.orientation.AzimuthDipRake.get_basis_vector","name":"get_basis_vector","signature":"def get_basis_vector(\n    self, axis: typing.Literal[\"local_X\", \"local_Y\", \"local_Z\"]\n) -> npt.NDArray: ...","description":"Gets one of the local basis vectors.","parameters":[{"name":"axis","description":"The local basis vector to get.","type_hint":"typing.Literal['local_X', 'local_Y', 'local_Z']","default_value":null}]},{"qualified_name":"salvus.material.orientation.AzimuthDipRake.get_basis_vectors","name":"get_basis_vectors","signature":"def get_basis_vectors(\n    self,\n) -> tuple[npt.NDArray, npt.NDArray, npt.NDArray]: ...","description":"Get local basis vectors for a material expressed in global coordinates.","parameters":[]},{"qualified_name":"salvus.material.orientation.AzimuthDipRake.map","name":"map","signature":"def map(\n    self, f: typing.Callable[[str, typing.Any], tuple[str, typing.Any]]\n) -> typing.Self: ...","description":"Generic map for dataclass instances.\n\n`f` should be a function taking two parameters: the name of the\ndataclass member and its value, and it should return a tuple containing\nthe same quantities. If a member is not to be transformed, `f` should\njust return a tuple of the input member name and value, unchanged. Both\nnames and values can be transformed, with the semantics following those\nof `dataclasses.replace`.\n\nIn Salvus we primarily treat dataclasses as containers offering\nsemantics similar to typed dictionaries. Deriving from this protocol\nallows any relevant dataclass to additionally be treated functorially.\nThis allows for the generic un- and re-wrapping of value held in\ndataclasses, and essentially replaces the following imperative code:\n\n```python\n@dataclass\nclass A:\n    member: int\n\n# Before\nmy_a = A(member=1)\nmy_a_new = dataclasses.replace(my_a, member=2 * my_a.member)\n\n# After\nmy_a_new = A(val=1).map(lambda key, val: (key, 2 * val))\n```\n\nAs with many functional patterns, the perceived benefits for simple\ndemonstrative purposes is minimal. The scalability of this pattern\nbecomes apparent, however, when parsing deeply nested abstractions, as\nthe transformation logic can be factored out into independent\nfunctions. This is used extensively, for example, in the realization\nlogic of the layered mesher, where generic materials can have generic\nparameters, etc.","parameters":[{"name":"f","description":"The function to map over the dataclass.","type_hint":"typing.Callable[[str, typing.Any], tuple[str, typing.Any]]","default_value":null}]},{"qualified_name":"salvus.material.orientation.AzimuthDipRake.map_realized_parameters","name":"map_realized_parameters","signature":"def map_realized_parameters(\n    self,\n    f_constant: typing.Callable[\n        [str, _pd.RealizedConstantParameter], _pd.RealizedConstantParameter\n    ] = salvus.material.base_materials._map_realized_default,\n    f_discrete: typing.Callable[\n        [str, _pd.RealizedDiscreteParameter], _pd.RealizedDiscreteParameter\n    ] = salvus.material.base_materials._map_realized_default,\n    f_analytic: typing.Callable[\n        [str, _pd.RealizedAnalyticParameter], _pd.RealizedAnalyticParameter\n    ] = salvus.material.base_materials._map_realized_default,\n) -> Self: ...","description":"Apply functions to each parameter individually, distinguishing _pd.\n\nUseful when one wants to transform each parameter type separately. For\ninstance, transformations of discrete parameters often require more\nassociated logic than their constant equivalents. This function\nabstracts away the boilerplate of check for each parameter type, and\nsubsequently transforming it with some function, as well as ensuring\nthat the parameters are indeed of the correct realized type.\n\nThe signatures of each transformation function should take the\nparameter's name and value as two distinct inputs, and return the\n(potentially modified) parameter value.","parameters":[{"name":"f_constant","description":"The function to apply to constant parameters. Defaults to returning the parameter as-is.","type_hint":"typing.Callable[[str, _pd.RealizedConstantParameter], _pd.RealizedConstantParameter]","default_value":"salvus.material.base_materials._map_realized_default"},{"name":"f_discrete","description":"The function to apply to discrete parameters. Defaults to returning the parameter as-is.","type_hint":"typing.Callable[[str, _pd.RealizedDiscreteParameter], _pd.RealizedDiscreteParameter]","default_value":"salvus.material.base_materials._map_realized_default"},{"name":"f_analytic","description":"The function to apply to analytic parameters. Defaults to returning the parameter as-is.","type_hint":"typing.Callable[[str, _pd.RealizedAnalyticParameter], _pd.RealizedAnalyticParameter]","default_value":"salvus.material.base_materials._map_realized_default"}]},{"qualified_name":"salvus.material.orientation.AzimuthDipRake.qc_test","name":"qc_test","signature":"def qc_test(\n    self,\n    level: validation.QCLevel | str = QCLevel.strict,\n    display_issues: bool = True,\n) -> dict[str, MaterialQCIssue]: ...","description":"Run a series of material quality control tests.\n\nThe function also prints a summary of the issues found, including their\nseverity and any mitigation steps that can be taken.","parameters":[{"name":"level","description":"The level of quality control to perform. The BASIC level performs minimal checks, while the STRICT level performs more thorough checks that are potentially slow. One can pass an enumeration value or a string representation of the level.","type_hint":"validation.QCLevel | str","default_value":"QCLevel.strict"},{"name":"display_issues","description":"If True, prints the issues found during the quality control checks. If False, issues are collected but not printed.","type_hint":"bool","default_value":"True"}]},{"qualified_name":"salvus.material.orientation.AzimuthDipRake.to_json","name":"to_json","signature":"def to_json(\n    self,\n    external_file_hash: types = None,\n    timer: types = None,\n    log_to_logger: bool = False,\n    comm: types = None,\n) -> builtins.dict: ...","description":"Serialize the object to a dictionary that can be written to JSON.","parameters":[{"name":"external_file_hash","description":"Hash of any external files associated with this object. Can be passed here in which case it will be stored in a centralized location in the JSON file.","type_hint":"types","default_value":"None"},{"name":"timer","description":"Execution timer.","type_hint":"types","default_value":"None"},{"name":"log_to_logger","description":"Log timings to the logger.","type_hint":"bool","default_value":"False"},{"name":"comm","description":"MPI communicator, if any.","type_hint":"types","default_value":"None"}]},{"qualified_name":"salvus.material.orientation.AzimuthDipRake.to_wavelength_oracle","name":"to_wavelength_oracle","signature":"def to_wavelength_oracle(\n    self, n_dim: typing.Literal[2, 3] | None = None\n) -> _pd.FC: ...","description":"The wavelength oracle.","parameters":[{"name":"n_dim","description":"Dimension to return the oracle for, deprecated.","type_hint":"typing.Literal[2, 3] | None","default_value":"None"}]},{"qualified_name":"salvus.material.orientation.AzimuthDipRake.with_orientation","name":"with_orientation","signature":"def with_orientation(self, orientation: Material | None) -> Material: ...","description":"Experimetal method to add orientation to a material.","parameters":[{"name":"orientation","description":"The orientation.","type_hint":"Material | None","default_value":null}]}],"class_methods":[{"qualified_name":"salvus.material.orientation.AzimuthDipRake.from_dataset","name":"from_dataset","signature":"def from_dataset(ds: xr.Dataset) -> Material[_pd.F]: ...","description":"Construct a material from an xarray Dataset.","parameters":[{"name":"ds","description":"The dataset to construct the material from.","type_hint":"xr.Dataset","default_value":null}]},{"qualified_name":"salvus.material.orientation.AzimuthDipRake.from_json","name":"from_json","signature":"def from_json(d: builtins.dict) -> Any: ...","description":"Recreate the object from a dictionary serialization of its\ninitialization parameters.","parameters":[{"name":"d","description":"Dictionary containing its init parameters and a few other things.","type_hint":"builtins.dict","default_value":null}]},{"qualified_name":"salvus.material.orientation.AzimuthDipRake.from_material","name":"from_material","signature":"def from_material(\n    m: Material[_pd.F],\n    reduction_method: (\n        typing.Literal[\"remove-components\", \"force\"] | None\n    ) = None,\n) -> typing.Self: ...","description":"Construct this material from another within the same physical system.","parameters":[{"name":"m","description":"Material to transform.","type_hint":"Material[_pd.F]","default_value":null},{"name":"reduction_method","description":"Method to move between incompatible symmetry classes. None will only move to symmetries that are equal or more permissive, while `remove-components` will drop components that are found to match the new material's constraints as necessary, and thus leading to loss of free parameters but not of information. The option \"force\" will take all information necessary to construct the new parameter set without verification, leading to loss of information.","type_hint":"typing.Literal['remove-components', 'force'] | None","default_value":"None"}]},{"qualified_name":"salvus.material.orientation.AzimuthDipRake.from_params","name":"from_params","signature":"def from_params(azimuth: _pd.R, dip: _pd.R, rake: _pd.R) -> typing.Self: ...","description":"Construct this material from generic parameters.","parameters":[{"name":"azimuth","description":"Azimuth away from global X (towards Y) in degrees.","type_hint":"_pd.R","default_value":null},{"name":"dip","description":"Dip away from vertical in degrees.","type_hint":"_pd.R","default_value":null},{"name":"rake","description":"Rake that local X makes away from straight down the dipplane in degrees. 0 is straight down the dip plane, 90 is horizontal to the left (anticlockwise) of the dip plane, when looking down the dip plane.","type_hint":"_pd.R","default_value":null}]},{"qualified_name":"salvus.material.orientation.AzimuthDipRake.material_system","name":"material_system","signature":"def material_system() -> type[Material]: ...","description":"Method that will return the material system of material.","parameters":[]}],"properties":[{"qualified_name":"salvus.material.orientation.AzimuthDipRake.ds","name":"ds","description":"Material's xarray representation.","return_type_hint":"typing.Mapping","has_setter":false,"has_deleter":false},{"qualified_name":"salvus.material.orientation.AzimuthDipRake.flatten","name":"flatten","description":"Get all parameters as a dict.","return_type_hint":"dict","has_setter":false,"has_deleter":false}]},{"qualified_name":"salvus.material.orientation.ClockwiseAngle","name":"ClockwiseAngle","init_documentation":{"qualified_name":"salvus.material.orientation.ClockwiseAngle.__init__","name":"__init__","signature":"class ClockwiseAngle(salvus.material.orientation._OrientedMaterial):\n    def __init__(self, ANGLE_IN_DEGREES: _pd.FC) -> None: ...","description":"An orientation material parameterized by a clockwise rotation angle.\n\nOnly useful for 2-D materials.","parameters":[{"name":"ANGLE_IN_DEGREES","description":"The clockwise rotation angle in degree.","type_hint":"_pd.FC","default_value":null}]},"methods":[{"qualified_name":"salvus.material.orientation.ClockwiseAngle.generate_rotation_matrix","name":"generate_rotation_matrix","signature":"def generate_rotation_matrix(self) -> npt.NDArray: ...","description":"Create the rotation matrix for this orientation material.","parameters":[]},{"qualified_name":"salvus.material.orientation.ClockwiseAngle.get_basis_vector","name":"get_basis_vector","signature":"def get_basis_vector(\n    self, axis: typing.Literal[\"local_X\", \"local_Y\", \"local_Z\"]\n) -> npt.NDArray: ...","description":"Gets one of the local basis vectors.","parameters":[{"name":"axis","description":"The local basis vector to get.","type_hint":"typing.Literal['local_X', 'local_Y', 'local_Z']","default_value":null}]},{"qualified_name":"salvus.material.orientation.ClockwiseAngle.get_basis_vectors","name":"get_basis_vectors","signature":"def get_basis_vectors(\n    self,\n) -> tuple[npt.NDArray, npt.NDArray, npt.NDArray]: ...","description":"Get local basis vectors for a material expressed in global coordinates.","parameters":[]},{"qualified_name":"salvus.material.orientation.ClockwiseAngle.map","name":"map","signature":"def map(\n    self, f: typing.Callable[[str, typing.Any], tuple[str, typing.Any]]\n) -> typing.Self: ...","description":"Generic map for dataclass instances.\n\n`f` should be a function taking two parameters: the name of the\ndataclass member and its value, and it should return a tuple containing\nthe same quantities. If a member is not to be transformed, `f` should\njust return a tuple of the input member name and value, unchanged. Both\nnames and values can be transformed, with the semantics following those\nof `dataclasses.replace`.\n\nIn Salvus we primarily treat dataclasses as containers offering\nsemantics similar to typed dictionaries. Deriving from this protocol\nallows any relevant dataclass to additionally be treated functorially.\nThis allows for the generic un- and re-wrapping of value held in\ndataclasses, and essentially replaces the following imperative code:\n\n```python\n@dataclass\nclass A:\n    member: int\n\n# Before\nmy_a = A(member=1)\nmy_a_new = dataclasses.replace(my_a, member=2 * my_a.member)\n\n# After\nmy_a_new = A(val=1).map(lambda key, val: (key, 2 * val))\n```\n\nAs with many functional patterns, the perceived benefits for simple\ndemonstrative purposes is minimal. The scalability of this pattern\nbecomes apparent, however, when parsing deeply nested abstractions, as\nthe transformation logic can be factored out into independent\nfunctions. This is used extensively, for example, in the realization\nlogic of the layered mesher, where generic materials can have generic\nparameters, etc.","parameters":[{"name":"f","description":"The function to map over the dataclass.","type_hint":"typing.Callable[[str, typing.Any], tuple[str, typing.Any]]","default_value":null}]},{"qualified_name":"salvus.material.orientation.ClockwiseAngle.map_realized_parameters","name":"map_realized_parameters","signature":"def map_realized_parameters(\n    self,\n    f_constant: typing.Callable[\n        [str, _pd.RealizedConstantParameter], _pd.RealizedConstantParameter\n    ] = salvus.material.base_materials._map_realized_default,\n    f_discrete: typing.Callable[\n        [str, _pd.RealizedDiscreteParameter], _pd.RealizedDiscreteParameter\n    ] = salvus.material.base_materials._map_realized_default,\n    f_analytic: typing.Callable[\n        [str, _pd.RealizedAnalyticParameter], _pd.RealizedAnalyticParameter\n    ] = salvus.material.base_materials._map_realized_default,\n) -> Self: ...","description":"Apply functions to each parameter individually, distinguishing _pd.\n\nUseful when one wants to transform each parameter type separately. For\ninstance, transformations of discrete parameters often require more\nassociated logic than their constant equivalents. This function\nabstracts away the boilerplate of check for each parameter type, and\nsubsequently transforming it with some function, as well as ensuring\nthat the parameters are indeed of the correct realized type.\n\nThe signatures of each transformation function should take the\nparameter's name and value as two distinct inputs, and return the\n(potentially modified) parameter value.","parameters":[{"name":"f_constant","description":"The function to apply to constant parameters. Defaults to returning the parameter as-is.","type_hint":"typing.Callable[[str, _pd.RealizedConstantParameter], _pd.RealizedConstantParameter]","default_value":"salvus.material.base_materials._map_realized_default"},{"name":"f_discrete","description":"The function to apply to discrete parameters. Defaults to returning the parameter as-is.","type_hint":"typing.Callable[[str, _pd.RealizedDiscreteParameter], _pd.RealizedDiscreteParameter]","default_value":"salvus.material.base_materials._map_realized_default"},{"name":"f_analytic","description":"The function to apply to analytic parameters. Defaults to returning the parameter as-is.","type_hint":"typing.Callable[[str, _pd.RealizedAnalyticParameter], _pd.RealizedAnalyticParameter]","default_value":"salvus.material.base_materials._map_realized_default"}]},{"qualified_name":"salvus.material.orientation.ClockwiseAngle.qc_test","name":"qc_test","signature":"def qc_test(\n    self,\n    level: validation.QCLevel | str = QCLevel.strict,\n    display_issues: bool = True,\n) -> dict[str, MaterialQCIssue]: ...","description":"Run a series of material quality control tests.\n\nThe function also prints a summary of the issues found, including their\nseverity and any mitigation steps that can be taken.","parameters":[{"name":"level","description":"The level of quality control to perform. The BASIC level performs minimal checks, while the STRICT level performs more thorough checks that are potentially slow. One can pass an enumeration value or a string representation of the level.","type_hint":"validation.QCLevel | str","default_value":"QCLevel.strict"},{"name":"display_issues","description":"If True, prints the issues found during the quality control checks. If False, issues are collected but not printed.","type_hint":"bool","default_value":"True"}]},{"qualified_name":"salvus.material.orientation.ClockwiseAngle.to_json","name":"to_json","signature":"def to_json(\n    self,\n    external_file_hash: types = None,\n    timer: types = None,\n    log_to_logger: bool = False,\n    comm: types = None,\n) -> builtins.dict: ...","description":"Serialize the object to a dictionary that can be written to JSON.","parameters":[{"name":"external_file_hash","description":"Hash of any external files associated with this object. Can be passed here in which case it will be stored in a centralized location in the JSON file.","type_hint":"types","default_value":"None"},{"name":"timer","description":"Execution timer.","type_hint":"types","default_value":"None"},{"name":"log_to_logger","description":"Log timings to the logger.","type_hint":"bool","default_value":"False"},{"name":"comm","description":"MPI communicator, if any.","type_hint":"types","default_value":"None"}]},{"qualified_name":"salvus.material.orientation.ClockwiseAngle.to_wavelength_oracle","name":"to_wavelength_oracle","signature":"def to_wavelength_oracle(\n    self, n_dim: typing.Literal[2, 3] | None = None\n) -> _pd.FC: ...","description":"The wavelength oracle.","parameters":[{"name":"n_dim","description":"Dimension to return the oracle for, deprecated.","type_hint":"typing.Literal[2, 3] | None","default_value":"None"}]},{"qualified_name":"salvus.material.orientation.ClockwiseAngle.with_orientation","name":"with_orientation","signature":"def with_orientation(self, orientation: Material | None) -> Material: ...","description":"Experimetal method to add orientation to a material.","parameters":[{"name":"orientation","description":"The orientation.","type_hint":"Material | None","default_value":null}]}],"class_methods":[{"qualified_name":"salvus.material.orientation.ClockwiseAngle.from_dataset","name":"from_dataset","signature":"def from_dataset(ds: xr.Dataset) -> Material[_pd.F]: ...","description":"Construct a material from an xarray Dataset.","parameters":[{"name":"ds","description":"The dataset to construct the material from.","type_hint":"xr.Dataset","default_value":null}]},{"qualified_name":"salvus.material.orientation.ClockwiseAngle.from_json","name":"from_json","signature":"def from_json(d: builtins.dict) -> Any: ...","description":"Recreate the object from a dictionary serialization of its\ninitialization parameters.","parameters":[{"name":"d","description":"Dictionary containing its init parameters and a few other things.","type_hint":"builtins.dict","default_value":null}]},{"qualified_name":"salvus.material.orientation.ClockwiseAngle.from_material","name":"from_material","signature":"def from_material(\n    m: Material[_pd.F],\n    reduction_method: (\n        typing.Literal[\"remove-components\", \"force\"] | None\n    ) = None,\n) -> typing.Self: ...","description":"Construct this material from another within the same physical system.","parameters":[{"name":"m","description":"Material to transform.","type_hint":"Material[_pd.F]","default_value":null},{"name":"reduction_method","description":"Method to move between incompatible symmetry classes. None will only move to symmetries that are equal or more permissive, while `remove-components` will drop components that are found to match the new material's constraints as necessary, and thus leading to loss of free parameters but not of information. The option \"force\" will take all information necessary to construct the new parameter set without verification, leading to loss of information.","type_hint":"typing.Literal['remove-components', 'force'] | None","default_value":"None"}]},{"qualified_name":"salvus.material.orientation.ClockwiseAngle.from_params","name":"from_params","signature":"def from_params(angle_in_degrees: _pd.R) -> typing.Self: ...","description":"Construct this material from generic parameters.","parameters":[{"name":"angle_in_degrees","description":"The clockwise rotation angle in degree.","type_hint":"_pd.R","default_value":null}]},{"qualified_name":"salvus.material.orientation.ClockwiseAngle.material_system","name":"material_system","signature":"def material_system() -> type[Material]: ...","description":"Method that will return the material system of material.","parameters":[]}],"properties":[{"qualified_name":"salvus.material.orientation.ClockwiseAngle.ds","name":"ds","description":"Material's xarray representation.","return_type_hint":"typing.Mapping","has_setter":false,"has_deleter":false},{"qualified_name":"salvus.material.orientation.ClockwiseAngle.flatten","name":"flatten","description":"Get all parameters as a dict.","return_type_hint":"dict","has_setter":false,"has_deleter":false}]},{"qualified_name":"salvus.material.orientation.DirectOrthonormalBasis","name":"DirectOrthonormalBasis","init_documentation":{"qualified_name":"salvus.material.orientation.DirectOrthonormalBasis.__init__","name":"__init__","signature":"class DirectOrthonormalBasis(salvus.material.orientation._OrientedMaterial):\n    def __init__(\n        self,\n        M00: _pd.FC,\n        M01: _pd.FC,\n        M02: _pd.FC,\n        M10: _pd.FC,\n        M11: _pd.FC,\n        M12: _pd.FC,\n        M20: _pd.FC,\n        M21: _pd.FC,\n        M22: _pd.FC,\n    ) -> None: ...","description":"Orientation given directly by an orthonormal basis matrix.\n\nThe basis vectors are given in the order local_X, local_Y, local_Z. The\nbasis vectors are assumed to be orthonormal and right-handed. The\norientation is given by the rotation matrix that transforms the global\nbasis vectors to the local basis vectors.\n\nBy default, Gram-Schmidt (GS) orthonormalization is applied to the input\nvectors to ensure they are orthonormal and right-handed, even if the input\nvectors are only approximately so (e.g., due to numerical error). This is\nrecommended unless you are certain your input vectors are already exactly\northonormal and right-handed, in which case you can disable GS by setting\n`skip_orthonormalization=True` on various constructors for improved\nperformance and to preserve the original vectors exactly.\n\n- If GS is enabled (the default), the input vectors will be orthonormalized\n  in the order local_X, local_Y, local_Z.\n- If GS is disabled, the input vectors are used as-is, and it is the\n  caller's responsibility to ensure they are orthonormal and right-handed.","parameters":[{"name":"M00","description":"The first component of the first basis vector.","type_hint":"_pd.FC","default_value":null},{"name":"M01","description":"The second component of the first basis vector.","type_hint":"_pd.FC","default_value":null},{"name":"M02","description":"The third component of the first basis vector.","type_hint":"_pd.FC","default_value":null},{"name":"M10","description":"The first component of the second basis vector.","type_hint":"_pd.FC","default_value":null},{"name":"M11","description":"The second component of the second basis vector.","type_hint":"_pd.FC","default_value":null},{"name":"M12","description":"The third component of the second basis vector.","type_hint":"_pd.FC","default_value":null},{"name":"M20","description":"The first component of the third basis vector.","type_hint":"_pd.FC","default_value":null},{"name":"M21","description":"The second component of the third basis vector.","type_hint":"_pd.FC","default_value":null},{"name":"M22","description":"The third component of the third basis vector.","type_hint":"_pd.FC","default_value":null}]},"methods":[{"qualified_name":"salvus.material.orientation.DirectOrthonormalBasis.generate_rotation_matrix","name":"generate_rotation_matrix","signature":"def generate_rotation_matrix(self) -> npt.NDArray: ...","description":"Reconstruct the rotation matrix from stored components.","parameters":[]},{"qualified_name":"salvus.material.orientation.DirectOrthonormalBasis.get_basis_vector","name":"get_basis_vector","signature":"def get_basis_vector(\n    self, axis: typing.Literal[\"local_X\", \"local_Y\", \"local_Z\"]\n) -> npt.NDArray: ...","description":"Gets one of the local basis vectors.","parameters":[{"name":"axis","description":"The local basis vector to get.","type_hint":"typing.Literal['local_X', 'local_Y', 'local_Z']","default_value":null}]},{"qualified_name":"salvus.material.orientation.DirectOrthonormalBasis.get_basis_vectors","name":"get_basis_vectors","signature":"def get_basis_vectors(\n    self,\n) -> tuple[npt.NDArray, npt.NDArray, npt.NDArray]: ...","description":"Get local basis vectors for a material expressed in global coordinates.","parameters":[]},{"qualified_name":"salvus.material.orientation.DirectOrthonormalBasis.map","name":"map","signature":"def map(\n    self, f: typing.Callable[[str, typing.Any], tuple[str, typing.Any]]\n) -> typing.Self: ...","description":"Generic map for dataclass instances.\n\n`f` should be a function taking two parameters: the name of the\ndataclass member and its value, and it should return a tuple containing\nthe same quantities. If a member is not to be transformed, `f` should\njust return a tuple of the input member name and value, unchanged. Both\nnames and values can be transformed, with the semantics following those\nof `dataclasses.replace`.\n\nIn Salvus we primarily treat dataclasses as containers offering\nsemantics similar to typed dictionaries. Deriving from this protocol\nallows any relevant dataclass to additionally be treated functorially.\nThis allows for the generic un- and re-wrapping of value held in\ndataclasses, and essentially replaces the following imperative code:\n\n```python\n@dataclass\nclass A:\n    member: int\n\n# Before\nmy_a = A(member=1)\nmy_a_new = dataclasses.replace(my_a, member=2 * my_a.member)\n\n# After\nmy_a_new = A(val=1).map(lambda key, val: (key, 2 * val))\n```\n\nAs with many functional patterns, the perceived benefits for simple\ndemonstrative purposes is minimal. The scalability of this pattern\nbecomes apparent, however, when parsing deeply nested abstractions, as\nthe transformation logic can be factored out into independent\nfunctions. This is used extensively, for example, in the realization\nlogic of the layered mesher, where generic materials can have generic\nparameters, etc.","parameters":[{"name":"f","description":"The function to map over the dataclass.","type_hint":"typing.Callable[[str, typing.Any], tuple[str, typing.Any]]","default_value":null}]},{"qualified_name":"salvus.material.orientation.DirectOrthonormalBasis.map_realized_parameters","name":"map_realized_parameters","signature":"def map_realized_parameters(\n    self,\n    f_constant: typing.Callable[\n        [str, _pd.RealizedConstantParameter], _pd.RealizedConstantParameter\n    ] = salvus.material.base_materials._map_realized_default,\n    f_discrete: typing.Callable[\n        [str, _pd.RealizedDiscreteParameter], _pd.RealizedDiscreteParameter\n    ] = salvus.material.base_materials._map_realized_default,\n    f_analytic: typing.Callable[\n        [str, _pd.RealizedAnalyticParameter], _pd.RealizedAnalyticParameter\n    ] = salvus.material.base_materials._map_realized_default,\n) -> Self: ...","description":"Apply functions to each parameter individually, distinguishing _pd.\n\nUseful when one wants to transform each parameter type separately. For\ninstance, transformations of discrete parameters often require more\nassociated logic than their constant equivalents. This function\nabstracts away the boilerplate of check for each parameter type, and\nsubsequently transforming it with some function, as well as ensuring\nthat the parameters are indeed of the correct realized type.\n\nThe signatures of each transformation function should take the\nparameter's name and value as two distinct inputs, and return the\n(potentially modified) parameter value.","parameters":[{"name":"f_constant","description":"The function to apply to constant parameters. Defaults to returning the parameter as-is.","type_hint":"typing.Callable[[str, _pd.RealizedConstantParameter], _pd.RealizedConstantParameter]","default_value":"salvus.material.base_materials._map_realized_default"},{"name":"f_discrete","description":"The function to apply to discrete parameters. Defaults to returning the parameter as-is.","type_hint":"typing.Callable[[str, _pd.RealizedDiscreteParameter], _pd.RealizedDiscreteParameter]","default_value":"salvus.material.base_materials._map_realized_default"},{"name":"f_analytic","description":"The function to apply to analytic parameters. Defaults to returning the parameter as-is.","type_hint":"typing.Callable[[str, _pd.RealizedAnalyticParameter], _pd.RealizedAnalyticParameter]","default_value":"salvus.material.base_materials._map_realized_default"}]},{"qualified_name":"salvus.material.orientation.DirectOrthonormalBasis.qc_test","name":"qc_test","signature":"def qc_test(\n    self,\n    level: validation.QCLevel | str = QCLevel.strict,\n    display_issues: bool = True,\n) -> dict[str, MaterialQCIssue]: ...","description":"Run a series of material quality control tests.\n\nThe function also prints a summary of the issues found, including their\nseverity and any mitigation steps that can be taken.","parameters":[{"name":"level","description":"The level of quality control to perform. The BASIC level performs minimal checks, while the STRICT level performs more thorough checks that are potentially slow. One can pass an enumeration value or a string representation of the level.","type_hint":"validation.QCLevel | str","default_value":"QCLevel.strict"},{"name":"display_issues","description":"If True, prints the issues found during the quality control checks. If False, issues are collected but not printed.","type_hint":"bool","default_value":"True"}]},{"qualified_name":"salvus.material.orientation.DirectOrthonormalBasis.to_json","name":"to_json","signature":"def to_json(\n    self,\n    external_file_hash: types = None,\n    timer: types = None,\n    log_to_logger: bool = False,\n    comm: types = None,\n) -> builtins.dict: ...","description":"Serialize the object to a dictionary that can be written to JSON.","parameters":[{"name":"external_file_hash","description":"Hash of any external files associated with this object. Can be passed here in which case it will be stored in a centralized location in the JSON file.","type_hint":"types","default_value":"None"},{"name":"timer","description":"Execution timer.","type_hint":"types","default_value":"None"},{"name":"log_to_logger","description":"Log timings to the logger.","type_hint":"bool","default_value":"False"},{"name":"comm","description":"MPI communicator, if any.","type_hint":"types","default_value":"None"}]},{"qualified_name":"salvus.material.orientation.DirectOrthonormalBasis.to_wavelength_oracle","name":"to_wavelength_oracle","signature":"def to_wavelength_oracle(\n    self, n_dim: typing.Literal[2, 3] | None = None\n) -> _pd.FC: ...","description":"The wavelength oracle.","parameters":[{"name":"n_dim","description":"Dimension to return the oracle for, deprecated.","type_hint":"typing.Literal[2, 3] | None","default_value":"None"}]},{"qualified_name":"salvus.material.orientation.DirectOrthonormalBasis.with_orientation","name":"with_orientation","signature":"def with_orientation(self, orientation: Material | None) -> Material: ...","description":"Experimetal method to add orientation to a material.","parameters":[{"name":"orientation","description":"The orientation.","type_hint":"Material | None","default_value":null}]}],"class_methods":[{"qualified_name":"salvus.material.orientation.DirectOrthonormalBasis.from_array","name":"from_array","signature":"def from_array(\n    matrix: npt.NDArray, skip_orthonormalization: bool = False\n) -> typing.Self: ...","description":"Construct this material from a 3x3 matrix or array of matrices.","parameters":[{"name":"matrix","description":"A 3x3 matrix or array of matrices that represent the local basis vectors.","type_hint":"npt.NDArray","default_value":null},{"name":"skip_orthonormalization","description":"If True, the Gram-Schmidt orthonormalization procedure is skipped. This is useful if one is sure that the input vectors are already orthonormal. If False, the Gram-Schmidt orthonormalization procedure is applied to the input vectors. Gram-Schmidt orthonormalization applied in m0, m1, m2 order.","type_hint":"bool","default_value":"False"}]},{"qualified_name":"salvus.material.orientation.DirectOrthonormalBasis.from_basis_vectors","name":"from_basis_vectors","signature":"def from_basis_vectors(\n    local_x: npt.NDArray,\n    local_y: npt.NDArray,\n    local_z: npt.NDArray,\n    skip_orthonormalization: bool = False,\n) -> typing.Self: ...","description":"Construct from three orthonormal basis vectors.","parameters":[{"name":"local_x","description":"The first basis vector.","type_hint":"npt.NDArray","default_value":null},{"name":"local_y","description":"The second basis vector.","type_hint":"npt.NDArray","default_value":null},{"name":"local_z","description":"The third basis vector.","type_hint":"npt.NDArray","default_value":null},{"name":"skip_orthonormalization","description":"If True, the Gram-Schmidt orthonormalization procedure is skipped. This is useful if one is sure that the input vectors are already orthonormal. If False, the Gram-Schmidt orthonormalization procedure is applied to the input vectors. Gram-Schmidt orthonormalization applied in m0, m1, m2 order.","type_hint":"bool","default_value":"False"}]},{"qualified_name":"salvus.material.orientation.DirectOrthonormalBasis.from_dataset","name":"from_dataset","signature":"def from_dataset(ds: xr.Dataset) -> Material[_pd.F]: ...","description":"Construct a material from an xarray Dataset.","parameters":[{"name":"ds","description":"The dataset to construct the material from.","type_hint":"xr.Dataset","default_value":null}]},{"qualified_name":"salvus.material.orientation.DirectOrthonormalBasis.from_json","name":"from_json","signature":"def from_json(d: builtins.dict) -> Any: ...","description":"Recreate the object from a dictionary serialization of its\ninitialization parameters.","parameters":[{"name":"d","description":"Dictionary containing its init parameters and a few other things.","type_hint":"builtins.dict","default_value":null}]},{"qualified_name":"salvus.material.orientation.DirectOrthonormalBasis.from_material","name":"from_material","signature":"def from_material(\n    m: Material[_pd.F],\n    reduction_method: (\n        typing.Literal[\"remove-components\", \"force\"] | None\n    ) = None,\n) -> typing.Self: ...","description":"Construct this material from another within the same physical system.","parameters":[{"name":"m","description":"Material to transform.","type_hint":"Material[_pd.F]","default_value":null},{"name":"reduction_method","description":"Method to move between incompatible symmetry classes. None will only move to symmetries that are equal or more permissive, while `remove-components` will drop components that are found to match the new material's constraints as necessary, and thus leading to loss of free parameters but not of information. The option \"force\" will take all information necessary to construct the new parameter set without verification, leading to loss of information.","type_hint":"typing.Literal['remove-components', 'force'] | None","default_value":"None"}]},{"qualified_name":"salvus.material.orientation.DirectOrthonormalBasis.from_params","name":"from_params","signature":"def from_params(\n    m00: _pd.R,\n    m01: _pd.R,\n    m02: _pd.R,\n    m10: _pd.R,\n    m11: _pd.R,\n    m12: _pd.R,\n    m20: _pd.R,\n    m21: _pd.R,\n    m22: _pd.R,\n    skip_orthonormalization: bool = False,\n) -> typing.Self: ...","description":"Construct from nine scalar matrix components.","parameters":[{"name":"m00","description":"The first component of the first basis vector.","type_hint":"_pd.R","default_value":null},{"name":"m01","description":"The second component of the first basis vector.","type_hint":"_pd.R","default_value":null},{"name":"m02","description":"The third component of the first basis vector.","type_hint":"_pd.R","default_value":null},{"name":"m10","description":"The first component of the second basis vector.","type_hint":"_pd.R","default_value":null},{"name":"m11","description":"The second component of the second basis vector.","type_hint":"_pd.R","default_value":null},{"name":"m12","description":"The third component of the second basis vector.","type_hint":"_pd.R","default_value":null},{"name":"m20","description":"The first component of the third basis vector.","type_hint":"_pd.R","default_value":null},{"name":"m21","description":"The second component of the third basis vector.","type_hint":"_pd.R","default_value":null},{"name":"m22","description":"The third component of the third basis vector.","type_hint":"_pd.R","default_value":null},{"name":"skip_orthonormalization","description":"If True, the Gram-Schmidt orthonormalization procedure is skipped. This is useful if one is sure that the input vectors are already orthonormal. If False, the Gram-Schmidt orthonormalization procedure is applied to the input vectors. Gram-Schmidt orthonormalization applied in m0, m1, m2 order.","type_hint":"bool","default_value":"False"}]},{"qualified_name":"salvus.material.orientation.DirectOrthonormalBasis.material_system","name":"material_system","signature":"def material_system() -> type[Material]: ...","description":"Method that will return the material system of material.","parameters":[]}],"properties":[{"qualified_name":"salvus.material.orientation.DirectOrthonormalBasis.ds","name":"ds","description":"Material's xarray representation.","return_type_hint":"typing.Mapping","has_setter":false,"has_deleter":false},{"qualified_name":"salvus.material.orientation.DirectOrthonormalBasis.flatten","name":"flatten","description":"Get all parameters as a dict.","return_type_hint":"dict","has_setter":false,"has_deleter":false}]}],"exceptions":[],"links":null,"functions":[{"qualified_name":"salvus.material.orientation.visualize_local_bases","name":"visualize_local_bases","signature":"def visualize_local_bases(\n    material: _OrientedMaterial,\n    vector_scale: float = 10.0,\n    allow_many: bool = False,\n) -> Figure: ...","description":"Visualize the local bases rosette of a material.\n\nHelpful for understanding rotations. Works best for only a few\norientations.","return_description":"The created matplotlib figure.","return_type_hint":"Figure","parameters":[{"name":"material","description":"An orientation material.","type_hint":"_OrientedMaterial","default_value":null},{"name":"vector_scale","description":"Optional scaling passed on to Matplotlib's quiver.","type_hint":"float","default_value":"10.0"},{"name":"allow_many","description":"If True, disables the check on the maximum number of rotations.","type_hint":"bool","default_value":"False"}],"exceptions":null}]},"allFile":{"edges":[{"node":{"relativePath":"0.12.16/python_api/salvus.json"}},{"node":{"relativePath":"0.12.16/salvus_mesh_types_api/AxiSEM.md"}},{"node":{"relativePath":"0.12.16/salvus_mesh_types_api/AxiSEMCartesian.md"}},{"node":{"relativePath":"0.12.16/salvus_mesh_types_api/Cartesian2D.md"}},{"node":{"relativePath":"0.12.16/salvus_mesh_types_api/Cartesian2DHomogeneous.md"}},{"node":{"relativePath":"0.12.16/salvus_mesh_types_api/Cartesian3D.md"}},{"node":{"relativePath":"0.12.16/salvus_mesh_types_api/Cartesian3DHomogeneous.md"}},{"node":{"relativePath":"0.12.16/salvus_mesh_types_api/Circular2D.md"}},{"node":{"relativePath":"0.12.16/salvus_mesh_types_api/Globe3D.md"}},{"node":{"relativePath":"0.12.16/salvus_mesh_types_api/Globe3DSurfaceWaves.md"}},{"node":{"relativePath":"0.12.16/salvus_mesh_types_api/SmoothieSEM.md"}},{"node":{"relativePath":"0.12.16/salvus_mesh_types_api/SphericalChunk3D.md"}},{"node":{"relativePath":"0.12.16/salvus_mesh_types_api/SphericalChunk3DSurfaceWaves.md"}},{"node":{"relativePath":"0.12.16/salvus_mesh_types_api/TidalLoading.md"}},{"node":{"relativePath":"2024.1.3/python_api/salvus.json"}},{"node":{"relativePath":"2024.1.3/salvus_mesh_types_api/Cartesian2D.md"}},{"node":{"relativePath":"2024.1.3/salvus_mesh_types_api/Cartesian2DHomogeneous.md"}},{"node":{"relativePath":"2024.1.3/salvus_mesh_types_api/Cartesian3D.md"}},{"node":{"relativePath":"2024.1.3/salvus_mesh_types_api/Cartesian3DHomogeneous.md"}},{"node":{"relativePath":"2024.1.3/salvus_mesh_types_api/Circular2D.md"}},{"node":{"relativePath":"2024.1.3/salvus_mesh_types_api/Globe3D.md"}},{"node":{"relativePath":"2024.1.3/salvus_mesh_types_api/Globe3DAxialSymmetry.md"}},{"node":{"relativePath":"2024.1.3/salvus_mesh_types_api/SmoothieSEM.md"}},{"node":{"relativePath":"2024.1.3/salvus_mesh_types_api/SphericalChunk3D.md"}},{"node":{"relativePath":"2025.1.3/python_api/salvus.json"}},{"node":{"relativePath":"2025.1.3/salvus_mesh_types_api/Cartesian2D.md"}},{"node":{"relativePath":"2025.1.3/salvus_mesh_types_api/Cartesian2DHomogeneous.md"}},{"node":{"relativePath":"2025.1.3/salvus_mesh_types_api/Cartesian3D.md"}},{"node":{"relativePath":"2025.1.3/salvus_mesh_types_api/Cartesian3DHomogeneous.md"}},{"node":{"relativePath":"2025.1.3/salvus_mesh_types_api/Circular2D.md"}},{"node":{"relativePath":"2025.1.3/salvus_mesh_types_api/Globe3D.md"}},{"node":{"relativePath":"2025.1.3/salvus_mesh_types_api/Globe3DAxialSymmetry.md"}},{"node":{"relativePath":"2025.1.3/salvus_mesh_types_api/SmoothieSEM.md"}},{"node":{"relativePath":"2025.1.3/salvus_mesh_types_api/SphericalChunk3D.md"}},{"node":{"relativePath":"2026.5.0/python_api/salvus.json"}},{"node":{"relativePath":"2026.5.0/salvus_mesh_types_api/Cartesian2D.md"}},{"node":{"relativePath":"2026.5.0/salvus_mesh_types_api/Cartesian2DHomogeneous.md"}},{"node":{"relativePath":"2026.5.0/salvus_mesh_types_api/Cartesian3D.md"}},{"node":{"relativePath":"2026.5.0/salvus_mesh_types_api/Cartesian3DHomogeneous.md"}},{"node":{"relativePath":"2026.5.0/salvus_mesh_types_api/Circular2D.md"}},{"node":{"relativePath":"2026.5.0/salvus_mesh_types_api/Globe3D.md"}},{"node":{"relativePath":"2026.5.0/salvus_mesh_types_api/Globe3DAxialSymmetry.md"}},{"node":{"relativePath":"2026.5.0/salvus_mesh_types_api/SmoothieSEM.md"}},{"node":{"relativePath":"2026.5.0/salvus_mesh_types_api/SphericalChunk3D.md"}},{"node":{"relativePath":"0.12.16/python_api/salvus/fem.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/modules.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/namespace.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/opt.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/toolbox.json"}},{"node":{"relativePath":"0.12.16/python_api/images/1bc683f8ed41278a74bcce75644df35d78ec1feb40c32317f0c3aff9a115838d.png"}},{"node":{"relativePath":"0.12.16/python_api/images/3a6eafcefc4ccc7087bc952e6154acf8b71c38d64d788099f46c4d0d489c0350.png"}},{"node":{"relativePath":"0.12.16/python_api/images/569fdfeb70ca31ce08dcea0897aa094248e24ede4570d1c9bb3921aa45aaf61e.png"}},{"node":{"relativePath":"0.12.16/python_api/images/58e5f7c4ab4f255a8faa0e5711e93bad50a50f88f2e1318e674d3a71df269208.png"}},{"node":{"relativePath":"0.12.16/python_api/images/79d8885f3fe81f5135487e41035ea8495ef07708e12a133bf7d17ee1151ce166.png"}},{"node":{"relativePath":"0.12.16/python_api/images/912c2f47c877d50cccd9157d5c400ebb09670b1a3acb212464b82d3f6517642a.png"}},{"node":{"relativePath":"0.12.16/python_api/images/ba32c7f94c59cf9763ce558df0c544576eb20bba70b571832aaa114d66949d39.png"}},{"node":{"relativePath":"0.12.16/python_api/images/e19720c194fa1710ad3b156de4ffa66acf09615a8bc1053df738a911bd17ff8d.png"}},{"node":{"relativePath":"0.12.16/python_api/images/f62606db07fe3b4533455d176cc72ad94137fa8dcd1ceb337b0c7453e517bd4c.png"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/data.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/fem.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/geometry.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/material.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/modules.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/namespace.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/opt.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/toolbox.json"}},{"node":{"relativePath":"2025.1.3/python_api/images/1bc683f8ed41278a74bcce75644df35d78ec1feb40c32317f0c3aff9a115838d.png"}},{"node":{"relativePath":"2025.1.3/python_api/images/3a6eafcefc4ccc7087bc952e6154acf8b71c38d64d788099f46c4d0d489c0350.png"}},{"node":{"relativePath":"2025.1.3/python_api/images/569fdfeb70ca31ce08dcea0897aa094248e24ede4570d1c9bb3921aa45aaf61e.png"}},{"node":{"relativePath":"2025.1.3/python_api/images/58e5f7c4ab4f255a8faa0e5711e93bad50a50f88f2e1318e674d3a71df269208.png"}},{"node":{"relativePath":"2025.1.3/python_api/images/79d8885f3fe81f5135487e41035ea8495ef07708e12a133bf7d17ee1151ce166.png"}},{"node":{"relativePath":"2025.1.3/python_api/images/912c2f47c877d50cccd9157d5c400ebb09670b1a3acb212464b82d3f6517642a.png"}},{"node":{"relativePath":"2025.1.3/python_api/images/ba32c7f94c59cf9763ce558df0c544576eb20bba70b571832aaa114d66949d39.png"}},{"node":{"relativePath":"2025.1.3/python_api/images/e19720c194fa1710ad3b156de4ffa66acf09615a8bc1053df738a911bd17ff8d.png"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/data.json"}},{"node":{"relativePath":"2025.1.3/python_api/images/f62606db07fe3b4533455d176cc72ad94137fa8dcd1ceb337b0c7453e517bd4c.png"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/fem.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/geometry.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/material.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/modules.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/namespace.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/opt.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/toolbox.json"}},{"node":{"relativePath":"2026.5.0/python_api/images/1bc683f8ed41278a74bcce75644df35d78ec1feb40c32317f0c3aff9a115838d.png"}},{"node":{"relativePath":"2026.5.0/python_api/images/3a6eafcefc4ccc7087bc952e6154acf8b71c38d64d788099f46c4d0d489c0350.png"}},{"node":{"relativePath":"2026.5.0/python_api/images/569fdfeb70ca31ce08dcea0897aa094248e24ede4570d1c9bb3921aa45aaf61e.png"}},{"node":{"relativePath":"2026.5.0/python_api/images/58e5f7c4ab4f255a8faa0e5711e93bad50a50f88f2e1318e674d3a71df269208.png"}},{"node":{"relativePath":"2026.5.0/python_api/images/79d8885f3fe81f5135487e41035ea8495ef07708e12a133bf7d17ee1151ce166.png"}},{"node":{"relativePath":"2026.5.0/python_api/images/912c2f47c877d50cccd9157d5c400ebb09670b1a3acb212464b82d3f6517642a.png"}},{"node":{"relativePath":"2026.5.0/python_api/images/ba32c7f94c59cf9763ce558df0c544576eb20bba70b571832aaa114d66949d39.png"}},{"node":{"relativePath":"2026.5.0/python_api/images/e19720c194fa1710ad3b156de4ffa66acf09615a8bc1053df738a911bd17ff8d.png"}},{"node":{"relativePath":"2026.5.0/python_api/images/f62606db07fe3b4533455d176cc72ad94137fa8dcd1ceb337b0c7453e517bd4c.png"}},{"node":{"relativePath":"2024.1.3/python_api/images/1bc683f8ed41278a74bcce75644df35d78ec1feb40c32317f0c3aff9a115838d.png"}},{"node":{"relativePath":"2024.1.3/python_api/images/3a6eafcefc4ccc7087bc952e6154acf8b71c38d64d788099f46c4d0d489c0350.png"}},{"node":{"relativePath":"2024.1.3/python_api/images/569fdfeb70ca31ce08dcea0897aa094248e24ede4570d1c9bb3921aa45aaf61e.png"}},{"node":{"relativePath":"2024.1.3/python_api/images/58e5f7c4ab4f255a8faa0e5711e93bad50a50f88f2e1318e674d3a71df269208.png"}},{"node":{"relativePath":"2024.1.3/python_api/images/79d8885f3fe81f5135487e41035ea8495ef07708e12a133bf7d17ee1151ce166.png"}},{"node":{"relativePath":"2024.1.3/python_api/images/912c2f47c877d50cccd9157d5c400ebb09670b1a3acb212464b82d3f6517642a.png"}},{"node":{"relativePath":"2024.1.3/python_api/images/ba32c7f94c59cf9763ce558df0c544576eb20bba70b571832aaa114d66949d39.png"}},{"node":{"relativePath":"2024.1.3/python_api/images/e19720c194fa1710ad3b156de4ffa66acf09615a8bc1053df738a911bd17ff8d.png"}},{"node":{"relativePath":"2024.1.3/python_api/images/f62606db07fe3b4533455d176cc72ad94137fa8dcd1ceb337b0c7453e517bd4c.png"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/data.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/fem.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/geometry.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/material.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/modules.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/namespace.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/opt.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/toolbox.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/fem/hypercube.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/fem/tensor_gll.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/api.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/collections.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/simple_config.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/paths.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/sites.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/modules/near_surface.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/modules/waveform_db.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/modules/source_inversion.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/absorbing_boundary.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/attenuation.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/layered_meshing.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/chunked_interface.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/mask_generators.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/mesh.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/mesh_block.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/models_1D.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/numba_utils.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/tools.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/simple_mesh.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/unstructured_mesh.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/unstructured_mesh_utils.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/opt/iteration.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/opt/mappings.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/opt/methods.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/opt/misfits.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/opt/models.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/opt/preconditioner.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/opt/smoothing.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/opt/tasks.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/opt/utils.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/components.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/configuration.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/domain.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/meshing.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/project.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/tools.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/toolbox/detail.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/toolbox/helpers.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/toolbox/ses3d.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/toolbox/toolbox_geotech.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/toolbox/toolbox.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/data/io.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/collections.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/executors.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/functions.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/paths.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/simple_config.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/fem/derivatives.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/fem/element_nodes.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/fem/hypercube.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/fem/sem.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/geometry/coordinates.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/material/acoustic.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/material/attenuation.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/material/base_materials.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/material/elastic.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/material/utils.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/material/visco.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/algorithms.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/data_structures.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/layered_meshing.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/simple_mesh.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/tools.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/modules/near_surface.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/modules/source_inversion.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/modules/waveform_db.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/opt/data_normalizations.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/opt/iteration.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/opt/mappings.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/opt/methods.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/opt/misfits.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/opt/models.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/opt/preconditioner.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/opt/smoothing.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/opt/tasks.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/opt/utils.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/components.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/configuration.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/domain.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/meshing.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/project.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/project_configuration.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/tools.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/version.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/toolbox/detail.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/toolbox/helpers.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/toolbox/ses3d.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/toolbox/toolbox.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/toolbox/toolbox_geotech.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/data/io.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/data/processing.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/fem/derivatives.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/fem/element_nodes.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/fem/error_estimations.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/fem/hypercube.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/fem/integrals.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/fem/sem.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/collections.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/executors.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/functions.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/simple_config.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/geometry/coordinates.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/material/acoustic.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/material/attenuation.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/material/base_materials.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/material/elastic.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/material/patches.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/material/utils.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/material/visco.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/algorithms.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/data_structures.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/layered_meshing.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/recipes.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/tools.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/simple_mesh.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/modules/near_surface.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/modules/source_inversion.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/modules/waveform_db.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/opt/data_normalizations.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/opt/iteration.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/opt/mappings.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/opt/methods.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/opt/misfits.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/opt/models.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/opt/preconditioner.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/opt/smoothing.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/opt/tasks.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/opt/utils.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/components.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/configuration.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/domain.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/meshing.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/project.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/project_configuration.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/version.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/toolbox/detail.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/toolbox/helpers.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/toolbox/ses3d.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/toolbox/toolbox.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/toolbox/toolbox_geotech.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/data/io.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/data/processing.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/fem/derivatives.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/fem/element_nodes.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/fem/error_estimations.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/fem/hypercube.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/fem/integrals.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/fem/sem.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/collections.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/executors.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/functions.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/simple_config.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/geometry/coordinates.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/material/acoustic.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/material/attenuation.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/material/base_materials.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/material/elastic.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/material/patches.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/material/utils.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/material/visco.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/algorithms.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/data_structures.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/layered_meshing.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/recipes.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/simple_mesh.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/tools.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/modules/near_surface.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/modules/source_inversion.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/modules/waveform_db.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/opt/data_normalizations.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/opt/iteration.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/opt/mappings.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/opt/methods.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/opt/misfits.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/opt/models.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/opt/preconditioner.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/opt/smoothing.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/opt/tasks.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/opt/utils.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/components.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/configuration.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/domain.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/meshing.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/project.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/project_configuration.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/version.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/toolbox/detail.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/toolbox/helpers.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/toolbox/ses3d.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/toolbox/toolbox.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/toolbox/toolbox_geotech.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/collections/event.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/collections/data_proxies.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/collections/event_block.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/collections/event_data.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/collections/event_collection.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/collections/event_data_backends.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/collections/event_data_collection.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/collections/event_data_collection_proxy.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/collections/event_misfit.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/collections/event_misfit_collection.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/collections/event_window_and_weight_set.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/collections/receiver_channel.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/collections/types.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/collections/wavefield_compression.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/simple_config/boundary.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/simple_config/receiver.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/simple_config/simulation.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/simple_config/source.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/sites/base_site.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/sites/functions.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/sites/concrete_sites.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/sites/job.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/sites/remote_io_site.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/sites/salvus_job.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/sites/salvus_job_array.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/sites/site_utils.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/sites/task_chain.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/sites/types.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/modules/near_surface/processing.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/modules/source_inversion/source_inversion.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/modules/waveform_db/utils.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/modules/waveform_db/waveform_db.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/layered_meshing/detail.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/layered_meshing/interface.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/layered_meshing/material.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/layered_meshing/layered_model.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/layered_meshing/meshing_protocol.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/layered_meshing/utils.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/mesh/deformed_regular_grid.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/mesh/run_mesher.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/mesh/smoothiesem.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/mesh_block/generators.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/mesh_block/mesh_block.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/mesh_block/mesh_block_collection.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/mesh_block/mesh_block_utils.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/simple_mesh/basic_mesh.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/tools/transforms.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/opt/methods/lbfgs.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/opt/methods/trustregion.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/opt/mappings/mappings.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/opt/misfits/cross_correlation_time_shift.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/opt/misfits/deprecated.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/opt/misfits/gradient_test.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/opt/misfits/graph_space_optimal_transport.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/opt/misfits/l2_misfit.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/opt/misfits/normalization.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/opt/misfits/phase_misfit.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/opt/misfits/time_frequency_phase_misfit.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/opt/models/generic_model.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/opt/models/structured_model.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/opt/models/unstructured_model.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/opt/models/util.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/components/action.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/components/event_component.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/components/entity_component.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/components/inversion_component.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/components/misfit_component.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/components/types.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/components/simulation_component.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/components/visualization.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/components/waveform_component.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/configuration/bathymetry.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/configuration/data_selection_configuration.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/configuration/inverse_problem_configuration.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/configuration/event_configuration.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/configuration/mesh_configuration.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/configuration/misfit_configuration.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/configuration/model.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/configuration/processing.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/configuration/project_configuration.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/configuration/simulation_configuration.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/configuration/topography.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/configuration/waveform_simulation_configuration.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/domain/dim2.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/tools/data_selection.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/tools/io.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/tools/processing.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/tools/task_chains.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/toolbox/helpers/interpolate.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/toolbox/helpers/toolbox_helpers.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/toolbox/helpers/wavefield_output.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/collections/data_proxies.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/collections/event.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/collections/event_block.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/collections/event_collection.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/collections/event_data.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/collections/event_data_backends.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/collections/event_data_collection.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/collections/event_data_collection_proxy.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/collections/event_misfit.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/collections/event_misfit_collection.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/collections/event_window_and_weight_set.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/collections/receiver_channel.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/collections/source_mechanism.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/collections/types.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/collections/wavefield_compression.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/executors/base_executor.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/executors/executor_utils.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/executors/functions.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/executors/implementations.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/executors/job.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/executors/remote_io_executor.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/executors/salvus_job.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/executors/salvus_job_array.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/executors/task_chain.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/executors/types.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/simple_config/boundary.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/simple_config/receiver.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/simple_config/simulation.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/simple_config/source.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/geometry/coordinates/coordinates.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/geometry/coordinates/references.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/geometry/coordinates/utils.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/material/acoustic/elliptical_hexagonal.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/material/acoustic/hexagonal.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/material/acoustic/isotropic.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/material/acoustic/orthotropic.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/material/elastic/cubic.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/material/elastic/hexagonal.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/material/elastic/isotropic.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/material/elastic/monoclinic.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/material/elastic/orthotropic.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/material/elastic/triclinic.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/material/visco/acoustic.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/material/visco/elastic.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/algorithms/absorbing_boundary.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/algorithms/connectivity.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/algorithms/mask_generators.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/algorithms/optimize_dt.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/algorithms/point_sorting.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/algorithms/spherical.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/algorithms/tensorized_elements.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/algorithms/unstructured_mesh.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/data_structures/mesh_block.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/data_structures/unstructured_mesh.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/layered_meshing/detail.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/layered_meshing/interface.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/layered_meshing/layered_model.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/layered_meshing/meshing_protocol.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/layered_meshing/utils.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/simple_mesh/basic_mesh.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/tools/transforms.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/modules/near_surface/processing.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/modules/source_inversion/source_inversion.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/modules/waveform_db/utils.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/modules/waveform_db/waveform_db.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/opt/data_normalizations/l2_energy_per_measurement.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/opt/data_normalizations/normalized_misfit.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/opt/mappings/mappings.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/opt/methods/lbfgs.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/opt/methods/trustregion.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/opt/misfits/cross_correlation_time_shift.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/opt/misfits/deprecated.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/opt/misfits/gradient_test.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/opt/misfits/graph_space_optimal_transport.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/opt/misfits/l2_misfit.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/opt/misfits/phase_misfit.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/opt/misfits/time_frequency_phase_misfit.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/opt/models/generic_model.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/opt/models/structured_model.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/opt/models/unstructured_model.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/opt/models/util.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/components/action.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/components/attachment_component.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/components/entity_component.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/components/event_component.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/components/inversion_component.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/components/misfit_component.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/components/simulation_component.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/components/types.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/components/visualization.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/components/waveform_component.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/configuration/bathymetry.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/configuration/data_selection_configuration.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/configuration/event_configuration.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/configuration/inverse_problem_configuration.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/configuration/mesh_configuration.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/configuration/misfit_configuration.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/configuration/model.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/configuration/processing.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/configuration/simulation_configuration.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/configuration/topography.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/configuration/waveform_simulation_configuration.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/domain/dim2.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/tools/data_selection.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/tools/io.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/tools/processing.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/tools/task_chains.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/version/salvus_project_version.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/toolbox/helpers/interpolate.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/toolbox/helpers/toolbox_helpers.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/toolbox/helpers/wavefield_output.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/data/processing/trace_processing.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/collections/data_proxies.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/collections/event.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/collections/event_block.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/collections/event_collection.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/collections/event_data.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/collections/event_data_backends.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/collections/event_data_collection.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/collections/event_data_collection_proxy.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/collections/event_misfit_collection.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/collections/event_misfit.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/collections/event_window_and_weight_set.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/collections/receiver_channel.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/collections/source_mechanism.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/collections/types.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/collections/wavefield_compression.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/executors/base_executor.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/executors/direct.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/executors/executor_utils.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/executors/functions.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/executors/implementations.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/executors/job.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/executors/mpi.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/executors/remote_io_executor.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/executors/salvus_job.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/executors/salvus_job_array.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/executors/task_chain.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/executors/types.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/simple_config/boundary.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/simple_config/memory.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/simple_config/receiver.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/simple_config/simulation.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/simple_config/source.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/geometry/coordinates/coordinates.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/geometry/coordinates/references.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/geometry/coordinates/utils.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/material/acoustic/elliptical_hexagonal.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/material/acoustic/hexagonal.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/material/acoustic/orthotropic.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/material/attenuation/conversions.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/material/attenuation/linear_solids.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/material/attenuation/visualization.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/material/elastic/cubic.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/material/elastic/monoclinic.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/material/elastic/orthotropic.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/material/elastic/triclinic.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/material/patches/approx_oracle_plugins.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/material/utils/compute_symbolic_jacobian.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/material/utils/wavelength_oracle.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/material/visco/acoustic.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/material/visco/elastic.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/algorithms/absorbing_boundary.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/algorithms/connectivity.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/algorithms/distributed_mesh.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/algorithms/dual.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/algorithms/mask_generators.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/algorithms/optimize_dt.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/algorithms/point_sorting.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/algorithms/spherical.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/algorithms/tensorized_elements.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/algorithms/unstructured_mesh.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/algorithms/wrappers.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/layered_meshing/detail.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/layered_meshing/interface.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/layered_meshing/layered_model.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/layered_meshing/meshing_protocol.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/layered_meshing/serialization.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/layered_meshing/utils.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/data_structures/chunked_mesh.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/data_structures/common.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/data_structures/distributed_mesh.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/data_structures/mesh_block.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/data_structures/salvus_mesh.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/data_structures/unstructured_mesh.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/simple_mesh/basic_mesh.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/tools/transforms.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/modules/near_surface/processing.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/modules/source_inversion/source_inversion.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/modules/waveform_db/utils.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/modules/waveform_db/waveform_db.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/opt/mappings/mappings.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/opt/data_normalizations/l2_energy_per_measurement.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/opt/data_normalizations/normalized_misfit.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/opt/misfits/cross_correlation_time_shift.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/opt/misfits/deprecated.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/opt/misfits/gradient_test.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/opt/misfits/graph_space_optimal_transport.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/opt/misfits/l2_misfit.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/opt/misfits/phase_misfit.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/opt/misfits/time_frequency_phase_misfit.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/opt/methods/lbfgs.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/opt/methods/trustregion.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/opt/models/block_model.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/opt/models/data_structures.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/opt/models/distributed_block_model.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/opt/models/generic_model.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/opt/models/structured_model.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/opt/models/unstructured_model.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/components/action.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/opt/models/util.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/components/attachment_component.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/components/entity_component.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/components/event_component.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/components/inversion_component.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/components/misfit_component.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/components/simulation_component.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/components/types.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/components/visualization.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/components/waveform_component.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/configuration/bathymetry.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/configuration/data_selection_configuration.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/configuration/event_configuration.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/configuration/inverse_problem_configuration.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/configuration/mesh_configuration.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/configuration/misfit_configuration.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/configuration/model.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/configuration/processing.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/configuration/simulation_configuration.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/configuration/topography.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/configuration/waveform_simulation_configuration.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/domain/dim2.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/domain/utils.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools/data_selection.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools/io.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools/mpi_workflows.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools/processing.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools/task_chains.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/version/salvus_project_version.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/toolbox/helpers/interpolate.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/toolbox/helpers/toolbox_helpers.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/toolbox/helpers/wavefield_output.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/data/processing/trace_processing.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/collections/data_proxies.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/collections/event.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/collections/event_block.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/collections/event_collection.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/collections/event_data.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/collections/event_data_backends.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/collections/event_data_collection.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/collections/event_data_collection_proxy.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/collections/event_misfit.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/collections/event_misfit_collection.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/collections/event_window_and_weight_set.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/collections/receiver_channel.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/collections/source_mechanism.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/collections/types.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/collections/wavefield_compression.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/executors/base_executor.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/executors/direct.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/executors/executor_utils.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/executors/functions.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/executors/implementations.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/executors/job.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/executors/mpi.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/executors/remote_io_executor.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/executors/salvus_job.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/executors/salvus_job_array.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/executors/task_chain.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/executors/types.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/simple_config/boundary.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/simple_config/memory.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/simple_config/receiver.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/simple_config/simulation.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/simple_config/source.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/geometry/coordinates/coordinates.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/geometry/coordinates/references.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/geometry/coordinates/utils.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/material/acoustic/elliptical_hexagonal.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/material/acoustic/hexagonal.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/material/acoustic/orthotropic.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/material/attenuation/conversions.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/material/attenuation/linear_solids.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/material/attenuation/visualization.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/material/elastic/cubic.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/material/elastic/monoclinic.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/material/elastic/orthotropic.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/material/elastic/triclinic.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/material/utils/compute_symbolic_jacobian.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/material/utils/wavelength_oracle.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/material/patches/approx_oracle_plugins.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/material/visco/acoustic.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/material/visco/elastic.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/algorithms/absorbing_boundary.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/algorithms/connectivity.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/algorithms/distributed_mesh.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/algorithms/mask_generators.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/algorithms/dual.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/algorithms/optimize_dt.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/algorithms/point_sorting.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/algorithms/spherical.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/algorithms/tensorized_elements.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/algorithms/unstructured_mesh.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/algorithms/wrappers.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/data_structures/chunked_mesh.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/data_structures/chain_complex.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/data_structures/common.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/data_structures/distributed_mesh.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/data_structures/mesh_block.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/data_structures/salvus_mesh.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/data_structures/unstructured_mesh.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/layered_meshing/detail.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/layered_meshing/interface.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/layered_meshing/layered_model.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/layered_meshing/meshing_protocol.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/layered_meshing/serialization.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/layered_meshing/utils.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/simple_mesh/basic_mesh.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/tools/transforms.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/modules/near_surface/processing.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/modules/source_inversion/source_inversion.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/modules/waveform_db/utils.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/modules/waveform_db/waveform_db.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/opt/data_normalizations/l2_energy_per_measurement.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/opt/data_normalizations/normalized_misfit.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/opt/mappings/mappings.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/opt/methods/lbfgs.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/opt/methods/trustregion.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/opt/misfits/cross_correlation_time_shift.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/opt/misfits/deprecated.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/opt/misfits/gradient_test.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/opt/misfits/graph_space_optimal_transport.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/opt/misfits/l2_misfit.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/opt/misfits/phase_misfit.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/opt/misfits/time_frequency_phase_misfit.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/opt/models/block_model.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/opt/models/data_structures.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/opt/models/distributed_block_model.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/opt/models/generic_model.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/opt/models/structured_model.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/opt/models/unstructured_model.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/opt/models/util.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/configuration/bathymetry.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/configuration/data_selection_configuration.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/configuration/event_configuration.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/configuration/inverse_problem_configuration.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/configuration/mesh_configuration.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/configuration/misfit_configuration.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/configuration/model.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/configuration/processing.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/configuration/simulation_configuration.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/configuration/topography.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/configuration/waveform_simulation_configuration.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/components/action.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/components/attachment_component.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/components/entity_component.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/components/event_component.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/components/inversion_component.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/components/misfit_component.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/components/simulation_component.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/components/types.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/components/visualization.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/components/waveform_component.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/domain/dim2.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/domain/utils.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools/data_selection.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools/io.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools/mpi_workflows.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools/processing.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools/task_chains.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/version/salvus_project_version.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/toolbox/helpers/interpolate.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/toolbox/helpers/toolbox_helpers.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/toolbox/helpers/wavefield_output.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/collections/data_proxies/seis_io_data_proxy.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/collections/event_data_backends/hdf5_data_backend.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/collections/event_data_backends/asdf_data_backend.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/collections/event_data_backends/segy_data_backend.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/collections/event_data_backends/xarray_data_backend.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/simple_config/receiver/cartesian.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/simple_config/receiver/seismology.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/simple_config/source/transformations.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/sites/concrete_sites/grid_engine.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/sites/concrete_sites/local.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/sites/concrete_sites/pbs.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/sites/concrete_sites/lsf.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/sites/concrete_sites/slurm.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/sites/concrete_sites/ssh.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/sites/task_chain/local_task_chain_runner.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/sites/task_chain/run_task_chain_bash_file.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/sites/task_chain/task_chain.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/sites/task_chain/task_chain_controller.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/sites/task_chain/task_chain_runner.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/sites/task_chain/task_chain_site_config.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/layered_meshing/detail/detail.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/layered_meshing/detail/mesh_from_domain.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/layered_meshing/detail/realize.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/layered_meshing/interface/curve.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/layered_meshing/interface/detail.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/layered_meshing/interface/hyperplane.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/layered_meshing/interface/surface.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/modules/near_surface/processing/geophone_response.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/modules/near_surface/processing/point_to_line_source_conversion.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/layered_meshing/layered_model/bm.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/layered_meshing/layered_model/detail.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/layered_meshing/layered_model/filters.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/layered_meshing/layered_model/layer.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/layered_meshing/layered_model/layered_model.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/layered_meshing/layered_model/reductions.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/layered_meshing/material/acoustic.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/layered_meshing/material/elastic.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/layered_meshing/material/parameter.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/layered_meshing/material/visco.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/layered_meshing/meshing_protocol/coarsening_policy.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/layered_meshing/meshing_protocol/meshing_protocol.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/layered_meshing/utils/blend.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/layered_meshing/utils/compute_ellipticity.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/layered_meshing/utils/flood.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/layered_meshing/utils/split_layered_model.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/mesh_block/generators/cartesian.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/opt/misfits/deprecated/phase_misfit.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/components/action/action_component.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/components/action/inversion.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/components/action/exploration.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/components/action/seismology.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/components/action/validation.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/components/visualization/notebook_visualization_component.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/components/visualization/seismology_visualization_component.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/components/visualization/visualization_component.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/configuration/bathymetry/cartesian.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/configuration/bathymetry/spherical.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/configuration/model/background.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/configuration/model/utils.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/configuration/model/volume.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/configuration/processing/seismology.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/configuration/topography/cartesian.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/configuration/topography/spherical.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/tools/io/converters.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/tools/data_selection/seismology.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/tools/io/seisio.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/tools/processing/block_processing.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/tools/processing/processing_templates.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/tools/processing/seismology.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/tools/processing/signal_processing.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/tools/task_chains/compute_misfits_and_gradients.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/collections/data_proxies/hdf5_data_proxy.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/collections/data_proxies/seis_io_data_proxy.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/collections/event_data_backends/asdf_data_backend.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/collections/event_data_backends/hdf5_data_backend.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/collections/event_data_backends/segy_data_backend.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/collections/event_data_backends/xarray_data_backend.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/executors/implementations/grid_engine.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/executors/implementations/local.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/executors/implementations/lsf.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/executors/implementations/pbs.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/executors/implementations/slurm.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/executors/implementations/ssh.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/executors/task_chain/local_task_chain_runner.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/executors/task_chain/run_task_chain_with_python.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/executors/task_chain/task_chain.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/executors/task_chain/task_chain_controller.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/executors/task_chain/task_chain_runner.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/executors/task_chain/task_chain_site_config.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/simple_config/receiver/cartesian.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/simple_config/receiver/seismology.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/simple_config/source/srf_file_reader.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/simple_config/source/srf_to_salvus_sources.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/simple_config/source/srf_utils.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/simple_config/source/transformations.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/algorithms/unstructured_mesh/basic.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/algorithms/unstructured_mesh/deformations.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/algorithms/unstructured_mesh/extrude.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/algorithms/unstructured_mesh/io.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/algorithms/unstructured_mesh/material_operations.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/algorithms/unstructured_mesh/metrics.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/algorithms/unstructured_mesh/parallel_utils.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/algorithms/unstructured_mesh/refinements.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/algorithms/unstructured_mesh/side_sets.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/algorithms/unstructured_mesh/spatial_gradients.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/algorithms/unstructured_mesh/utils.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/data_structures/mesh_block/mesh_block.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/data_structures/mesh_block/mesh_block_collection.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/data_structures/mesh_block/mesh_block_utils.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/layered_meshing/detail/detail.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/layered_meshing/detail/direct.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/layered_meshing/detail/mesh_from_domain.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/layered_meshing/detail/realize.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/layered_meshing/interface/curve.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/layered_meshing/interface/detail.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/layered_meshing/interface/hyperplane.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/layered_meshing/interface/surface.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/layered_meshing/layered_model/bm.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/layered_meshing/layered_model/detail.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/layered_meshing/layered_model/filters.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/layered_meshing/layered_model/layer.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/layered_meshing/layered_model/layered_model.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/layered_meshing/layered_model/reductions.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/layered_meshing/meshing_protocol/coarsening_policy.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/layered_meshing/meshing_protocol/meshing_protocol.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/layered_meshing/meshing_protocol/refinement_policy.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/layered_meshing/utils/blend.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/layered_meshing/utils/compute_ellipticity.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/layered_meshing/utils/flood.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/layered_meshing/utils/split_layered_model.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/modules/near_surface/processing/geophone_response.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/modules/near_surface/processing/point_to_line_source_conversion.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/opt/misfits/deprecated/phase_misfit.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/components/action/action_component.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/components/action/exploration.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/components/action/inversion.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/components/action/seismology.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/components/action/validation.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/components/visualization/notebook_visualization_component.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/components/visualization/seismology_visualization_component.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/components/visualization/visualization_component.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/configuration/bathymetry/cartesian.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/configuration/bathymetry/spherical.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/configuration/model/background.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/configuration/model/utils.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/configuration/model/volume.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/configuration/processing/seismology.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/configuration/topography/cartesian.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/configuration/topography/spherical.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/tools/data_selection/seismology.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/tools/io/converters.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/tools/io/seisio.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/tools/processing/block_processing.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/tools/processing/processing_templates.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/tools/processing/signal_processing.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/tools/processing/seismology.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/tools/task_chains/prebuilt_workflows.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/collections/event_data_backends/asdf_data_backend.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/collections/event_data_backends/hdf5_data_backend.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/collections/event_data_backends/xarray_data_backend.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/collections/data_proxies/hdf5_data_proxy.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/collections/data_proxies/seis_io_data_proxy.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/executors/direct/simulations.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/executors/mpi/simulations.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/executors/mpi/utils.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/executors/implementations/flux.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/executors/implementations/grid_engine.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/executors/implementations/local.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/executors/implementations/lsf.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/executors/implementations/pbs.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/executors/implementations/slurm.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/executors/implementations/ssh.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/executors/task_chain/local_task_chain_runner.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/executors/task_chain/task_chain.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/executors/task_chain/run_task_chain_with_python.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/executors/task_chain/task_chain_controller.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/executors/task_chain/task_chain_runner.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/executors/task_chain/task_chain_site_config.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/simple_config/receiver/seismology.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/simple_config/receiver/cartesian.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/simple_config/source/cartesian.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/simple_config/source/srf_to_salvus_sources.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/simple_config/source/srf_file_reader.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/simple_config/source/transformations.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/simple_config/source/srf_utils.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/algorithms/distributed_mesh/broadcast.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/algorithms/distributed_mesh/convert.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/algorithms/distributed_mesh/construct_mesh.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/algorithms/distributed_mesh/mesh_from_domain_mpi.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/algorithms/distributed_mesh/mesh_to_mesh.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/algorithms/distributed_mesh/reduce.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/algorithms/distributed_mesh/scatter.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/algorithms/unstructured_mesh/basic.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/algorithms/distributed_mesh/submesh.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/algorithms/unstructured_mesh/deformations.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/algorithms/unstructured_mesh/dmplex.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/algorithms/unstructured_mesh/io.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/algorithms/unstructured_mesh/extrude.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/algorithms/unstructured_mesh/material_operations.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/algorithms/unstructured_mesh/metrics.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/algorithms/unstructured_mesh/parallel_utils.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/algorithms/unstructured_mesh/qc.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/algorithms/unstructured_mesh/refinements.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/algorithms/unstructured_mesh/side_sets.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/algorithms/unstructured_mesh/utils.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/layered_meshing/detail/detail.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/algorithms/unstructured_mesh/spatial_gradients.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/layered_meshing/detail/mesh_from_domain.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/layered_meshing/detail/realize.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/layered_meshing/detail/direct.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/layered_meshing/interface/curve.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/layered_meshing/interface/detail.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/layered_meshing/interface/hyperplane.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/layered_meshing/interface/surface.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/layered_meshing/layered_model/detail.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/layered_meshing/layered_model/filters.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/layered_meshing/layered_model/bm.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/layered_meshing/layered_model/layered_model.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/layered_meshing/layered_model/layer.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/layered_meshing/layered_model/plot.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/layered_meshing/layered_model/reductions.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/layered_meshing/meshing_protocol/coarsening_policy.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/layered_meshing/meshing_protocol/refinement_policy.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/layered_meshing/meshing_protocol/meshing_protocol.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/layered_meshing/serialization/write_to_h5.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/layered_meshing/serialization/read_from_h5.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/layered_meshing/utils/blend.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/layered_meshing/utils/compute_ellipticity.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/layered_meshing/utils/flood.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/data_structures/chunked_mesh/chunked_mesh.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/layered_meshing/utils/split_layered_model.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/data_structures/mesh_block/mesh_block.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/data_structures/distributed_mesh/distributed_mesh.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/data_structures/mesh_block/mesh_block_collection.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/data_structures/mesh_block/mesh_block_utils.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/data_structures/salvus_mesh/algorithms.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/data_structures/salvus_mesh/mesh.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/data_structures/salvus_mesh/linear_solids.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/data_structures/salvus_mesh/section.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/data_structures/salvus_mesh/migration.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/data_structures/salvus_mesh/serialization.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/data_structures/salvus_mesh/side_sets.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/data_structures/unstructured_mesh/unstructured_mesh.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/modules/near_surface/processing/point_to_line_source_conversion.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/modules/near_surface/processing/geophone_response.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/components/action/action_component.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/components/action/exploration.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/opt/misfits/deprecated/phase_misfit.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/components/action/inversion.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/components/action/seismology.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/components/action/validation.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/components/visualization/notebook_visualization_component.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/components/visualization/visualization_component.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/components/visualization/seismology_visualization_component.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/configuration/bathymetry/cartesian.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/configuration/model/background.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/configuration/bathymetry/spherical.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/configuration/model/volume.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/configuration/model/utils.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/configuration/processing/seismology.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/configuration/topography/spherical.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/configuration/topography/cartesian.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools/data_selection/seismology.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools/io/converters.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools/io/seisio.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools/mpi_workflows/run_simulations_from_project.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools/processing/processing_templates.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools/processing/seismology.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools/processing/block_processing.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools/processing/signal_processing.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools/task_chains/prebuilt_workflows.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/collections/data_proxies/hdf5_data_proxy.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/collections/data_proxies/seis_io_data_proxy.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/collections/event_data_backends/hdf5_data_backend.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/collections/event_data_backends/asdf_data_backend.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/collections/event_data_backends/xarray_data_backend.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/executors/implementations/local.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/executors/implementations/flux.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/executors/implementations/grid_engine.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/executors/direct/simulations.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/executors/implementations/lsf.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/executors/implementations/pbs.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/executors/implementations/slurm.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/executors/implementations/ssh.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/executors/mpi/simulations.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/executors/task_chain/run_task_chain_with_python.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/executors/task_chain/task_chain.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/executors/task_chain/local_task_chain_runner.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/executors/mpi/utils.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/executors/task_chain/task_chain_controller.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/executors/task_chain/task_chain_runner.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/executors/task_chain/task_chain_site_config.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/simple_config/receiver/seismology.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/simple_config/receiver/cartesian.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/simple_config/source/cartesian.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/simple_config/source/srf_to_salvus_sources.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/simple_config/source/srf_utils.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/simple_config/source/srf_file_reader.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/simple_config/source/transformations.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/algorithms/distributed_mesh/convert.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/algorithms/distributed_mesh/construct_mesh.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/algorithms/distributed_mesh/mesh_from_domain_mpi.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/algorithms/distributed_mesh/reduce.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/algorithms/distributed_mesh/mpi_communication.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/algorithms/distributed_mesh/mesh_to_mesh.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/algorithms/distributed_mesh/scatter.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/algorithms/distributed_mesh/submesh.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/algorithms/unstructured_mesh/basic.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/algorithms/unstructured_mesh/chain_complex.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/algorithms/unstructured_mesh/deformations.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/algorithms/unstructured_mesh/dmplex.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/algorithms/unstructured_mesh/extrude.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/algorithms/unstructured_mesh/io.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/algorithms/unstructured_mesh/parallel_utils.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/algorithms/unstructured_mesh/metrics.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/algorithms/unstructured_mesh/material_operations.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/algorithms/unstructured_mesh/qc.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/algorithms/unstructured_mesh/refinements.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/algorithms/unstructured_mesh/spatial_gradients.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/algorithms/unstructured_mesh/side_sets.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/data_structures/chain_complex/chain_complex.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/algorithms/unstructured_mesh/utils.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/data_structures/chunked_mesh/chunked_mesh.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/data_structures/distributed_mesh/distributed_mesh.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/data_structures/mesh_block/mesh_block.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/data_structures/mesh_block/mesh_block_utils.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/data_structures/mesh_block/mesh_block_collection.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/layered_meshing/detail/detail.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/layered_meshing/detail/direct.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/data_structures/unstructured_mesh/unstructured_mesh.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/layered_meshing/detail/mesh_from_domain.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/layered_meshing/detail/realize.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/data_structures/salvus_mesh/algorithms.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/data_structures/salvus_mesh/linear_solids.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/data_structures/salvus_mesh/migration.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/data_structures/salvus_mesh/section.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/data_structures/salvus_mesh/mesh.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/data_structures/salvus_mesh/serialization.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/data_structures/salvus_mesh/side_sets.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/layered_meshing/interface/curve.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/layered_meshing/interface/detail.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/layered_meshing/interface/surface.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/layered_meshing/interface/hyperplane.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/layered_meshing/meshing_protocol/coarsening_policy.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/layered_meshing/meshing_protocol/refinement_policy.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/layered_meshing/meshing_protocol/meshing_protocol.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/layered_meshing/layered_model/detail.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/layered_meshing/layered_model/bm.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/layered_meshing/layered_model/filters.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/layered_meshing/layered_model/layered_model.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/layered_meshing/layered_model/layer.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/layered_meshing/layered_model/reductions.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/layered_meshing/layered_model/plot.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/layered_meshing/serialization/read_from_h5.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/layered_meshing/serialization/write_to_h5.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/layered_meshing/utils/blend.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/layered_meshing/utils/compute_ellipticity.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/layered_meshing/utils/flood.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/layered_meshing/utils/split_layered_model.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/modules/near_surface/processing/geophone_response.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/opt/misfits/deprecated/phase_misfit.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/modules/near_surface/processing/point_to_line_source_conversion.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/configuration/bathymetry/spherical.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/configuration/bathymetry/cartesian.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/configuration/model/background.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/configuration/model/utils.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/configuration/model/volume.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/configuration/topography/cartesian.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/configuration/processing/seismology.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/components/action/action_component.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/configuration/topography/spherical.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/components/action/exploration.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/components/action/seismology.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/components/action/inversion.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/components/visualization/notebook_visualization_component.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/components/action/validation.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/components/visualization/seismology_visualization_component.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/components/visualization/visualization_component.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools/data_selection/seismology.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools/io/seisio.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools/io/converters.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools/processing/block_processing.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools/processing/processing_templates.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools/mpi_workflows/run_simulations_from_project.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools/processing/seismology.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools/processing/signal_processing.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools/task_chains/prebuilt_workflows.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/simple_config/receiver/cartesian/collections.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/simple_config/receiver/seismology/collections.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/simple_config/source/cartesian/collections.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/layered_meshing/material/acoustic/isotropic.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/layered_meshing/material/acoustic/transversely_isotropic.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/layered_meshing/material/elastic/anisotropic.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/layered_meshing/material/elastic/cubic.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/layered_meshing/material/elastic/hexagonal.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/layered_meshing/material/elastic/isotropic.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/layered_meshing/material/elastic/monoclinic.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/layered_meshing/material/elastic/orthotropic.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/layered_meshing/material/elastic/triclinic.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/layered_meshing/material/visco/acoustic.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/layered_meshing/material/visco/elastic.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/layered_meshing/meshing_protocol/coarsening_policy/detail.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/layered_meshing/meshing_protocol/coarsening_policy/interlayer_constant.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/layered_meshing/meshing_protocol/coarsening_policy/interlayer_doubling.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/layered_meshing/meshing_protocol/coarsening_policy/interlayer_tripling.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/layered_meshing/meshing_protocol/coarsening_policy/intralayer_constant.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/layered_meshing/meshing_protocol/coarsening_policy/intralayer_detail.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/layered_meshing/meshing_protocol/coarsening_policy/intralayer_variable.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/layered_meshing/meshing_protocol/coarsening_policy/intralayer_vertical_refine.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/components/action/exploration/exploration_action_component.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/components/action/inversion/inversion_action_component.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/components/action/seismology/seismology_action_component.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/components/action/validation/validation_action_component.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/configuration/model/background/homogeneous.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/configuration/model/background/one_dimensional.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/configuration/model/volume/cartesian.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/configuration/model/volume/seismology.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/tools/data_selection/seismology/receiver_weighting.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/tools/data_selection/seismology/window_picking.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/tools/io/converters/seisio_to_block_data.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/tools/io/seisio/compression.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/tools/io/seisio/seisio.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/tools/processing/block_processing/adjust_length.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/tools/processing/block_processing/convolve.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/tools/processing/block_processing/resample.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/tools/processing/block_processing/taper.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/tools/processing/seismology/processing_templates.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/tools/processing/signal_processing/bandpass.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/tools/task_chains/compute_misfits_and_gradients/compute_misfits_and_gradients.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/tools/task_chains/compute_misfits_and_gradients/detail.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/tools/task_chains/compute_misfits_and_gradients/results.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/tools/task_chains/compute_misfits_and_gradients/task_generators.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/simple_config/receiver/cartesian/collections.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/simple_config/receiver/seismology/collections.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/simple_config/source/cartesian/collections.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/layered_meshing/detail/direct/coordinate_systems.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/layered_meshing/detail/direct/special_cases.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/layered_meshing/meshing_protocol/coarsening_policy/detail.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/layered_meshing/meshing_protocol/coarsening_policy/interlayer_constant.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/layered_meshing/meshing_protocol/coarsening_policy/interlayer_doubling.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/layered_meshing/meshing_protocol/coarsening_policy/interlayer_tripling.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/layered_meshing/meshing_protocol/coarsening_policy/intralayer_constant.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/layered_meshing/meshing_protocol/coarsening_policy/intralayer_detail.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/layered_meshing/meshing_protocol/coarsening_policy/intralayer_vertical_refine.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/layered_meshing/meshing_protocol/coarsening_policy/intralayer_variable.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/layered_meshing/meshing_protocol/refinement_policy/simple_post_refinement.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/components/action/exploration/exploration_action_component.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/components/action/inversion/inversion_action_component.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/components/action/seismology/seismology_action_component.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/components/action/validation/validation_action_component.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/configuration/model/background/homogeneous.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/configuration/model/background/one_dimensional.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/configuration/model/volume/cartesian.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/configuration/model/volume/seismology.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/tools/data_selection/seismology/receiver_weighting.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/tools/data_selection/seismology/window_picking.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/tools/io/converters/seisio_to_block_data.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/tools/io/seisio/compression.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/tools/io/seisio/seisio.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/tools/processing/block_processing/adjust_length.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/tools/processing/block_processing/convolve.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/tools/processing/block_processing/resample.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/tools/processing/block_processing/taper.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/tools/processing/seismology/processing_templates.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/tools/processing/signal_processing/bandpass.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/tools/task_chains/prebuilt_workflows/detail.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/tools/task_chains/prebuilt_workflows/prebuilt_workflows.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/tools/task_chains/prebuilt_workflows/results.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/tools/task_chains/prebuilt_workflows/task_generators.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/simple_config/receiver/cartesian/collections.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/simple_config/receiver/seismology/collections.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/simple_config/source/cartesian/collections.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/layered_meshing/detail/direct/coordinate_systems.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/layered_meshing/detail/direct/special_cases.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/layered_meshing/meshing_protocol/coarsening_policy/compute_coarsening_policies.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/layered_meshing/meshing_protocol/coarsening_policy/detail.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/layered_meshing/meshing_protocol/coarsening_policy/interlayer_constant.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/layered_meshing/meshing_protocol/coarsening_policy/interlayer_doubling.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/layered_meshing/meshing_protocol/coarsening_policy/interlayer_tripling.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/layered_meshing/meshing_protocol/coarsening_policy/intralayer_constant.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/layered_meshing/meshing_protocol/coarsening_policy/intralayer_detail.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/layered_meshing/meshing_protocol/coarsening_policy/intralayer_variable.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/layered_meshing/meshing_protocol/coarsening_policy/intralayer_vertical_refine.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/layered_meshing/meshing_protocol/refinement_policy/simple_post_refinement.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/data_structures/salvus_mesh/algorithms/assembly.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/data_structures/salvus_mesh/algorithms/comparison.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/data_structures/salvus_mesh/algorithms/fields.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/data_structures/salvus_mesh/algorithms/interpolation.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/data_structures/salvus_mesh/algorithms/itertools.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/data_structures/salvus_mesh/algorithms/lifting.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/data_structures/salvus_mesh/algorithms/mass_matrix.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/data_structures/salvus_mesh/algorithms/points.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/data_structures/salvus_mesh/algorithms/section.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/data_structures/salvus_mesh/algorithms/transform.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/data_structures/salvus_mesh/migration/unstructured_mesh.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/data_structures/salvus_mesh/serialization/global_element_ids.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/data_structures/salvus_mesh/serialization/hdf5.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/data_structures/salvus_mesh/serialization/vtk_utils.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/components/action/exploration/exploration_action_component.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/components/action/inversion/inversion_action_component.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/components/action/seismology/seismology_action_component.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/components/action/validation/validation_action_component.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/configuration/model/background/homogeneous.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/configuration/model/background/one_dimensional.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/configuration/model/volume/cartesian.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/configuration/model/volume/seismology.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools/data_selection/seismology/receiver_weighting.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools/data_selection/seismology/window_picking.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools/io/converters/seisio_to_block_data.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools/io/seisio/compression.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools/io/seisio/seisio.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools/processing/block_processing/adjust_length.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools/processing/block_processing/convolve.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools/processing/block_processing/resample.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools/processing/block_processing/taper.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools/processing/seismology/processing_templates.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools/processing/signal_processing/bandpass.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools/task_chains/prebuilt_workflows/detail.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools/task_chains/prebuilt_workflows/mesh_from_domain_distributed.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools/task_chains/prebuilt_workflows/prebuilt_workflows.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools/task_chains/prebuilt_workflows/results.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools/task_chains/prebuilt_workflows/smoothing_distributed.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools/task_chains/prebuilt_workflows/task_generators.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/simple_config/receiver/cartesian/collections.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/simple_config/receiver/seismology/collections.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/simple_config/source/cartesian/collections.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/algorithms/unstructured_mesh/chain_complex/cell_topology_to_chain_complex.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/algorithms/unstructured_mesh/chain_complex/chain_complex_to_cell_topology.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/algorithms/unstructured_mesh/chain_complex/io.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/algorithms/unstructured_mesh/chain_complex/merge_k_cell.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/algorithms/unstructured_mesh/chain_complex/split_k_cell.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/layered_meshing/detail/direct/coordinate_systems.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/layered_meshing/detail/direct/special_cases.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/data_structures/salvus_mesh/algorithms/assembly.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/data_structures/salvus_mesh/algorithms/comparison.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/data_structures/salvus_mesh/algorithms/fields.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/data_structures/salvus_mesh/algorithms/interpolation.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/data_structures/salvus_mesh/algorithms/itertools.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/data_structures/salvus_mesh/algorithms/lifting.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/data_structures/salvus_mesh/algorithms/mass_matrix.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/data_structures/salvus_mesh/algorithms/points.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/data_structures/salvus_mesh/algorithms/section.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/data_structures/salvus_mesh/algorithms/transform.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/data_structures/salvus_mesh/migration/unstructured_mesh.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/data_structures/salvus_mesh/serialization/global_element_ids.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/data_structures/salvus_mesh/serialization/hdf5.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/data_structures/salvus_mesh/serialization/vtk_utils.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/layered_meshing/meshing_protocol/coarsening_policy/compute_coarsening_policies.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/layered_meshing/meshing_protocol/coarsening_policy/detail.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/layered_meshing/meshing_protocol/coarsening_policy/interlayer_constant.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/layered_meshing/meshing_protocol/coarsening_policy/interlayer_doubling.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/layered_meshing/meshing_protocol/coarsening_policy/interlayer_tripling.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/layered_meshing/meshing_protocol/coarsening_policy/intralayer_constant.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/layered_meshing/meshing_protocol/coarsening_policy/intralayer_detail.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/layered_meshing/meshing_protocol/coarsening_policy/intralayer_variable.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/layered_meshing/meshing_protocol/coarsening_policy/intralayer_vertical_refine.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/layered_meshing/meshing_protocol/refinement_policy/simple_post_refinement.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/configuration/model/background/homogeneous.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/configuration/model/background/one_dimensional.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/configuration/model/volume/cartesian.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/configuration/model/volume/seismology.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/components/action/exploration/exploration_action_component.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/components/action/seismology/seismology_action_component.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/components/action/inversion/inversion_action_component.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/components/action/validation/validation_action_component.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools/data_selection/seismology/receiver_weighting.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools/data_selection/seismology/window_picking.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools/io/converters/seisio_to_block_data.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools/io/seisio/compression.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools/io/seisio/seisio.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools/processing/block_processing/adjust_length.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools/processing/block_processing/convolve.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools/processing/block_processing/resample.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools/processing/block_processing/taper.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools/processing/seismology/processing_templates.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools/processing/signal_processing/bandpass.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools/task_chains/prebuilt_workflows/detail.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools/task_chains/prebuilt_workflows/mesh_from_domain_distributed.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools/task_chains/prebuilt_workflows/prebuilt_workflows.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools/task_chains/prebuilt_workflows/results.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools/task_chains/prebuilt_workflows/smoothing_distributed.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools/task_chains/prebuilt_workflows/task_generators.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/layered_meshing/material/elastic/anisotropic/dim2.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/layered_meshing/material/elastic/anisotropic/dim3.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/layered_meshing/material/acoustic/transversely_isotropic/dim2.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/layered_meshing/material/acoustic/transversely_isotropic/dim3.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/tools/task_chains/compute_misfits_and_gradients/task_generators/generate_cleanup_task.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/tools/task_chains/compute_misfits_and_gradients/task_generators/generate_misfit_computation_task.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/tools/task_chains/compute_misfits_and_gradients/task_generators/generate_modify_input_file_task.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/tools/task_chains/compute_misfits_and_gradients/task_generators/generate_store_mesh_in_shared_memory_context_function.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/tools/task_chains/compute_misfits_and_gradients/results/failed_result.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/tools/task_chains/compute_misfits_and_gradients/results/functions.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/tools/task_chains/compute_misfits_and_gradients/results/misfit_and_gradient_result.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/tools/task_chains/compute_misfits_and_gradients/results/misfit_result.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/tools/task_chains/compute_misfits_and_gradients/results/result_collection.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/layered_meshing/detail/direct/special_cases/smoothiesem.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/tools/task_chains/prebuilt_workflows/results/failed_result.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/tools/task_chains/prebuilt_workflows/results/functions.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/tools/task_chains/prebuilt_workflows/results/misfit_and_gradient_result.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/tools/task_chains/prebuilt_workflows/results/misfit_result.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/tools/task_chains/prebuilt_workflows/results/result_collection.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/tools/task_chains/prebuilt_workflows/results/waveform_result.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/tools/task_chains/prebuilt_workflows/task_generators/generate_cleanup_task.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/tools/task_chains/prebuilt_workflows/task_generators/generate_misfit_computation_task.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/tools/task_chains/prebuilt_workflows/task_generators/generate_modify_input_file_task.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/tools/task_chains/prebuilt_workflows/task_generators/generate_store_mesh_in_shared_memory_context_function.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/mesh/layered_meshing/detail/direct/special_cases/smoothiesem.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools/task_chains/prebuilt_workflows/mesh_from_domain_distributed/algorithms.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools/task_chains/prebuilt_workflows/mesh_from_domain_distributed/distributed_mesh_building.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools/task_chains/prebuilt_workflows/mesh_from_domain_distributed/task_generators.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools/task_chains/prebuilt_workflows/smoothing_distributed/distributed_smoothing.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools/task_chains/prebuilt_workflows/smoothing_distributed/task_generators.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools/task_chains/prebuilt_workflows/results/failed_mesh_chunk_result.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools/task_chains/prebuilt_workflows/results/failed_result.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools/task_chains/prebuilt_workflows/results/functions.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools/task_chains/prebuilt_workflows/results/mesh_chunk_result.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools/task_chains/prebuilt_workflows/results/misfit_and_gradient_result.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools/task_chains/prebuilt_workflows/results/misfit_result.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools/task_chains/prebuilt_workflows/results/result_collection.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools/task_chains/prebuilt_workflows/results/waveform_result.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools/task_chains/prebuilt_workflows/task_generators/generate_cleanup_task.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools/task_chains/prebuilt_workflows/task_generators/generate_context_manager_function.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools/task_chains/prebuilt_workflows/task_generators/generate_misfit_computation_task.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools/task_chains/prebuilt_workflows/task_generators/generate_modify_input_file_task.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/mesh/layered_meshing/detail/direct/special_cases/smoothiesem.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools/task_chains/prebuilt_workflows/mesh_from_domain_distributed/algorithms.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools/task_chains/prebuilt_workflows/mesh_from_domain_distributed/distributed_mesh_building.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools/task_chains/prebuilt_workflows/mesh_from_domain_distributed/task_generators.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools/task_chains/prebuilt_workflows/results/failed_mesh_chunk_result.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools/task_chains/prebuilt_workflows/results/failed_result.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools/task_chains/prebuilt_workflows/results/functions.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools/task_chains/prebuilt_workflows/results/mesh_chunk_result.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools/task_chains/prebuilt_workflows/results/misfit_and_gradient_result.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools/task_chains/prebuilt_workflows/results/misfit_result.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools/task_chains/prebuilt_workflows/results/result_collection.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools/task_chains/prebuilt_workflows/results/waveform_result.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools/task_chains/prebuilt_workflows/smoothing_distributed/distributed_smoothing.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools/task_chains/prebuilt_workflows/smoothing_distributed/task_generators.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools/task_chains/prebuilt_workflows/task_generators/generate_cleanup_task.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools/task_chains/prebuilt_workflows/task_generators/generate_context_manager_function.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools/task_chains/prebuilt_workflows/task_generators/generate_misfit_computation_task.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools/task_chains/prebuilt_workflows/task_generators/generate_modify_input_file_task.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools/task_chains/prebuilt_workflows/mesh_from_domain_distributed/task_generators/mesh_construction.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools/task_chains/prebuilt_workflows/mesh_from_domain_distributed/task_generators/shared_memory_mesh_context.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools/task_chains/prebuilt_workflows/mesh_from_domain_distributed/task_generators/mesh_construction.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools/task_chains/prebuilt_workflows/mesh_from_domain_distributed/task_generators/shared_memory_mesh_context.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools/task_chains/prebuilt_workflows/smoothing_distributed/task_generators/generate_cleanup_task.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools/task_chains/prebuilt_workflows/smoothing_distributed/task_generators/generate_create_halo_extended_mesh_task.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools/task_chains/prebuilt_workflows/smoothing_distributed/task_generators/generate_setup_diffusion_equations_task.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/tools/task_chains/prebuilt_workflows/smoothing_distributed/task_generators/generate_trim_halo_extended_mesh_task.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools/task_chains/prebuilt_workflows/smoothing_distributed/task_generators/generate_cleanup_task.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools/task_chains/prebuilt_workflows/smoothing_distributed/task_generators/generate_create_halo_extended_mesh_task.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools/task_chains/prebuilt_workflows/smoothing_distributed/task_generators/generate_setup_diffusion_equations_task.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/tools/task_chains/prebuilt_workflows/smoothing_distributed/task_generators/generate_trim_halo_extended_mesh_task.json"}},{"node":{"relativePath":"0.12.16/salvus_compute_api/salvus_compute_api.md"}},{"node":{"relativePath":"0.12.16/salvus_flow_schemas/salvus_flow_schemas.json"}},{"node":{"relativePath":"2024.1.3/salvus_compute_api/salvus_compute_api.md"}},{"node":{"relativePath":"2024.1.3/salvus_flow_schemas/salvus_flow_schemas.json"}},{"node":{"relativePath":"2025.1.3/salvus_compute_api/salvus_compute_api.md"}},{"node":{"relativePath":"2025.1.3/salvus_flow_schemas/salvus_flow_schemas.json"}},{"node":{"relativePath":"2026.5.0/salvus_compute_api/salvus_compute_api.md"}},{"node":{"relativePath":"2026.5.0/salvus_flow_schemas/salvus_flow_schemas.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/material/orientation.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/material/orientation.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/simple_config/stf.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/project/domain/dim3.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/simple_config/stf.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/project/domain/dim3.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/simple_config/stf.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/material/acoustic/isotropic.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/material/elastic/hexagonal.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/project/domain/dim3.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/simple_config/stf.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/material/acoustic/isotropic.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/material/elastic/hexagonal.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/project/domain/dim3.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/simple_config/source/cartesian.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/simple_config/source/seismology.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/flow/sites/concrete_sites/local_hpc.json"}},{"node":{"relativePath":"0.12.16/python_api/salvus/mesh/mesh_block/generators/spherical.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/executors/implementations/local_hpc.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/simple_config/source/cartesian.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/flow/simple_config/source/seismology.json"}},{"node":{"relativePath":"2024.1.3/python_api/salvus/mesh/data_structures/unstructured_mesh/unstructured_mesh.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/executors/implementations/local_hpc.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/flow/simple_config/source/seismology.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/executors/implementations/local_hpc.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/flow/simple_config/source/seismology.json"}},{"node":{"relativePath":"2025.1.3/python_api/salvus/material/elastic/isotropic.json"}},{"node":{"relativePath":"2026.5.0/python_api/salvus/material/elastic/isotropic.json"}}]}},"pageContext":{"id":"1d78ff29-2209-5891-8666-a7c3b3cd2f59"}},
    "staticQueryHashes": ["1756726491","1865182279","3419370438","3597190305","4112489441","519097329"]}