Description
When using the Random Midpoint Displacement (RMD) algorithm to generate rough surfaces, generating the surface in multiple patches — rather than as a single continuous surface — significantly improves the statistical convergence of the height distribution toward the expected Gaussian profile.
Dividing the surface into patches (each generated independently but with the same Hurst exponent and resolution) yields better ensemble statistics. This approach appears to mitigate some of the known limitations of standard RMD implementations that generate the surface in a single pass, where the resulting height distribution often deviates from Gaussian behavior.
Question:
Does the current implementation in MIRCO support patch-based generation for RMD surfaces?
If not, I’d like to suggest adding this as a configurable feature — allowing users to specify the number of patches (or patch size) at a fixed global resolution. The patches would then be combined to form the final surface.
Proposed enhancement:
- Introduce a
num_patches or patch_size parameter in the RMD generator.
- Ensure each patch uses the same Hurst exponent.
- Seamlessly combine patches into a single continuous surface at the end of generation.
This feature would improve statistical robustness and make RMD-generated surfaces more consistent with theoretical expectations.
Example implementation:
An example of a Python implementation of the RMD algorithm with patches (done by @jacopenji ) can be found here:
https://github.com/sbrandstaeter/deep_sim/blob/paper-rebuttal/pydeep_sim/rough_surface/patches_generation.py
Related Issues and Merge Requests
- Blocks
- Is blocked by
- Follows
- Precedes
- Related to
- Part of
- Composed of
Additional Information
Interested Parties
@jacopenji
Description
When using the Random Midpoint Displacement (RMD) algorithm to generate rough surfaces, generating the surface in multiple patches — rather than as a single continuous surface — significantly improves the statistical convergence of the height distribution toward the expected Gaussian profile.
Dividing the surface into patches (each generated independently but with the same Hurst exponent and resolution) yields better ensemble statistics. This approach appears to mitigate some of the known limitations of standard RMD implementations that generate the surface in a single pass, where the resulting height distribution often deviates from Gaussian behavior.
Question:
Does the current implementation in MIRCO support patch-based generation for RMD surfaces?
If not, I’d like to suggest adding this as a configurable feature — allowing users to specify the number of patches (or patch size) at a fixed global resolution. The patches would then be combined to form the final surface.
Proposed enhancement:
num_patchesorpatch_sizeparameter in the RMD generator.This feature would improve statistical robustness and make RMD-generated surfaces more consistent with theoretical expectations.
Example implementation:
An example of a Python implementation of the RMD algorithm with patches (done by @jacopenji ) can be found here:
https://github.com/sbrandstaeter/deep_sim/blob/paper-rebuttal/pydeep_sim/rough_surface/patches_generation.py
Related Issues and Merge Requests
Additional Information
Interested Parties
@jacopenji