Weak Zone¶
- Contents
rhea_weakzone.h [source]¶
Defines
-
RHEA_WEAKZONE_NEUTRAL_VALUE (1.0)¶
RHEA_WEAKZONE
Weak zones to decouple plate boundaries.
Typedefs
-
typedef struct rhea_weakzone_options rhea_weakzone_options_t¶
-
typedef void (*rhea_weakzone_compute_fn_t)(ymir_vec_t *weakzone, void *data)¶
Computes a custom weak zone. Callback function for weak zone computation.
Enums
Functions
-
void rhea_weakzone_add_options(ymir_options_t *opt_sup)¶
Defines options and adds them as sub-options.
-
void rhea_weakzone_process_options(rhea_weakzone_options_t *opt, rhea_domain_options_t *domain_options)¶
Processes options and stores them.
-
int rhea_weakzone_exists(rhea_weakzone_options_t *opt)¶
Checks whether a weak zone exists for the given set of options.
-
void rhea_weakzone_perfmon_init(const int activate, const int skip_if_active)¶
Initializes performance counters.
-
void rhea_weakzone_perfmon_print(sc_MPI_Comm mpicomm, const int print_wtime, const int print_n_calls, const int print_flops)¶
Prints statistics collected by performance monitors.
-
ymir_vec_t *rhea_weakzone_new(ymir_mesh_t *ymir_mesh)¶
Creates a new weak zone vector.
-
ymir_vec_t *rhea_weakzone_normal_new(ymir_mesh_t *ymir_mesh)¶
-
void rhea_weakzone_destroy(ymir_vec_t *weakzone)¶
Destroys a weak zone vector.
-
void rhea_weakzone_normal_destroy(ymir_vec_t *weakzone_normal)¶
-
int rhea_weakzone_check_vec_type(ymir_vec_t *vec)¶
Checks whether a vector is of the right type.
-
int rhea_weakzone_normal_check_vec_type(ymir_vec_t *vec)¶
-
int rhea_weakzone_is_valid(ymir_vec_t *vec)¶
Checks entries of a vector.
-
void rhea_weakzone_data_create(rhea_weakzone_options_t *opt, sc_MPI_Comm mpicomm)¶
Allocates and performs the setup of data that is required to compute the weak zone field.
-
void rhea_weakzone_data_clear(rhea_weakzone_options_t *opt)¶
Clears storage of weak zone data.
-
void rhea_weakzone_compute(ymir_vec_t *weakzone, void *data)¶
Computes the weak zone at each node of the mesh.
-
void rhea_weakzone_compute_distance(ymir_vec_t *distance, rhea_weakzone_options_t *opt)¶
Computes the distances to the weak zone surfaces at each node of the mesh.
-
void rhea_weakzone_compute_indicator(ymir_vec_t *indicator, const int label_filter, rhea_weakzone_options_t *opt)¶
Computes the (smooth) indicator for weak zones that is 1 inside of weak zones and goes to zero far away from weak zones.
-
void rhea_weakzone_compute_normal(ymir_vec_t *weakzone_normal, rhea_weakzone_options_t *opt)¶
Computes the normal to the weak zone surfaces at each node of the mesh.
-
double rhea_weakzone_dist_node(int *nearest_label, double *nearest_factor, const double x, const double y, const double z, rhea_weakzone_options_t *opt)¶
Computes the weak zone distance/factor/factor derivative at one node.
Computes the distance to the weak zone surface (e.g., shortest distance to point cloud).
-
double rhea_weakzone_factor_node(const double distance, const double thickness, const double thickness_const, const double factor_interior)¶
Computes the weak zone factor depending on the distance to a weak zone. The edges of the weak zone are smoothed by a Gaussian.
1 - (1 - factor_interior) * exp ( - dist^2 / (2 * (0.5*thickness)^2) )
-
double rhea_weakzone_factor_deriv_node(const double distance, const double thickness, const double thickness_const, const double factor_interior)¶
- void rhea_weakzone_compute_elem (double *_sc_restrict weak_elem, const double *_sc_restrict x, const double *_sc_restrict y, const double *_sc_restrict z, const int n_nodes, rhea_weakzone_options_t *opt)
Computes the weak zone factor of one element.
-
int rhea_weakzone_get_total_n_labels(rhea_weakzone_options_t *opt)¶
Returns the total number of labels.
-
double rhea_weakzone_lookup_thickness(const int label, rhea_weakzone_options_t *opt)¶
Looks up weak zone parameters.
-
double rhea_weakzone_lookup_thickness_const(const int label, rhea_weakzone_options_t *opt)¶
-
double rhea_weakzone_lookup_factor_interior(const int label, rhea_weakzone_options_t *opt)¶
-
int rhea_weakzone_lookup_index_from_label(const rhea_weakzone_label_t label, rhea_weakzone_options_t *opt)¶
Gets the array index in [0,total #labels per class) corresponding to a label.
-
rhea_weakzone_label_t rhea_weakzone_lookup_label_from_index(const int idx, rhea_weakzone_options_t *opt)¶
Gets the label corresponding to an array index in [0,total #labels per class).
-
double *rhea_weakzone_get_elem_gauss(sc_dmatrix_t *weak_el_mat, ymir_vec_t *weak_vec, const ymir_locidx_t elid)¶
Gets the weak zone of one element at Gauss nodes.
-
void rhea_weakzone_set_elem_gauss(ymir_vec_t *weak_vec, sc_dmatrix_t *weak_el_mat, const ymir_locidx_t elid)¶
Sets the weak zone of one element at Gauss nodes.
-
struct rhea_weakzone_options¶
Public Members
-
rhea_weakzone_t type¶
-
double thickness¶
-
double thickness_class_slab¶
-
double thickness_class_ridge¶
-
double thickness_class_fracture¶
-
double thickness_const¶
-
double thickness_const_class_slab¶
-
double thickness_const_class_ridge¶
-
double thickness_const_class_fracture¶
-
double weak_factor_interior¶
-
double weak_factor_interior_class_slab¶
-
double weak_factor_interior_class_ridge¶
-
double weak_factor_interior_class_fracture¶
-
double *weak_factor_interior_label¶
-
char *points_file_path_bin¶
-
char *points_file_path_txt¶
-
char *labels_file_path_bin¶
-
char *labels_file_path_txt¶
-
char *factors_file_path_bin¶
-
char *factors_file_path_txt¶
-
int n_points¶
-
int n_labels[RHEA_WEAKZONE_LABEL_CLASS_N]¶
-
char *write_points_file_path_bin¶
-
char *write_points_file_path_txt¶
-
char *write_labels_file_path_bin¶
-
char *write_factors_file_path_bin¶
-
rhea_pointcloud_weakzone_t *pointcloud¶
-
double stats_radius_min¶
-
double stats_thickness_max¶
-
double stats_factor_interior_min¶
-
rhea_domain_options_t *domain_options¶
-
rhea_weakzone_t type¶
rhea_weakzone_label.h [source]¶
Defines
-
RHEA_WEAKZONE_LABEL_MAX_N_NONE 1¶
-
RHEA_WEAKZONE_LABEL_MAX_N_SLAB 128¶
-
RHEA_WEAKZONE_LABEL_MAX_N_RIDGE 128¶
-
RHEA_WEAKZONE_LABEL_MAX_N_FRACTURE 128¶
-
RHEA_WEAKZONE_LABEL_EARTH_N_NONE 0¶
-
RHEA_WEAKZONE_LABEL_EARTH_N_SLAB 27¶
-
RHEA_WEAKZONE_LABEL_EARTH_N_RIDGE 58¶
-
RHEA_WEAKZONE_LABEL_EARTH_N_FRACTURE 35¶
Enums
-
enum rhea_weakzone_label_t¶
RHEA_WEAKZONE_LABEL
Weak zone labels that correspond to specific plate boudaries.
Values:
-
enumerator RHEA_WEAKZONE_LABEL_UNKNOWN = -1¶
-
enumerator RHEA_WEAKZONE_LABEL_CLASS_NONE = 0¶
-
enumerator RHEA_WEAKZONE_LABEL_CLASS_SLAB = 1¶
-
enumerator RHEA_WEAKZONE_LABEL_CLASS_RIDGE = 2¶
-
enumerator RHEA_WEAKZONE_LABEL_CLASS_FRACTURE = 3¶
-
enumerator RHEA_WEAKZONE_LABEL_CLASS_N = 4¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_SL_ALU = 1001¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_SL_CAL = 1002¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_SL_CAM = 1003¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_SL_CAR = 1004¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_SL_CAS = 1005¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_SL_COT = 1006¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_SL_HAL = 1007¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_SL_HEL = 1008¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_SL_HIM = 1009¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_SL_HIN = 1010¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_SL_IZU = 1011¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_SL_KER = 1012¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_SL_KUR = 1013¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_SL_MAK = 1014¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_SL_MAN = 1015¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_SL_MUE = 1016¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_SL_PAM = 1017¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_SL_PHI = 1018¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_SL_PNG = 1019¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_SL_PUY = 1020¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_SL_RYU = 1021¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_SL_SAM = 1022¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_SL_SCO = 1023¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_SL_SOL = 1024¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_SL_SUL = 1025¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_SL_SUM = 1026¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_SL_VAN = 1027¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_KE_AU = 2001¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_TO_NI_1 = 2002¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_TO_NI_2 = 2003¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_TO_AU = 2004¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_BR_NH = 2005¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_AU_CR = 2006¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_NH_PA_1 = 2007¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_NH_PA_2 = 2008¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_CR_NH = 2009¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_PA_BR = 2010¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_ANDAMAN = 2011¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_PS_MA_1 = 2012¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_PS_MA_2 = 2013¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_AYU = 2014¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_AF_AN_1 = 2015¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_AF_AN_2 = 2016¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_AF_AN_3 = 2017¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_SO_AN_1 = 2018¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_SO_AN_2 = 2019¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_SO_IN = 2020¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_AU_SO = 2021¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_NA_AF = 2022¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_AF_SA_1 = 2023¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_AF_SA_2 = 2024¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_AF_SA_3 = 2025¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_AU_AN_1 = 2026¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_AU_AN_2 = 2027¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_AU_AN_3 = 2028¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_PA_AN = 2029¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_AN_SA = 2030¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_AN_NZ = 2031¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_EA_PA = 2032¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_EA_NZ = 2033¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_JZ_PA = 2034¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_JZ_AN = 2035¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_JZ_NZ = 2036¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_NZ_PA = 2037¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_CO_NZ_1 = 2038¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_NZ_PA_1 = 2039¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_NZ_PA_2 = 2040¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_CO_NZ_2 = 2041¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_GP_PA = 2042¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_GP_NZ = 2043¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_GP_CO = 2044¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_CO_PA = 2045¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_PA_CO = 2046¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_RI_PA = 2047¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_NA_PA = 2048¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_PA_JF = 2049¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_SW_SC = 2050¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_NA_EU_1 = 2051¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_NA_EU_2 = 2052¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_EU_NA = 2053¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_IN_SO = 2054¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_IN_AR = 2055¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_SO_AR = 2056¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_AF_AR = 2057¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_RI_AR_AF = 2058¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_FZ_SB_WL = 3001¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_FZ_PS_MA_1 = 3002¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_FZ_PS_MA_2 = 3003¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_FZ_AU_CR = 3004¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_FZ_BR_CR = 3005¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_FZ_BR_AU_1 = 3006¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_FZ_BR_AU_2 = 3007¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_FZ_PA_BR = 3008¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_FZ_FT_PA = 3009¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_FZ_KE_TO = 3010¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_FZ_KE_AU = 3011¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_FZ_PA_AU_1 = 3012¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_FZ_AU_PA = 3013¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_FZ_PA_AU_2 = 3014¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_FZ_NZ_PM = 3015¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_FZ_NA_RI = 3016¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_FZ_NA_PA_1 = 3017¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_FZ_NA_PA_2 = 3018¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_FZ_OK_PS = 3019¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_FZ_SC_AN = 3020¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_FZ_SC_SA_1 = 3021¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_FZ_SC_SA_2 = 3022¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_FZ_AN_SA = 3023¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_FZ_CA_SA = 3024¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_FZ_CA_ND = 3025¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_FZ_CA_NA = 3026¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_FZ_EU_IN = 3027¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_FZ_IN_EU = 3028¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_FZ_AR_IN = 3029¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_FZ_AR_AF = 3030¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_FZ_AT_AR = 3031¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_FZ_AR_EU = 3032¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_FZ_EU_AR = 3033¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_FZ_AT_EU = 3034¶
-
enumerator RHEA_WEAKZONE_LABEL_EARTH_FZ_AS_EU = 3035¶
-
enumerator RHEA_WEAKZONE_LABEL_UNKNOWN = -1¶
Functions
-
static inline int rhea_weakzone_label_is_class(const rhea_weakzone_label_t label)¶
Returns true/false if input label is a label for a class.
-
static inline rhea_weakzone_label_t rhea_weakzone_label_get_class(const rhea_weakzone_label_t label)¶
Returns the label to the class corresponding to the input label. Returns unknown label if cannot determine.
-
static inline int rhea_weakzone_label_is_valid(const rhea_weakzone_label_t label)¶
Returns true/false if the input label is valid.
-
static inline int rhea_weakzone_label_is_valid_int(const int label)¶
-
static inline int rhea_weakzone_label_is_slab(const rhea_weakzone_label_t label)¶
Returns true/false if the input label is of class “slab”.
-
static inline int rhea_weakzone_label_is_ridge(const rhea_weakzone_label_t label)¶
Returns true/false if the input label is of class “ridge”.
-
static inline int rhea_weakzone_label_is_fracture(const rhea_weakzone_label_t label)¶
Returns true/false if the input label is of class “fracture”.