diff --git a/.gitattributes b/.gitattributes index 520a1fc54a7d7b0c8be40e84dbdd78a1bc056e73..280e186cd066c9b99ecb7df9c1a60f8e2827842a 100644 --- a/.gitattributes +++ b/.gitattributes @@ -36,6 +36,7 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text material_res3.png filter=lfs diff=lfs merge=lfs -text figures/material_res3.png filter=lfs diff=lfs merge=lfs -text figures/forming_angle.png filter=lfs diff=lfs merge=lfs -text +metadata.json filter=lfs diff=lfs merge=lfs -text data_generation/processed_dataset/config_1/metadata.json filter=lfs diff=lfs merge=lfs -text hybrid_diffusion_material_generation/checkpoints/config_1_continuous_100_epoch/exp_20260114_164540/best_model.pt filter=lfs diff=lfs merge=lfs -text inverse_design_demo/model_checkpoint.pth filter=lfs diff=lfs merge=lfs -text diff --git a/README.md b/README.md index b78fc00faae40bc47b7822a7b28e4d1f14d6ccbb..80b6e1203f4dd949a7f077ebfe230d1b56f6e579 100644 --- a/README.md +++ b/README.md @@ -1,27 +1,12 @@ --- -title: Thermoforming inverse design +title: Inverse Design Demo +emoji: 📚 +colorFrom: green +colorTo: blue sdk: streamlit -emoji: 🚀 -colorFrom: red -colorTo: red -short_description: Thermoforming inverse design +app_file: app.py +python_version: "3.10" +pinned: false --- -# 🏂 US Population Dashboard -A dashboard web app template built in Python using Streamlit. - -## Demo App - -[![Streamlit App](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://population-dashboard.streamlit.app/) - -## Colab notebook -[![Colab Notebook](https://colab.research.google.com/assets/colab-badge.svg)](https://github.com/dataprofessor/population-dashboard/blob/master/US_Population.ipynb) - -## Prerequisite libraries -Here are the Python libraries used in the creation of this dashboard app - -## Data source -US Population data spanning the duration of 2010-2019 was obtained from the [U.S. Census Bureau](https://www.census.gov/data/datasets/time-series/demo/popest/2010s-state-total.html). - -## Reference -A talk entitled [_Crafting a Dashboard App in Python using Streamlit_](https://budapestbi.hu/2023/hu/program/speakers/chanin-nantasenamat/) showing how to build this app is given at the [Budapest BI Forum (Data Visualization track)](https://budapestbi.hu/2023/hu/en/program-data-visualization-track/) on November 22, 2023. \ No newline at end of file +Thermoplastic composite inverse design demo. \ No newline at end of file diff --git a/app.py b/app.py index e08cf5513204e26585c5bf3691581025e9658890..dac182bc7fbef42692719cbd2957c3b18d9bce90 100644 --- a/app.py +++ b/app.py @@ -1,450 +1,14 @@ -####################### -# Import libraries -import streamlit as st -import pandas as pd -import altair as alt -# import plotly.express as px -from PIL import Image # Used to open and handle image files -import matplotlib -import matplotlib.pyplot as plt -import numpy as np - -from model_inverse import inverse_design - -####################### -# Page configuration -st.set_page_config( - page_title="Inverse Design of Thermoplastic Composites for Thermoforming", -# page_icon="🏂", - layout="wide", - initial_sidebar_state="collapsed") - -alt.themes.enable('default') - -####################### -# CSS styling - -st.markdown(""" - -""", unsafe_allow_html=True) - -st.markdown(""" - -""", unsafe_allow_html=True) - -st.markdown(""" - -""", unsafe_allow_html=True) - -st.markdown(""" - -""", unsafe_allow_html=True) - - -st.set_page_config(initial_sidebar_state="collapsed") - -st.markdown( - """ - -""", - unsafe_allow_html=True, -) - -####################### -font = {'size' : 18} - -matplotlib.rc('font', **font) - -####################### -if 'input_changed' not in st.session_state: - st.session_state.input_changed= False -def input_typed_in(): - st.session_state.input_changed= True - -if 'forming_input_changed' not in st.session_state: - st.session_state.forming_input_changed= False -def forming_typed_in(): - st.session_state.forming_input_changed= True - - - -if 'input_curve_button_clicked' not in st.session_state: - st.session_state.input_curve_button_clicked= False -def input_curve_click(): - st.session_state.input_curve_button_clicked = True - -if 'material_design_button_clicked' not in st.session_state: - st.session_state.material_design_button_clicked= False -def material_design_click(): - st.session_state.material_design_button_clicked = True - -if 'forming_input_button_clicked' not in st.session_state: - st.session_state.forming_input_button_clicked= False -def forming_input_click(): - st.session_state.forming_input_button_clicked = True - -if 'forming_design_button_clicked' not in st.session_state: - st.session_state.forming_design_button_clicked= False -def forming_design_click(): - st.session_state.forming_design_button_clicked = True - - - -####################### -# Load data -#df_reshaped = pd.read_csv('data/us-population-2010-2019-reshaped.csv') - -######## Initialize data ############# -E1aV=0 # initial longitudinal stiffness -E1bV=0 # 10% strain longitudinal stiffness -G12aV=0 # initial longitudinal stiffness -G12bV=0 # 10% strain longitudinal stiffness -nlayers=4 -vf=0.6 -angle=30 - -####################### -# Main Panel - -data_materials={ - 'Matrix':['ABS','Polyurethane','Nylon 6','Nylon 6','Nylon 66','PE','PP'], - 'Filler':['Carbon Black','Glass Fiber','Glass Fiber','Carbon Fiber','Glass Fiber','Carbon Fiber','Glass Fiber'], - 'VF':['15%','20%','20%','40%','30%','20%','30%'], - 'Feature':['Blend','Extruded','Molded','Molded','Molded','Molded','Molded'] - } - -data_physical = { - 'Forming T (C)': ['180', '185', '190'], - 'Punch V (m/s)': ['1.05', '1.8','1.67'], - 'Cooling time (s)': ['45','80','120'], - 'Holding force (kN)': ['23','24','25'] - } - -st.title("Inverse Design of Thermoplastic Composites for Thermoforming") -st.write("") -st.write("") -st.write("") -st.write(r"$\textsf{\textbf{\Large Material Design Requirements}}$") -#st.text_input(r"$\textsf{\textbf{\Large Material Design Requirements}}$") - -# First row with 5 columns -col1_row1, col2_row1, col3_row1, col4_row1, col5_row1= st.columns([0.25,0.25,0.25,0.25,0.25]) -with col1_row1: - with st.container(border=False): # Container with a border - E1aV= st.number_input("Initial x-stiffness (MPa):", value=2000.00, format="%.2f", width=250, key="E1a", on_change=input_typed_in) - E1bV= st.number_input("10% strain x-stiffness (MPa):", value=1000.00, format="%.2f", width=250, key="E1b", on_change=input_typed_in) - S1bV= st.number_input("10% strain x-stress (MPa):", value=1000.00, format="%.2f", width=250, key="S1b", on_change=input_typed_in) - -with col2_row1: - with st.container(border=False): # Container with a border - E2aV= st.number_input("Initial y-stiffness (MPa):", value=2000.00, format="%.2f", width=250, key="E2a", on_change=input_typed_in) - E2bV= st.number_input("10% strain y-stiffness (MPa):", value=1000.00, format="%.2f", width=250, key="E2b", on_change=input_typed_in) - S2bV= st.number_input("10% strain y-stress (MPa):", value=1000.00, format="%.2f", width=250, key="S2b", on_change=input_typed_in) - - -with col3_row1: - with st.container(border=False): # Container with a border - G12aV= st.number_input("Initial shear stiffness (MPa):", value=1800.00, format="%.2f", width=250, key="G12a", on_change=input_typed_in) - G12bV= st.number_input("0.1 shear strain stiffness (MPa):", value=1000.00, format="%.2f", width=250, key="G12b", on_change=input_typed_in) - S12bV= st.number_input("10% strain shear stress (MPa):", value=1000.00, format="%.2f", width=250, key="S12b", on_change=input_typed_in) - -with col4_row1: - with st.container(border=False): # Container with a border - v12aV= st.number_input("Initial Poisson's ratio (vxy):", value=0.3, format="%.2f", width=250, key="v12a", on_change=input_typed_in) - v12bV= st.number_input("0.1 strain Poisson's ratio (vxy):", value=0.4, format="%.2f", width=250, key="v12b", on_change=input_typed_in) - - -with col5_row1: - with st.container(border=False): # Container with a border - v21aV= st.number_input("Initial Poisson's ratio (vyx):", value=0.3, format="%.2f", width=250, key="v21a", on_change=input_typed_in) - v21bV= st.number_input("0.1 strain Poisson's ratio (vyx):", value=0.4, format="%.2f", width=250, key="v21b", on_change=input_typed_in) - - - -st.write("") -if st.session_state.input_changed == True: - st.session_state.input_curve_button_clicked = False - st.session_state.material_design_button_clicked = False - st.session_state.forming_input_button_clicked = False - st.session_state.forming_design_button_clicked = False - st.session_state.input_changed = False - -st.button("Generate required stress-strain curves", use_container_width=True, on_click=input_curve_click) - -if st.session_state.input_curve_button_clicked == True: - #st.write(E1aV) - #st.write(E1bV) - x = np.linspace(0, 0.1, 20) - A = np.array([[0.2, 0.03], [0.01, 0.001]]) - b = np.array([E1bV-E1aV, S1bV-E1aV*0.1]) - a = np.linalg.solve(A, b) - y1= E1aV*x + a[0]*x**2 + a[1]*x**3 - b = np.array([E2bV-E2aV, S2bV-E2aV*0.1]) - a = np.linalg.solve(A, b) - y2= E2aV*x + a[0]*x**2 + a[1]*x**3 - b = np.array([G12bV-G12aV, S12bV-G12aV*0.1]) - a = np.linalg.solve(A, b) - y3= G12aV*x + a[0]*x**2 + a[1]*x**3 - - y4 = v12aV*x + (v12bV - v12aV)/0.2*x*x - y5 = v21aV*x + (v21bV - v21aV)/0.2*x*x - - - #ylimit=np.max([np.max(y1),np.max(y2), np.max(y3)]) - # 2nd row with 3 columns - col1_row2, col2_row2, col3_row2, col4_row2, col5_row2= st.columns([0.2,0.2,0.2,0.2,0.2]) - with col1_row2: - with st.container(border=False): # Container with a border - fig, ax = plt.subplots() - ax.plot(x, y1) - #ax.set_ylim([0, ylimit]) - ax.set_ylabel('Stress (MPa)') - ax.set_xlabel('Strain') - ax.set_title('Longitudinal stress-strain (xx)') - st.pyplot(fig) - with col2_row2: - with st.container(border=False): # Container with a border - fig, ax = plt.subplots() - ax.plot(x, y2) - #ax.set_ylim([0, ylimit]) - ax.set_ylabel('Stress (MPa)') - ax.set_xlabel('Strain') - ax.set_title('Transverse stress-strain (yy)') - st.pyplot(fig) - with col3_row2: - with st.container(border=False): # Container with a border - fig, ax = plt.subplots() - ax.plot(x, y3) - #ax.set_ylim([0, ylimit]) - ax.set_ylabel('Stress (MPa)') - ax.set_xlabel('Strain') - ax.set_title('Shear stress-strain (xy') - st.pyplot(fig) - with col4_row2: - with st.container(border=False): # Container with a border - fig, ax = plt.subplots() - ax.plot(x, -y4) - #ax.set_ylim([-0.05, 0]) - ax.set_xlabel('Strain xx') - ax.set_ylabel('Strain yy') - ax.set_title('Strain ratio with stress xx') - st.pyplot(fig) - with col5_row2: - with st.container(border=False): # Container with a border - fig, ax = plt.subplots() - ax.plot(x, -y5) - #ax.set_ylim([-0.05, 0]) - ax.set_xlabel('Strain yy') - ax.set_ylabel('Strain xx') - ax.set_title('Strain ratio with stress yy') - st.pyplot(fig) - - st.write("") - st.button("Material Inverse Design", use_container_width=True, on_click=material_design_click) - if st.session_state.material_design_button_clicked == True: - #st.write("") - - # 3rd row with 3 columns - col1_row3, col2_row3, col3_row3, col4_row3, col5_row3= st.columns([0.15,0.15,0.23,0.23,0.23]) - with col1_row3: - with st.container(border=False): # Container with a border - st.write("Matrix material = ", "PEEK") - st.write("Fiber material = ", "Carbon") - - with col2_row3: - with st.container(border=False): # Container with a border - st.write("Number of layers =", nlayers) - st.write("Volume fraction =", vf) - - with col3_row3: - with st.container(border=False): # Container with a border - df = pd.DataFrame({'Ply': [], 'Orientation': []}) - plies = np.array([[1,90], [2,45], [3,-45], [4,-90]]) - plies_df=pd.DataFrame(plies, columns=df.columns) - df = pd.concat([df, plies_df], ignore_index=True) - st.dataframe(df, hide_index=True) - - - # 3.5rd row with 3 columns - col1_row35, col2_row35, col3_row35, col4_row35, col5_row35= st.columns([0.2,0.2,0.2,0.2,0.2]) - with col1_row35: - with st.container(border=False): # Container with a border - image = Image.open('figures/material_res3.png') - new_image = image.resize((250, 200)) - st.image(new_image, caption='') - - with col2_row35: - with st.container(border=False): # Container with a border - image = Image.open('figures/material_res3.png') - new_image = image.resize((250, 200)) - st.image(new_image, caption='') - - with col3_row35: - with st.container(border=False): # Container with a border - image = Image.open('figures/material_res3.png') - new_image = image.resize((250, 200)) - st.image(new_image, caption='') - - with col4_row35: - with st.container(border=False): # Container with a border - image = Image.open('figures/material_res3.png') - new_image = image.resize((250, 200)) - st.image(new_image, caption='') - - - with col5_row35: - with st.container(border=False): # Container with a border - image = Image.open('figures/material_res3.png') - new_image = image.resize((250, 200)) - st.image(new_image, caption='') - - - st.write("") - st.button("Thermoforming Requirements", use_container_width=True, on_click=forming_input_click) - if st.session_state.forming_input_button_clicked == True: - #st.write("") - # 4th row with 3 columns - col1_row4, col2_row4, col3_row4, col4_row4, col5_row4 = st.columns([0.16,0.16,0.2,0.24,0.24]) - with col1_row4: - with st.container(border=False): # Container with a border - st.write("Matrix material", "PEEK") - st.write("Fiber material=", "Carbon") - st.write("Number of layers=", nlayers) - st.write("Volume fraction=", vf) - with col2_row4: - with st.container(border=False): # Container with a border - df = pd.DataFrame({'Ply': [], 'Orientation': []}) - plies = np.array([[1,90], [2,45], [3,-45], [4,-90]]) - plies_df=pd.DataFrame(plies, columns=df.columns) - df = pd.concat([df, plies_df], ignore_index=True) - st.dataframe(df, hide_index=True) - - with col3_row4: - with st.container(border=False): # Container with a border - image = Image.open('figures/forming_angle.png') - new_image = image.resize((250, 200)) - st.image(new_image, caption='') - - with col4_row4: - with st.container(border=False): # Container with a border - angleA= st.number_input("Maximum warpage angle A (degree):", format="%.2f", width=300, key="A", on_change=forming_typed_in) - angleB= st.number_input("Maximum warpage angle B (degree):", format="%.2f", width=300, key="B", on_change=forming_typed_in) - - - with col5_row4: - with st.container(border=False): # Container with a border - angleC= st.number_input("Maximum warpage angle C (degree):", format="%.2f", width=300, key="C", on_change=forming_typed_in) - max_stress= st.number_input("Maximum residual stress (MPa):", format="%.2f", width=300, key="max_stress", on_change=forming_typed_in) - - - st.write("") - if st.session_state.forming_input_changed == True: - st.session_state.forming_design_button_clicked = False - st.session_state.forming_input_changed = False - st.button("Thermoforming process design", use_container_width=True, on_click=forming_design_click) - if st.session_state.forming_design_button_clicked == True: - best = inverse_design(ply_number=nlayers, - fiber_vf=vf, - y_target=[angleA, angleB, angleC, max_stress], - n_restarts=5, - epochs=100) - # 5th row with 3 columns - col1_row5, col2_row5,col3_row5 = st.columns([0.25,0.25,0.25]) - with col1_row5: - with st.container(border=False): # Container with a border - st.write("Forming temperature (C)=", best["input"][0]) - with col2_row5: - with st.container(border=False): # Container with a border - st.write("Punching velocity (mm/s)=", best["input"][1]) - with col3_row5: - with st.container(border=False): # Container with a border - st.write("Cooling time (s)=", best["input"][2]) - - - - +import os +import runpy +import sys +APP_DIR = os.path.dirname(os.path.abspath(__file__)) +DEMO_DIR = os.path.join(APP_DIR, "inverse_design_demo") +DEMO_APP = os.path.join(DEMO_DIR, "app.py") +# Execute the original Streamlit script in this process. +if DEMO_DIR not in sys.path: + sys.path.insert(0, DEMO_DIR) +os.chdir(DEMO_DIR) +runpy.run_path(DEMO_APP, run_name="__main__") diff --git a/data_generation/hf_space_generation_ro/README.md b/data_generation/hf_space_generation_ro/README.md new file mode 100644 index 0000000000000000000000000000000000000000..00ea133f3b7b3eaec28eaed25467e68862978ba2 --- /dev/null +++ b/data_generation/hf_space_generation_ro/README.md @@ -0,0 +1,23 @@ +# Hybrid Diffusion Material Generation (RO) — Hugging Face Space + +This folder is intended to be uploaded as a standalone Hugging Face Space. + +## What it does +- Provides **5 groups of coefficient sliders** (RO params, 5×3) with min/max ranges loaded from `metadata_ro.json`. +- Shows **real-time curve previews** derived from the current coefficients. +- On **Generate**, runs diffusion sampling from a trained checkpoint and then runs **N simulations (1–5)** (instances `1..N`) and overlays the curves. + +## Expected inputs (paths) +By default the app reads paths from environment variables (recommended for Spaces): +- `MG_CHECKPOINT_DIR`: directory containing `training_config.json` and a model checkpoint (`best_model.pt`). +- `MG_DATA_DIR`: processed data directory containing `metadata_ro.json` (for coefficient ranges and normalization stats). +- `MG_CURVE_DIR`: directory containing curve files like `CPP_0.0924_1_11.txt`, etc. + +You can also edit these paths directly in the UI. + +## Run locally +```bash +pip install -r requirements.txt +python app.py +``` + diff --git a/data_generation/hf_space_generation_ro/app.py b/data_generation/hf_space_generation_ro/app.py new file mode 100644 index 0000000000000000000000000000000000000000..3f0114a3ae52f13b51269bf9d0ed55faaef9e953 --- /dev/null +++ b/data_generation/hf_space_generation_ro/app.py @@ -0,0 +1,474 @@ +from __future__ import annotations + +import os +from functools import lru_cache +from typing import List + +import gradio as gr +import numpy as np +import torch + +from space_lib.infer import ( + load_model_bundle, + postprocess_sample, + sample, +) +from space_lib.metadata import ( + load_metadata_ro, + normalize_ro13, + ro13_from_ro15, + ro15_from_groups, + ro_groups_from_ro15, +) +from space_lib.plots import plot_condition_and_simulations +from space_lib.ro_curves import plot_ro_lateral_relation, plot_ro_stress_relation +from space_lib.simulate import default_lam_dir, simulate_instances + + +DEFAULT_CHECKPOINT_DIR = os.environ.get( + "MG_CHECKPOINT_DIR", + "/project/luofeng/feiyang/MaterialGeneration/hybrid_diffusion_material_generation_ro_fitting/checkpoints/config_1_continuous_100_epoch/exp_20260108_180412", +) +DEFAULT_DATA_DIR = os.environ.get( + "MG_DATA_DIR", + "/project/luofeng/feiyang/MaterialGeneration/data_generation/processed_dataset_ro", +) +DEFAULT_CURVE_DIR = os.environ.get( + "MG_CURVE_DIR", + "/project/luofeng/feiyang/MaterialGeneration/data_generation/shahriar_modified_2025_12/RVE_Datasets", +) + +# UI simplification: hard-code these for the Space (no controls exposed) +CHECKPOINT_DIR = DEFAULT_CHECKPOINT_DIR +DATA_DIR = DEFAULT_DATA_DIR +CURVE_DIR = DEFAULT_CURVE_DIR +LAM_DIR = default_lam_dir() + +NORMALIZATION_METHOD = "zscore" +DEVICE = "cuda" if torch.cuda.is_available() else "cpu" +REMASK_PROB = 0.1 +ANGLE_RESOLUTION = 1.0 +X_MAX = 0.1 # fixed +PLOT_HEIGHT = 260 # px: match ~3 stacked sliders visually + + +@lru_cache(maxsize=4) +def _get_meta(data_dir: str): + return load_metadata_ro(data_dir) + + +_MODEL_CACHE = {} + + +def _get_model(checkpoint_dir: str, device: str, angle_resolution: float): + key = (checkpoint_dir, device, float(angle_resolution)) + if key not in _MODEL_CACHE: + _MODEL_CACHE[key] = load_model_bundle(checkpoint_dir, device=device, angle_resolution=angle_resolution) + return _MODEL_CACHE[key] + + +def _angle_categories_from_meta(meta, angle_resolution: float) -> np.ndarray: + angle_min_raw = float(meta.raw.get("angle_min", 0.0)) + angle_max_raw = float(meta.raw.get("angle_max", 90.0)) + res = float(angle_resolution) + ang_min = np.floor(angle_min_raw / res) * res + ang_max = np.ceil(angle_max_raw / res) * res + num = int((ang_max - ang_min) / res) + 1 + return np.linspace(ang_min, ang_max, num, dtype=np.float32) + + +def _default_ro15_values(data_dir: str) -> np.ndarray: + meta = _get_meta(data_dir) + if meta.ro_mean_full is not None and meta.ro_mean_full.size == 15: + return meta.ro_mean_full.astype(np.float32) + return ((meta.ro_min_full + meta.ro_max_full) * 0.5).astype(np.float32) + + +_RO_FLAT_IDXS_SHOWN = (0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 12, 13, 14) # hide c for groups 2 & 4 + + +def _load_test_ro15(data_dir: str, idx: int) -> np.ndarray: + """ + Load RO coefficients from held-out test set (processed_dataset_ro/test_data_ro.npz). + Returns flattened (15,) corresponding to [5,3] row-major. + """ + npz_path = os.path.join(data_dir, "test_data_ro.npz") + if not os.path.exists(npz_path): + raise FileNotFoundError(f"Missing test file: {npz_path}") + data = np.load(npz_path) + if "ramberg_osgood_params" not in data: + raise KeyError(f"'ramberg_osgood_params' not found in {npz_path}. Keys: {list(data.keys())}") + arr = data["ramberg_osgood_params"] # (N,5,3) + n = int(arr.shape[0]) + if n <= 0: + raise ValueError(f"No samples in {npz_path}") + idx = int(idx) % n + ro_5x3 = np.asarray(arr[idx], dtype=np.float32) + if ro_5x3.shape != (5, 3): + raise ValueError(f"Unexpected shape for ramberg_osgood_params[{idx}]: {ro_5x3.shape}") + return ro_5x3.reshape(-1) # (15,) + + +def _ro15_to_ui13(ro15: np.ndarray) -> list[float]: + ro15 = np.asarray(ro15, dtype=np.float32).reshape(-1) + if ro15.size != 15: + raise ValueError(f"Expected 15 values, got {ro15.size}") + return [round(float(ro15[i]), 3) for i in _RO_FLAT_IDXS_SHOWN] + + +def _build_groups_from_slider_values(vals: List[float]) -> np.ndarray: + """ + UI exposes only 13 coeffs: + - Group 1: a,b,c + - Group 2: a,b (c hidden/unused) + - Group 3: a,b,c + - Group 4: a,b (c hidden/unused) + - Group 5: a,b,c + + Internally: return (5,3) with c for groups 2&4 forced to 0. + """ + if len(vals) != 13: + raise ValueError(f"Expected 13 slider values, got {len(vals)}") + ro15 = np.zeros(15, dtype=np.float32) + for i, flat_idx in enumerate(_RO_FLAT_IDXS_SHOWN): + ro15[int(flat_idx)] = float(vals[i]) + ro15[5] = 0.0 + ro15[11] = 0.0 + return ro15.reshape(5, 3) + + +def ui_preview_11_stress(a: float, b: float, c: float): + meta = _get_meta(DATA_DIR) + fig = plot_ro_stress_relation( + a=a, b=b, c=c, x_scale=meta.eps_11_scale, x_max=X_MAX, title="Mode 11: σ11(ε11)" + ) + return fig + + +def ui_preview_11_lat(a: float, b: float): + meta = _get_meta(DATA_DIR) + fig = plot_ro_lateral_relation( + a=a, b=b, x_scale=meta.eps_11_scale, y_scale=meta.eps_22_scale, x_max=X_MAX, title="Mode 11: ε22(ε11)" + ) + return fig + + +def ui_preview_22_stress(a: float, b: float, c: float): + meta = _get_meta(DATA_DIR) + fig = plot_ro_stress_relation( + a=a, b=b, c=c, x_scale=meta.eps_22_scale, x_max=X_MAX, title="Mode 22: σ22(ε22)" + ) + return fig + + +def ui_preview_22_lat(a: float, b: float): + meta = _get_meta(DATA_DIR) + fig = plot_ro_lateral_relation( + a=a, b=b, x_scale=meta.eps_22_scale, y_scale=meta.eps_11_scale, x_max=X_MAX, title="Mode 22: ε11(ε22)" + ) + return fig + + +def ui_preview_12_stress(a: float, b: float, c: float): + meta = _get_meta(DATA_DIR) + fig = plot_ro_stress_relation( + a=a, b=b, c=c, x_scale=meta.eps_12_scale, x_max=X_MAX, title="Mode 12: σ12(ε12)" + ) + return fig + + +def ui_generate( + n_simulations: int, + *slider_vals: float, +): + # Streaming generator: yields (plot, info, status_log) updates + meta = _get_meta(DATA_DIR) + log_lines: list[str] = [] + def _push(msg: str): + log_lines.append(str(msg)) + # keep log reasonably bounded + if len(log_lines) > 200: + log_lines[:] = log_lines[-200:] + return "\n".join(log_lines) + + yield gr.update(), gr.update(), _push("Generating (diffusion sampling)...") + groups = _build_groups_from_slider_values(list(slider_vals)) + ro15 = ro15_from_groups(groups) + ro13_raw = ro13_from_ro15(ro15) + cond_norm = normalize_ro13(ro13_raw, meta, NORMALIZATION_METHOD) + + bundle = _get_model(CHECKPOINT_DIR, device=DEVICE, angle_resolution=ANGLE_RESOLUTION) + use_discrete_angles = bundle.use_discrete_angles + angle_categories = _angle_categories_from_meta(meta, ANGLE_RESOLUTION) if use_discrete_angles else None + + cond_t = torch.tensor(cond_norm, dtype=torch.float32, device=DEVICE).view(1, -1) + out = sample( + model=bundle.model, + disc_diff_mat=bundle.disc_diff_mat, + disc_diff_vf_category=bundle.disc_diff_vf_category, + disc_diff_layer=bundle.disc_diff_layer, + disc_diff_angle=bundle.disc_diff_angle, + cont_diff=bundle.cont_diff, + cond=cond_t, + mask_ids=bundle.mask_ids, + device=DEVICE, + remask_prob=float(REMASK_PROB), + use_discrete_angles=use_discrete_angles, + ) + + mat_type, vf, upper_angles = postprocess_sample(out, use_discrete_angles=use_discrete_angles, angle_categories_deg=angle_categories) + # Continuous-angle model is constrained to (0, pi/2) in-model, but keep a defensive clip to metadata range. + ang_min = float(meta.raw.get("angle_min", 0.0)) + ang_max = float(meta.raw.get("angle_max", 90.0)) + upper_angles = [min(max(float(a), ang_min), ang_max) for a in upper_angles] + _push(f"Generation done.") + _push(f"Generated material: {mat_type}") + _push(f"Generated vf: {vf:.4f}") + _push(f"Generated upper angles (deg): {upper_angles}") + _push(f"Simulating {int(n_simulations)} instance(s)...") + + # Show condition-only plot immediately + fig0 = plot_condition_and_simulations( + groups, + (meta.eps_11_scale, meta.eps_22_scale, meta.eps_12_scale), + {}, + ) + info0 = ( + f"Generated material: {mat_type}\n" + f"Generated vf: {vf:.4f}\n" + f"Generated upper angles (deg): {upper_angles}\n" + f"Simulated instances: []" + ) + yield fig0, info0, "\n".join(log_lines) + + # Simulate sequentially so we can update status per instance. + sim_by_instance = {} + instances = list(range(1, int(n_simulations) + 1)) + for inst in instances: + _push(f"Simulating instance {inst}/{len(instances)}...") + try: + sim_part = simulate_instances( + curve_dir=CURVE_DIR, + lam_dir=LAM_DIR, + mat_type=mat_type, + vf=vf, + upper_angles=upper_angles, + instances=[inst], + num_output_points=10, + ) + sim_by_instance.update(sim_part) + _push(f"Instance {inst} done.") + except Exception as e: + _push(f"Instance {inst} failed: {type(e).__name__}: {e}") + + # Update plot incrementally after each instance attempt + fig_i = plot_condition_and_simulations( + groups, + (meta.eps_11_scale, meta.eps_22_scale, meta.eps_12_scale), + sim_by_instance, + ) + info_i = ( + f"Generated material: {mat_type}\n" + f"Generated vf: {vf:.4f}\n" + f"Generated upper angles (deg): {upper_angles}\n" + f"Simulated instances: {sorted(sim_by_instance.keys())}" + ) + yield fig_i, info_i, "\n".join(log_lines) + + _push("Done.") + yield fig_i, info_i, "\n".join(log_lines) + + +def build_app(): + meta = _get_meta(DATA_DIR) + # Default initialization uses dataset-wide mean (or min/max midpoint). + # You can optionally load a held-out test condition via the UI accordion. + ro15_init = _default_ro15_values(DATA_DIR) + ro_min = meta.ro_min_full + ro_max = meta.ro_max_full + + with gr.Blocks( + css=""" + /* Make slider numeric input boxes consistent width */ + .gradio-container .gr-slider input[type="number"], + .gradio-container .gr-number input[type="number"], + .gradio-container input[type="number"] { + width: 78px !important; + min-width: 78px !important; + } + + /* --- Layout: make plot columns match the 3-slider column height; keep 2-slider column top-aligned --- */ + #mode11_row, #mode22_row, #mode12_row { + align-items: stretch !important; /* row height = tallest column (3 sliders) */ + } + #mode11_col3, #mode22_col3, #mode12_col3 { + align-self: flex-start !important; /* 2-slider column should NOT stretch */ + } + #mode11_col2, #mode11_col4, #mode22_col2, #mode22_col4, #mode12_col2, #mode12_col4 { + display: flex !important; + flex-direction: column !important; + } + #mode11_stress_plot, #mode11_lat_plot, #mode22_stress_plot, #mode22_lat_plot, #mode12_stress_plot { + flex: 1 1 auto !important; + height: 100% !important; + min-height: 0 !important; + } + #mode11_stress_plot img, #mode11_lat_plot img, #mode22_stress_plot img, #mode22_lat_plot img, #mode12_stress_plot img { + height: 100% !important; + width: 100% !important; + object-fit: contain; + } + """ + ) as demo: + gr.Markdown("## Hybrid Diffusion Material Generation (RO)") + n_simulations = gr.Slider(1, 5, value=3, step=1, label="Number of simulations (instances 1..N)") + + with gr.Accordion("Init from test set (optional)", open=False): + gr.Markdown( + "Loads coefficients from `processed_dataset_ro/test_data_ro.npz` → `ramberg_osgood_params[idx]`.\n" + "This is useful to sanity-check performance on held-out conditions." + ) + test_idx = gr.Number(value=0, precision=0, label="test_data_ro.npz index (int)") + load_test_btn = gr.Button("Load this test index into sliders") + rand_test_btn = gr.Button("Load a random test index into sliders") + test_status = gr.Markdown("") + + # --- Mode 11 --- + gr.Markdown( + "### Mode 11\n" + "**Stress relationship:**\n" + "$$\\sigma_{11} = a\\,(\\varepsilon_{11}/s_{11}) + b\\,(\\varepsilon_{11}/s_{11})^{c}$$\n" + "**Lateral relationship:**\n" + "$$\\varepsilon_{22} = a\\,|\\varepsilon_{11}/s_{11}|^{b}\\,s_{22}$$\n" + ) + with gr.Row(elem_id="mode11_row"): + # Column 1: three sliders (subrows) + with gr.Column(scale=1, elem_id="mode11_col1"): + g11_a = gr.Slider(float(ro_min[0]), float(ro_max[0]), value=round(float(ro15_init[0]), 3), step=0.001, label="ε11→σ11:\u00A0a") + g11_b = gr.Slider(float(ro_min[1]), float(ro_max[1]), value=round(float(ro15_init[1]), 3), step=0.001, label="ε11→σ11:\u00A0b") + g11_c = gr.Slider(float(ro_min[2]), float(ro_max[2]), value=round(float(ro15_init[2]), 3), step=0.001, label="ε11→σ11:\u00A0c") + # Column 2: plot + with gr.Column(scale=1, elem_id="mode11_col2"): + _fig = ui_preview_11_stress(float(ro15_init[0]), float(ro15_init[1]), float(ro15_init[2])) + mode11_stress_plot = gr.Plot(value=_fig, elem_id="mode11_stress_plot") + # Column 3: two sliders (subrows) + with gr.Column(scale=1, elem_id="mode11_col3"): + g11_lat_a = gr.Slider(float(ro_min[3]), float(ro_max[3]), value=round(float(ro15_init[3]), 3), step=0.001, label="ε11→ε22:\u00A0a") + g11_lat_b = gr.Slider(float(ro_min[4]), float(ro_max[4]), value=round(float(ro15_init[4]), 3), step=0.001, label="ε11→ε22:\u00A0b") + # Column 4: plot + with gr.Column(scale=1, elem_id="mode11_col4"): + _fig = ui_preview_11_lat(float(ro15_init[3]), float(ro15_init[4])) + mode11_lat_plot = gr.Plot(value=_fig, elem_id="mode11_lat_plot") + + # --- Mode 22 --- + gr.Markdown( + "### Mode 22\n" + "**Stress relationship:**\n" + "$$\\sigma_{22} = a\\,(\\varepsilon_{22}/s_{22}) + b\\,(\\varepsilon_{22}/s_{22})^{c}$$\n" + "**Lateral relationship:**\n" + "$$\\varepsilon_{11} = a\\,|\\varepsilon_{22}/s_{22}|^{b}\\,s_{11}$$\n" + ) + with gr.Row(elem_id="mode22_row"): + # Column 1: three sliders (subrows) + with gr.Column(scale=1, elem_id="mode22_col1"): + g22_a = gr.Slider(float(ro_min[6]), float(ro_max[6]), value=round(float(ro15_init[6]), 3), step=0.001, label="ε22→σ22:\u00A0a") + g22_b = gr.Slider(float(ro_min[7]), float(ro_max[7]), value=round(float(ro15_init[7]), 3), step=0.001, label="ε22→σ22:\u00A0b") + g22_c = gr.Slider(float(ro_min[8]), float(ro_max[8]), value=round(float(ro15_init[8]), 3), step=0.001, label="ε22→σ22:\u00A0c") + # Column 2: plot + with gr.Column(scale=1, elem_id="mode22_col2"): + _fig = ui_preview_22_stress(float(ro15_init[6]), float(ro15_init[7]), float(ro15_init[8])) + mode22_stress_plot = gr.Plot(value=_fig, elem_id="mode22_stress_plot") + # Column 3: two sliders (subrows) + with gr.Column(scale=1, elem_id="mode22_col3"): + g22_lat_a = gr.Slider(float(ro_min[9]), float(ro_max[9]), value=round(float(ro15_init[9]), 3), step=0.001, label="ε22→ε11:\u00A0a") + g22_lat_b = gr.Slider(float(ro_min[10]), float(ro_max[10]), value=round(float(ro15_init[10]), 3), step=0.001, label="ε22→ε11:\u00A0b") + # Column 4: plot + with gr.Column(scale=1, elem_id="mode22_col4"): + _fig = ui_preview_22_lat(float(ro15_init[9]), float(ro15_init[10])) + mode22_lat_plot = gr.Plot(value=_fig, elem_id="mode22_lat_plot") + + # --- Mode 12 --- + gr.Markdown( + "### Mode 12\n" + "**Stress relationship:**\n" + "$$\\sigma_{12} = a\\,(\\varepsilon_{12}/s_{12}) + b\\,(\\varepsilon_{12}/s_{12})^{c}$$\n" + ) + with gr.Row(elem_id="mode12_row"): + # Column 1: three sliders (subrows) + with gr.Column(scale=1, elem_id="mode12_col1"): + g12_a = gr.Slider(float(ro_min[12]), float(ro_max[12]), value=round(float(ro15_init[12]), 3), step=0.001, label="ε12→σ12:\u00A0a") + g12_b = gr.Slider(float(ro_min[13]), float(ro_max[13]), value=round(float(ro15_init[13]), 3), step=0.001, label="ε12→σ12:\u00A0b") + g12_c = gr.Slider(float(ro_min[14]), float(ro_max[14]), value=round(float(ro15_init[14]), 3), step=0.001, label="ε12→σ12:\u00A0c") + # Column 2: plot + with gr.Column(scale=1, elem_id="mode12_col2"): + _fig = ui_preview_12_stress(float(ro15_init[12]), float(ro15_init[13]), float(ro15_init[14])) + mode12_stress_plot = gr.Plot(value=_fig, elem_id="mode12_stress_plot") + # Column 3+4: placeholders (keeps layout consistent) + with gr.Column(scale=1, elem_id="mode12_col3"): + gr.Markdown("") + with gr.Column(scale=1, elem_id="mode12_col4"): + gr.Markdown("") + + # For generation we still need a flat list of the 13 UI coefficients, in this order: + sliders = [g11_a, g11_b, g11_c, g11_lat_a, g11_lat_b, g22_a, g22_b, g22_c, g22_lat_a, g22_lat_b, g12_a, g12_b, g12_c] + + def _load_idx_into_sliders(idx: int): + ro15 = _load_test_ro15(DATA_DIR, int(idx)) + return _ro15_to_ui13(ro15), f"Loaded test index **{int(idx)}** into sliders." + + def _load_random_into_sliders(): + # pick a random valid index (deterministic enough for interactive usage) + npz_path = os.path.join(DATA_DIR, "test_data_ro.npz") + data = np.load(npz_path) + n = int(data["ramberg_osgood_params"].shape[0]) + idx = int(np.random.randint(0, max(n, 1))) + ro15 = np.asarray(data["ramberg_osgood_params"][idx], dtype=np.float32).reshape(-1) + return _ro15_to_ui13(ro15), f"Loaded random test index **{idx}** into sliders." + + # Wire test-set loaders + load_test_btn.click( + fn=lambda idx: (*_load_idx_into_sliders(idx)[0], _load_idx_into_sliders(idx)[1]), + inputs=[test_idx], + outputs=sliders + [test_status], + show_progress=False, + ) + rand_test_btn.click( + fn=lambda: (*_load_random_into_sliders()[0], _load_random_into_sliders()[1]), + inputs=[], + outputs=sliders + [test_status], + show_progress=False, + ) + + gr.Markdown("### Generate + simulate") + gen_btn = gr.Button("Generate") + gen_plot = gr.Plot(label="Condition + simulated curves (overlaid)") + gen_info = gr.Textbox(label="Generated parameters", lines=6) + gen_status = gr.Textbox(label="Run log", lines=8, value="Idle.", interactive=False) + + # Wire live updates + for s in (g11_a, g11_b, g11_c): + s.change(ui_preview_11_stress, inputs=[g11_a, g11_b, g11_c], outputs=[mode11_stress_plot], show_progress=False) + for s in (g11_lat_a, g11_lat_b): + s.change(ui_preview_11_lat, inputs=[g11_lat_a, g11_lat_b], outputs=[mode11_lat_plot], show_progress=False) + + for s in (g22_a, g22_b, g22_c): + s.change(ui_preview_22_stress, inputs=[g22_a, g22_b, g22_c], outputs=[mode22_stress_plot], show_progress=False) + for s in (g22_lat_a, g22_lat_b): + s.change(ui_preview_22_lat, inputs=[g22_lat_a, g22_lat_b], outputs=[mode22_lat_plot], show_progress=False) + + for s in (g12_a, g12_b, g12_c): + s.change(ui_preview_12_stress, inputs=[g12_a, g12_b, g12_c], outputs=[mode12_stress_plot], show_progress=False) + + # Generate + gen_btn.click( + ui_generate, + inputs=[n_simulations] + sliders, + outputs=[gen_plot, gen_info, gen_status], + ) + + return demo + + +if __name__ == "__main__": + build_app().launch(server_name="0.0.0.0", server_port=int(os.environ.get("PORT", "7860"))) + diff --git a/data_generation/hf_space_generation_ro/lam.py b/data_generation/hf_space_generation_ro/lam.py new file mode 100644 index 0000000000000000000000000000000000000000..99e76d4adf906d40f856b4f03e6ebc456b4f45c1 --- /dev/null +++ b/data_generation/hf_space_generation_ro/lam.py @@ -0,0 +1,707 @@ + + + + +# --------------------- python packages --------------------- + +# all these packages should be present in the system +import numpy as np +import matplotlib.pyplot as plt +from dataclasses import dataclass +from pathlib import Path +import warnings +from numpy.lib._iotools import ConversionWarning +from itertools import combinations_with_replacement +from math import comb + +# --------------------- dataset parameter grids --------------------- + +#MATERIAL_TYPES = ["CPP", "GPP", "CHDPE", "GHDPE"] # e.g. ["CPP", "GFPP", ...] +MATERIAL_TYPES = ["GHDPE", ] +VOL_FRACTIONS = ["0.0924", "0.2155", "0.3079", "0.4002", "0.4926"] # e.g. ["0.0924", "0.1500", ...] +INSTANCES = [1] # e.g. [1, 2, 3, 4] + + +# Number of plies in the *upper* half of the symmetric laminate +UPPER_LAYER_COUNTS = [5,6,7] # example: [1, 2, 3] + +# Candidate angles (in degrees) each upper-half ply can take +CANDIDATE_ANGLES = [10,20,35,40,65,82] + +# --------------------- input directory --------------------- + +# Folder that contains RVE input files(3*100)(!!!update the path accordingly) +CURVE_DIR = Path(r"RVE_Datasets") + + + +# --------------------- output directory --------------------- + +# Folder that contains the laminate output files(!!!update the path accordingly) +OUT_DIR_ALL = Path(r"Output_directory") + + +# --------------------- user-set Poisson ratios --------------------- +NU12 = 0.36 +NU13 = 0.36 +NU23 = 0.86 + +COND_MAX = 1e12 #maximum allowable condition number of the stiffness matrix + +# =============================================================== +@dataclass +class Curve1D: + eps: np.ndarray + sig: np.ndarray # Pa + + def __post_init__(self): + idx = np.argsort(self.eps) + self.eps = np.asarray(self.eps, float)[idx] + self.sig = np.asarray(self.sig, float)[idx] + + def stress(self, e): + ea = np.clip(abs(e), self.eps[0], self.eps[-1]) + sa = np.interp(ea, self.eps, self.sig) + return np.sign(e) * sa + + def tangent(self, e): + ea = np.clip(abs(e), self.eps[0], self.eps[-1]) + i = np.searchsorted(self.eps, ea) - 1 + i = np.clip(i, 0, len(self.eps)-2) + de = self.eps[i+1] - self.eps[i] + ds = self.sig[i+1] - self.sig[i] + return (ds/de) + +def read_instance_metadata(prefix: str): + """ + Read volume fraction and fiber centers from the 11-file for this instance. + Example prefix: 'CHDPE_0.0924_1' -> CHDPE_0.0924_1_11.txt + """ + meta_file = CURVE_DIR / f"{prefix}_11.txt" + vol_frac = None + centers_str = None + + with open(meta_file, "r") as f: + for line in f: + line = line.strip() + if line.startswith("volume fraction="): + # split at '=', take right-hand side, convert to float + vol_frac = float(line.split("=", 1)[1]) + elif line.startswith("fiber_centers_YZ="): + # take everything after '=' as a raw string + centers_str = line.split("=", 1)[1].strip() + + if vol_frac is None: + raise ValueError(f"volume fraction not found in {meta_file}") + if centers_str is None: + raise ValueError(f"fiber_centers_YZ not found in {meta_file}") + + + n_fibers = centers_str.count("(") + + return vol_frac, centers_str, n_fibers + + + + + +def load_curve_from_file(filename, strain_col=1, stress_col=2, skiprows=1, is_shear=False): + """ + Load a 2-col curve file. + If is_shear=True, strain column is assumed 'tensorial' and converted to engineering γ by *2.0*. + + """ + p = Path(filename) + if not p.exists(): + raise FileNotFoundError(f"Missing curve file: {p.resolve()}") + + + with warnings.catch_warnings(): + warnings.simplefilter("ignore", ConversionWarning) + arr = np.genfromtxt( + p, + dtype=float, + delimiter=None, + skip_header=skiprows, + invalid_raise=False # bad lines (like "volume fraction= ...") are skipped + ) + + + eps = arr[:, strain_col] + if is_shear: + eps = 2.0 * eps # tensorial -> engineering γ + sig = 1e6 * arr[:, stress_col] # MPa -> Pa + return Curve1D(eps, sig) + + +def load_ud_material_from_files(prefix: str) -> "PlyMaterial": + """ + Build a PlyMaterial from three curve files with a common prefix, e.g. + prefix='CPP_0.0924_1' → CPP_0.0924_1_11.txt, CPP_0.0924_1_22.txt, CPP_0.0924_1_12.txt + """ + # 11 curve: Strain_11, Stress_11, Strain_22, Strain_33 + c11 = load_curve_from_file( + CURVE_DIR / f"{prefix}_11.txt", + strain_col=0, # Strain_11 + stress_col=1, # Stress_11 + skiprows=1 + ) + + # 22 curve: Strain_22, Stress_22, Strain_11, Strain_33 + c22 = load_curve_from_file( + CURVE_DIR / f"{prefix}_22.txt", + strain_col=0, # Strain_22 + stress_col=1, # Stress_22 + skiprows=1 + ) + + # Reuse 22 curve for 33 + c33 = c22 + + # 12 shear curve: Strain_12, Stress_12 + c12 = load_curve_from_file( + CURVE_DIR / f"{prefix}_12.txt", + strain_col=0, # Strain_12 + stress_col=1, # Stress_12 + skiprows=1, + is_shear=True + ) + + # Reuse 12 curve for 13 and 23 + c13 = c12 + c23 = c12 + + return PlyMaterial( + E1_curve=c11, E2_curve=c22, E3_curve=c33, + G12_curve=c12, G13_curve=c13, G23_curve=c23, + nu12=NU12, nu13=NU13, nu23=NU23 + ) + + +# =============================================================== +# 3D orthotropic C' (Voigt 11,22,33,23,13,12) +# (engineering shear convention: C66=G12, etc.) +# =============================================================== +def orthotropic_C_prime(E1,E2,E3,G12,G13,G23, nu12,nu13,nu23): + V = (1.0 + - (E3/E2)*(nu23**2) + - (E3/E1)*(nu13**2) + - (E2/E1)*(nu12**2) + - 2*(E3/E1)*(nu12*nu13*nu23)) + + C11 = ((1.0 - (E3/E2)*nu23**2) * E1) / V + C22 = ((1.0 - (E3/E1)*nu13**2) * E2) / V + C33 = ((1.0 - (E2/E1)*nu12**2) * E3) / V + C12 = ((nu12 + (E3/E2)*nu13*nu23) * E2) / V + C13 = ((nu13 + nu12*nu23) * E3) / V + C23 = ((nu23 + (E2/E1)*nu12*nu13) * E3) / V + + C = np.zeros((6,6)) + C[0,0] = C11; C[1,1] = C22; C[2,2] = C33 + C[0,1] = C12; C[1,0] = C12 + C[0,2] = C13; C[2,0] = C13 + C[1,2] = C23; C[2,1] = C23 + C[3,3] = G23; C[4,4] = G13; C[5,5] = G12 + return C + +# =============================================================== +# Transformations (engineering shear) +# =============================================================== +def T_sigma(theta_deg): + th = np.radians(theta_deg); m, n = np.cos(th), np.sin(th) + return np.array([ + [ m*m, n*n, 0, 0, 0, 2*m*n], + [ n*n, m*m, 0, 0, 0, -2*m*n], + [ 0, 0, 1, 0, 0, 0], + [ 0, 0, 0, m,-n, 0], + [ 0, 0, 0, n, m, 0], + [-m*n, m*n, 0, 0, 0, m*m-n*n] + ], float) + +def T_eps(theta_deg): + th = np.radians(theta_deg); m, n = np.cos(th), np.sin(th) + return np.array([ + [ m*m, n*n, 0, 0, 0, m*n], + [ n*n, m*m, 0, 0, 0, -m*n], + [ 0, 0, 1, 0, 0, 0], + [ 0, 0, 0, m,-n, 0], + [ 0, 0, 0, n, m, 0], + [-2*m*n,2*m*n,0, 0, 0, m*m-n*n] + ], float) + + +def T(theta_deg): + th = np.radians(theta_deg); m, n = np.cos(th), np.sin(th) + return np.array([ + [ m*m, n*n, 0, 0, 0, 2*m*n], + [ n*n, m*m, 0, 0, 0, -2*m*n], + [ 0, 0, 1, 0, 0, 0], + [ 0, 0, 0, m,-n, 0], + [ 0, 0, 0, n, m, 0], + [-1*m*n,1*m*n,0, 0, 0, m*m-n*n] + ], float) + + +# =============================================================== +# Ply material & ply +# =============================================================== +@dataclass +class PlyMaterial: + E1_curve: Curve1D + E2_curve: Curve1D + E3_curve: Curve1D + G12_curve: Curve1D + G13_curve: Curve1D + G23_curve: Curve1D + nu12: float + nu13: float + nu23: float + + def tangents_from_local_strain(self, e_local): + e11,e22,e33,g23,g13,g12 = e_local + floor = -1e12 + E1 = max(self.E1_curve.tangent(e11), floor) + E2 = max(self.E2_curve.tangent(e22), floor) + E3 = max(self.E3_curve.tangent(e33), floor) + G12 = max(self.G12_curve.tangent(g12), floor) + G13 = max(self.G13_curve.tangent(g13), floor) + G23 = max(self.G23_curve.tangent(g23), floor) + return E1,E2,E3,G12,G13,G23 + + +@dataclass +class Ply: + theta_deg: float # initial/reference fibre angle + thickness: float + mat: PlyMaterial + e_prev: np.ndarray = None + s_prev: np.ndarray = None + theta_curr_deg: float = None # running (current) fibre angle + + def init_state(self): + self.e_prev = np.zeros(6) + self.s_prev = np.zeros(6) + self.theta_curr_deg = float(self.theta_deg) + + +class Laminate: + def __init__(self, plies, tol=1e-12): + self.plies = plies + for p in self.plies: + p.init_state() + t0 = self.plies[0].thickness + for i,p in enumerate(self.plies, 1): + if abs(p.thickness - t0) > tol: + raise ValueError(f"Equal-thickness assumption violated at ply {i}: {p.thickness} vs {t0}") + self.N = len(self.plies) + self.t = t0 + self.total_t = self.N * self.t + + # ---------- Incremental affine update using strain increments (engineering shear) ---------- + def update_fiber_angles_incremental(self, d_ex, d_ey, d_gxy): + """ + a_{n+1} = ΔF a_n / ||ΔF a_n|| with ΔF = [[1+Δex, Δgxy/2],[Δgxy/2, 1+Δey]] + Updates each ply's theta_curr_deg in-place. + """ + Fd = np.array([[1.0 + d_ex, 0.5*d_gxy], + [0.5*d_gxy, 1.0 + d_ey]], dtype=float) #valid for small strain increments + + for p in self.plies: + th = np.radians(p.theta_curr_deg) + a = np.array([np.cos(th), np.sin(th)]) + a_new = Fd @ a + nrm = np.linalg.norm(a_new) + if nrm > 1e-14: + a_new /= nrm + p.theta_curr_deg = np.degrees(np.arctan2(a_new[1], a_new[0])) + + # ---------- Build effective laminate C from PREVIOUS global strains ---------- + def effective_C_from_previous_strains(self, ex_prev, ey_prev, ezz_prev, g23_prev, g13_prev, gxy_prev): + """ + Thickness-average of per-ply global tangential stiffness matrices, + each built from tangents evaluated at the previous-step local strains. + """ + e_prev_global = np.array([ex_prev, ey_prev, ezz_prev, g23_prev, g13_prev, gxy_prev], float) + Csum = np.zeros((6,6), float) + for p in self.plies: + theta = p.theta_curr_deg + T_e = T_eps(theta) + T_e_inv = np.linalg.inv(T_e) + T_s = T_sigma(theta) + + e_local_prev = T_e @ e_prev_global + + + #print(f"theta={theta}") + + E1,E2,E3,G12,G13,G23 = p.mat.tangents_from_local_strain(e_local_prev) + Cprime = orthotropic_C_prime(E1,E2,E3,G12,G13,G23, p.mat.nu12, p.mat.nu13, p.mat.nu23) + + + + Tt=T(theta) + Cglob = np.linalg.inv(Tt) @ Cprime @ np.linalg.inv(Tt).T + + Csum += Cglob + return Csum / self.N + + +# =============================================================== +# Helpers for symmetric stacking from upper-half definition +# =============================================================== + +def build_full_symmetric_stack(upper_angles): + """ + Given a list of angles for the *upper* half of the laminate, + build the full symmetric stack with opposite angles in the lower half. + Example: [0, 45, -45] -> [0, 45, -45, +45, -45, 0] + """ + upper = list(upper_angles) + lower = [-a for a in reversed(upper)] + return upper + lower + +def _format_angle_for_label(a): + """ + Format a ply angle for use in filenames: + - integer degrees + - explicit sign (+ or -) + Examples: + 45.0 -> '+45' + -30.0 -> '-30' + 0.0 -> '+0' + """ + a_int = int(round(float(a))) + sign = "+" if a_int >= 0 else "-" + return f"{sign}{abs(a_int)}" + + + + + +def stack_label_from_upper(upper_angles): + """ + Return a human-readable description of the *upper-half* stacking sequence, + with comma separation, e.g. [0, 45, -45] -> '0, 45, -45'. + """ + parts = [] + for a in upper_angles: + # show integer degrees without .0 + if float(a).is_integer(): + parts.append(f"{int(a)}") + else: + parts.append(f"{a}") + return ", ".join(parts) + +# =============================================================== +# 5D uniaxial test driver (σy=τxy=σz=τyz=τxz=0), incremental: ds = Ceff_prev @ de +# =============================================================== + + + +def run_uniaxial_test_from_files_5d(prefix: str, stack_angles, mode="11"): + + # ---- Material from files ---- + + tply = 0.05 #dummy value, doesn't effect the result + + + + + # ---- Layup from full stacking sequence ---- + plies = [Ply(angle_deg, tply, mat) for angle_deg in stack_angles] + lam = Laminate(plies) + + + + + # ---- Choose loading mode and strain path ---- + if mode == "11": + main_index = 0 # ε11 + eps_max = 0.10 + elif mode == "22": + main_index = 1 # ε22 + eps_max = 0.10 + elif mode == "12": + main_index = 5 # γ12 (engineering shear internally) + eps_max = 0.20 # ⇒ tensorial E12 = γ12/2 goes to 0.10 + else: + raise ValueError("mode must be '11', '22' or '12'") + + main_steps = np.linspace(0.0, eps_max, 1500) #1500 strain increments are chosen for a converged result + + + + + # ---- Histories (totals) ---- + ex_hist, sx_hist = [], [] # main component strain & stress + ey_hist, gxy_hist = [], [] + ezz_hist, g23_hist, g13_hist = [], [], [] + e11_hist = [] # always store total ε11 + + + + # ---- Previous-step totals ---- + ex_prev = 0.0 + ey_prev = 0.0 + gxy_prev = 0.0 + ezz_prev = 0.0 + g23_prev = 0.0 + g13_prev = 0.0 + s1_prev = 0.0 + + for i in range(1, len(main_steps)): + main_target = main_steps[i] + + # Previous value of the driven strain component + if main_index == 0: + main_prev = ex_prev + elif main_index == 1: + main_prev = ey_prev + else: # main_index == 5 (γ12) + main_prev = gxy_prev + + # Increment in prescribed "main" strain (ε11 / ε22 / γ12) + dmain = main_target - main_prev + + # Tangent Ceff at previous state from laminate + Ceff_prev = lam.effective_C_from_previous_strains( + ex_prev, ey_prev, ezz_prev, g23_prev, g13_prev, gxy_prev + ) + + # ---- Safeguard: check conditioning of Ceff_prev ---- + cond = np.linalg.cond(Ceff_prev) + if not np.isfinite(cond) or cond > COND_MAX: + raise np.linalg.LinAlgError( + f"Effective C is ill-conditioned (cond={cond:.3e}) at step {i}" + ) + + # Compute ONLY the column of the compliance needed via solve, + # instead of inverting the full 6x6 matrix. + e_j = np.zeros(6) + e_j[main_index] = 1.0 + + try: + # S_col satisfies: Ceff_prev @ S_col = e_j + S_col = np.linalg.solve(Ceff_prev, e_j) + except np.linalg.LinAlgError as err: + raise np.linalg.LinAlgError( + f"Failed to solve for compliance column at step {i}: {err}" + ) + + Sjj = S_col[main_index] + if abs(Sjj) < 1e-20: + raise ZeroDivisionError( + f"Sjj is zero or too small at step {i} (Sjj={Sjj:.3e})." + ) + + + ds1 = dmain / Sjj + de_vec = S_col * ds1 + # enforce exactly the prescribed main increment + de_vec[main_index] = dmain + + + + + + + de1, de2, de3, de4, de5, de6 = de_vec + de4 = 0.0 + de5 = 0.0 + + # (4) Update totals + s1 = s1_prev + ds1 + ex = ex_prev + de1 + ey = ey_prev + de2 + ezz = ezz_prev + de3 + g23 = g23_prev + de4 + g13 = g13_prev + de5 + gxy = gxy_prev + de6 + + # (5) Update fibre angles from INCREMENTS (Δex, Δey, Δγxy) + lam.update_fiber_angles_incremental(de1, de2, de6) + + # (6) Commit for next step + ex_prev, ey_prev, ezz_prev = ex, ey, ezz + g23_prev, g13_prev, gxy_prev = g23, g13, gxy + s1_prev = s1 + + + + # (7) Save totals for output + # ex_hist stores the *driven* component: ε11, ε22, or *tensorial* E12 = γ12/2 + if main_index == 0: + main_strain = ex + elif main_index == 1: + main_strain = ey + else: # shear + main_strain = 0.5 * gxy # convert engineering γ12 -> tensorial E12 + + + ex_hist.append(main_strain) + sx_hist.append(s1) + ey_hist.append(ey); gxy_hist.append(gxy) + ezz_hist.append(ezz); g23_hist.append(g23); g13_hist.append(g13) + e11_hist.append(ex) # store true ε11 regardless of mode + + + + + angles_str = ", ".join(f"{p.theta_curr_deg:.2f}°" for p in lam.plies) + + + + return (np.array(ex_hist), np.array(sx_hist), + np.array(ey_hist), np.array(gxy_hist), + np.array(ezz_hist), np.array(g23_hist), np.array(g13_hist), + np.array(e11_hist)) + + + + +if __name__ == "__main__": + + # ---- estimate total number of laminate output files ---- + n_mat = len(MATERIAL_TYPES) + n_vf = len(VOL_FRACTIONS) + n_inst = len(INSTANCES) + n_ang = len(CANDIDATE_ANGLES) + + # combinations-with-replacement count for each upper-half ply count + n_stacks_per_instance = sum( + comb(n_ang + n_layers - 1, n_layers) for n_layers in UPPER_LAYER_COUNTS + ) + + expected_files = n_mat * n_vf * n_inst * n_stacks_per_instance + print(f"Expected number of laminate output files: {expected_files}") + + file_count = 0 + for mat_type in MATERIAL_TYPES: + for vf in VOL_FRACTIONS: + vf_str = vf + + for inst in INSTANCES: + prefix = f"{mat_type}_{vf_str}_{inst}" + vf_meta, centers_meta, n_fibers = read_instance_metadata(prefix) + mat = load_ud_material_from_files(prefix) + + # ---- loop over upper-half stacking sequences ---- + for n_layers in UPPER_LAYER_COUNTS: + for upper_angles in combinations_with_replacement(CANDIDATE_ANGLES, n_layers): + upper_angles = list(upper_angles) + full_angles = build_full_symmetric_stack(upper_angles) + + # human-readable label for this stacking (upper half only) + stack_label_human = stack_label_from_upper(upper_angles) # e.g. "0, 30, -45" + stack_label_file = "_".join(s.strip().replace("+", "p").replace("-", "m") + for s in stack_label_human.split(",")) + + combined_blocks = {} + + + for mode in ("11", "22", "12"): + + + try: + # main strain, stress, ε22, γ12, ε33, γ23, γ13, ε11 + ex, sx, ey, gxy, ezz, g23, g13, e11 = run_uniaxial_test_from_files_5d( + prefix, + full_angles, + mode=mode, + ) + except Exception as e: + print(f"Skipping {prefix}, stack={stack_label_human} due to error: {e}") + continue + + + # 10 equally spaced output points in the driven (main) strain + N = 10 + x_out = np.linspace(ex[0], ex[-1], N) + sx_out_MPa = np.interp(x_out, ex, sx/1e6) + + # Pick Voigt-notation headers and lateral strain based on mode + if mode == "11": + strain_label = "eps_11" + stress_label = "sig_11" + lateral_label = "eps_22" + lateral_series = ey # ε22 is lateral in 11-test + elif mode == "22": + strain_label = "eps_22" + stress_label = "sig_22" + lateral_label = "eps_11" + lateral_series = e11 # ε11 is lateral in 22-test + elif mode == "12": + strain_label = "eps_12" + stress_label = "sig_12" + lateral_label = None + lateral_series = None + else: + raise ValueError(f"Unknown mode {mode}") + + + + # Build lateral output (if any) on the same main-strain grid + if lateral_series is not None: + lateral_out = np.interp(x_out, ex, lateral_series) + else: + lateral_out = None + + # Build header line and numeric rows (strings) for this mode + if lateral_label is None: + # shear case (12): two columns + header_line = f"{strain_label:<8} {stress_label:<8}" + else: + # tensile 11 or 22: three columns + header_line = f"{strain_label:<8} {stress_label:<8} {lateral_label:<8}" + + rows = [] + if lateral_label is None: + # two columns: eps, sig + for eps_val, sig_val in zip(x_out, sx_out_MPa): + line = f"{eps_val:8.6f} {sig_val:8.3f}" + rows.append(line) + else: + # three columns: eps, sig, lateral_eps + for eps_val, sig_val, lat_val in zip(x_out, sx_out_MPa, lateral_out): + line = f"{eps_val:8.6f} {sig_val:8.3f} {lat_val:8.6f}" + rows.append(line) + + # store this block for the combined file + combined_blocks[mode] = (header_line, rows) + + + # ---- write combined file: 11, then 22, then 12, then common metadata ---- + OUT_DIR_ALL.mkdir(parents=True, exist_ok=True) + combined_file = OUT_DIR_ALL / ( + f"{mat_type}_{vf_str}_{inst}_{stack_label_file}.txt" + ) + + with open(combined_file, "w") as fc: + # write 11, then 22, then 12 in order + for m in ("11", "22", "12"): + header_line, rows = combined_blocks[m] + fc.write(header_line + "\n") + for line in rows: + fc.write(line + "\n") + fc.write("\n") + + # one common metadata block at the end + fc.write(f"volume fraction= {vf_meta:.6f}\n") + fc.write(f"material type= {mat_type}\n") + fc.write("loading modes= 11, 22, 12\n") + fc.write(f"stacking sequence= {stack_label_human}\n") + fc.write(f"instance= {inst}\n") + fc.write(f"number of fibers= {n_fibers}\n") + fc.write(f"fiber_centers_YZ={centers_meta}\n") + + + file_count += 1 + if file_count % 500 == 0 or file_count == expected_files: + print(f"Generated {file_count}/{expected_files} files") + + + + + + + diff --git a/data_generation/hf_space_generation_ro/models.py b/data_generation/hf_space_generation_ro/models.py new file mode 100644 index 0000000000000000000000000000000000000000..71f4bb007528b5ef25a753c00ede456e9111ea46 --- /dev/null +++ b/data_generation/hf_space_generation_ro/models.py @@ -0,0 +1,17 @@ +""" +Compatibility shim for torch checkpoint loading. + +Some training checkpoints were saved with objects pickled from a top-level module +named `models` (e.g. `models.ModelConfig`, `models.MaterialHybridDenoiser`). + +In the Hugging Face Space we keep the implementation in `space_lib/models.py`, +but we also provide this top-level module so `torch.load()` can unpickle. +""" + +from space_lib.models import ( # noqa: F401 + ModelConfig, + MaterialHybridDenoiser, + SelfCrossAttnBlock, + timestep_embedding, +) + diff --git a/data_generation/hf_space_generation_ro/requirements.txt b/data_generation/hf_space_generation_ro/requirements.txt new file mode 100644 index 0000000000000000000000000000000000000000..13582cd659cec7c5af5d8d2ab5d6ad3e96840d5c --- /dev/null +++ b/data_generation/hf_space_generation_ro/requirements.txt @@ -0,0 +1,6 @@ +gradio==4.44.1 +numpy==1.26.4 +matplotlib==3.8.4 +torch==2.2.2 +tqdm==4.66.4 +pyyaml==6.0.2 diff --git a/data_generation/hf_space_generation_ro/space_lib/__init__.py b/data_generation/hf_space_generation_ro/space_lib/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..32d7bd8caf86aae734afa4fbe9cb50fb725a9640 --- /dev/null +++ b/data_generation/hf_space_generation_ro/space_lib/__init__.py @@ -0,0 +1,2 @@ +"""Space-local library for RO-conditioned hybrid diffusion material generation.""" + diff --git a/data_generation/hf_space_generation_ro/space_lib/infer.py b/data_generation/hf_space_generation_ro/space_lib/infer.py new file mode 100644 index 0000000000000000000000000000000000000000..e6a8d8bdb133e9fe6683d14168a8c8e207d2167c --- /dev/null +++ b/data_generation/hf_space_generation_ro/space_lib/infer.py @@ -0,0 +1,262 @@ +from __future__ import annotations + +import json +import os +from dataclasses import dataclass +from typing import Dict, Optional, Tuple + +import numpy as np +import pickle +import torch +import torch.nn.functional as F + +from .models import MaterialHybridDenoiser, ModelConfig + + +VF_CATEGORIES = [0.0924, 0.2155, 0.3079, 0.4002, 0.4926] +MATERIAL_NAMES = ["CPP", "CHDPE", "GPP", "GHDPE"] + + +@dataclass(frozen=True) +class DiscreteMaskDiffusion: + T: int + + +class GaussianDiffusion: + def __init__(self, T: int, beta_start: float = 1e-4, beta_end: float = 2e-2, device: str = "cpu"): + self.T = int(T) + betas = torch.linspace(beta_start, beta_end, self.T, device=device) + alphas = 1.0 - betas + alpha_bar = torch.cumprod(alphas, dim=0) + self.betas = betas + self.alphas = alphas + self.sqrt_alpha_bar = torch.sqrt(alpha_bar) + self.sqrt_one_minus_alpha_bar = torch.sqrt(1.0 - alpha_bar) + self.sqrt_recip_alphas = torch.sqrt(1.0 / alphas) + + @torch.no_grad() + def p_sample_step(self, x_t: torch.Tensor, t: torch.Tensor, eps_pred: torch.Tensor) -> torch.Tensor: + beta_t = self.betas[t].view(-1, 1, 1) + sqrt_recip_alpha_t = self.sqrt_recip_alphas[t].view(-1, 1, 1) + sqrt_one_minus_a_bar = self.sqrt_one_minus_alpha_bar[t].view(-1, 1, 1) + mu = sqrt_recip_alpha_t * (x_t - (beta_t / sqrt_one_minus_a_bar.clamp_min(1e-8)) * eps_pred) + noise = torch.randn_like(x_t) + nonzero_mask = (t != 0).float().view(-1, 1, 1) + return mu + nonzero_mask * torch.sqrt(beta_t) * noise + + +@torch.no_grad() +def sample( + model: MaterialHybridDenoiser, + disc_diff_mat: DiscreteMaskDiffusion, + disc_diff_vf_category: DiscreteMaskDiffusion, + disc_diff_layer: DiscreteMaskDiffusion, + disc_diff_angle: Optional[DiscreteMaskDiffusion] = None, + cont_diff: Optional[GaussianDiffusion] = None, + cond: torch.Tensor = None, + mask_ids: Dict[str, int] = None, + device: str = "cpu", + remask_prob: float = 0.1, + use_discrete_angles: bool = True, +) -> Dict[str, torch.Tensor]: + model.eval() + B = cond.shape[0] + L = model.cfg.n_max_layer + + x_material_t = torch.full((B,), mask_ids["material"], dtype=torch.long, device=device) + x_vf_category_t = torch.full((B,), mask_ids["vf_category"], dtype=torch.long, device=device) + x_layer_t = torch.full((B, L), mask_ids["layer"], dtype=torch.long, device=device) + + if use_discrete_angles: + if disc_diff_angle is None: + raise ValueError("disc_diff_angle is required when use_discrete_angles=True") + if "angle" not in mask_ids: + raise ValueError("mask_ids must include 'angle' when use_discrete_angles=True") + x_angle_t = torch.full((B, L), mask_ids["angle"], dtype=torch.long, device=device) + T = disc_diff_angle.T + else: + if cont_diff is None: + raise ValueError("cont_diff is required when use_discrete_angles=False") + x_angle_t = torch.randn(B, L, 1, device=device) + T = cont_diff.T + + for t_int in reversed(range(T)): + t = torch.full((B,), t_int, dtype=torch.long, device=device) + outputs = model(x_material_t, x_vf_category_t, x_layer_t, x_angle_t, cond, t) + + probs_mat = F.softmax(outputs["material_logits"], dim=-1) + remask_mat = (x_material_t == mask_ids["material"]) | (torch.rand(B, device=device) < remask_prob) + if remask_mat.any(): + new_material = torch.multinomial(probs_mat[remask_mat], 1).squeeze(-1) + x_material_t = x_material_t.clone() + x_material_t[remask_mat] = new_material + + probs_vf = F.softmax(outputs["vf_category_logits"], dim=-1) + remask_vf = (x_vf_category_t == mask_ids["vf_category"]) | (torch.rand(B, device=device) < remask_prob) + if remask_vf.any(): + new_vf = torch.multinomial(probs_vf[remask_vf], 1).squeeze(-1) + x_vf_category_t = x_vf_category_t.clone() + x_vf_category_t[remask_vf] = new_vf + + if use_discrete_angles: + probs_angle = F.softmax(outputs["angle_logits"], dim=-1) # (B,L,K+1) + remask_angle = (torch.rand(B, L, device=device) < remask_prob) + masked = (x_angle_t == mask_ids["angle"]) | remask_angle + if masked.any(): + flat_probs = probs_angle.view(-1, probs_angle.size(-1))[masked.view(-1)] + new_angle = torch.multinomial(flat_probs, 1).squeeze(-1) + x_angle_t = x_angle_t.clone() + x_angle_t[masked] = new_angle + + dead_category = probs_angle.size(-1) - 1 + x_layer_t = (x_angle_t != dead_category).long() + else: + probs_layer = F.softmax(outputs["layer_logits"], dim=-1) # (B,L,2) + remask_layer = (torch.rand(B, L, device=device) < remask_prob) + masked = (x_layer_t == mask_ids["layer"]) | remask_layer + if masked.any(): + flat_probs = probs_layer.view(-1, 2)[masked.view(-1)] + new_layer = torch.multinomial(flat_probs, 1).squeeze(-1) + x_layer_t = x_layer_t.clone() + x_layer_t[masked] = new_layer + + angle_pred = outputs["angle"] + sqrt_alpha_bar_t = cont_diff.sqrt_alpha_bar[t].view(-1, 1, 1) + sqrt_one_minus_alpha_bar_t = cont_diff.sqrt_one_minus_alpha_bar[t].view(-1, 1, 1) + eps_pred = (x_angle_t - sqrt_alpha_bar_t * angle_pred) / sqrt_one_minus_alpha_bar_t.clamp_min(1e-8) + x_angle_t = cont_diff.p_sample_step(x_angle_t, t, eps_pred) + + return {"material_t": x_material_t, "vf_category_t": x_vf_category_t, "layer_t": x_layer_t, "angle_t": x_angle_t} + + +@dataclass +class ModelBundle: + model: MaterialHybridDenoiser + disc_diff_mat: DiscreteMaskDiffusion + disc_diff_vf_category: DiscreteMaskDiffusion + disc_diff_layer: DiscreteMaskDiffusion + disc_diff_angle: Optional[DiscreteMaskDiffusion] + cont_diff: Optional[GaussianDiffusion] + mask_ids: Dict[str, int] + use_discrete_angles: bool + T: int + beta_start: float + beta_end: float + angle_resolution: float + + +def _load_state_dict_safely(obj) -> Dict[str, torch.Tensor]: + if isinstance(obj, dict): + for k in ("model_state_dict", "state_dict", "model"): + if k in obj and isinstance(obj[k], dict): + return obj[k] + # If it already looks like a state_dict + if all(isinstance(v, torch.Tensor) for v in obj.values()): + return obj # type: ignore[return-value] + raise ValueError("Unrecognized checkpoint format (expected dict with model state_dict)") + + +def load_model_bundle(checkpoint_dir: str, device: Optional[str] = None, angle_resolution: float = 1.0) -> ModelBundle: + cfg_path = os.path.join(checkpoint_dir, "training_config.json") + with open(cfg_path, "r") as f: + train_cfg = json.load(f) + + use_discrete_angles = bool(train_cfg.get("use_discrete_angles", True)) + model_cfg = ModelConfig(**train_cfg["model_config"]) + + if device is None: + device = "cuda" if torch.cuda.is_available() else "cpu" + + mask_ids = dict(train_cfg.get("mask_ids", {})) + # Angle category count only matters for discrete mode. We default to 7 if not present. + n_angle_categories = int(train_cfg.get("n_angle_categories", 7)) + # IMPORTANT: match training model signature exactly (cfg, mask_ids, use_discrete_angles, n_angle_categories) + model = MaterialHybridDenoiser( + model_cfg, + mask_ids=mask_ids, + use_discrete_angles=use_discrete_angles, + n_angle_categories=n_angle_categories, + ).to(device) + + # Load checkpoint (prefer best_model.pt) + ckpt_path = os.path.join(checkpoint_dir, "best_model.pt") + if not os.path.exists(ckpt_path): + ckpt_path = os.path.join(checkpoint_dir, "checkpoint_epoch_1.pt") + # Some checkpoints may contain pickled objects referencing the original training module + # layout (e.g. top-level `models`). We ship a compatibility `models.py` in the Space. + # Also prefer weights-only loading when supported to avoid unpickling non-tensor objects. + try: + ckpt = torch.load(ckpt_path, map_location=device, weights_only=True) # type: ignore[call-arg] + except TypeError: + ckpt = torch.load(ckpt_path, map_location=device) + except pickle.UnpicklingError: + # PyTorch raised because weights-only loader encountered non-tensor objects + # (e.g. models.ModelConfig). We trust this checkpoint (bundled by us), so fall back. + ckpt = torch.load(ckpt_path, map_location=device, weights_only=False) # type: ignore[call-arg] + state_dict = _load_state_dict_safely(ckpt) + # Enforce exact match with checkpoint; otherwise generation can look arbitrarily bad. + model.load_state_dict(state_dict, strict=True) + + T = int(train_cfg.get("T", 100)) + beta_start = float(train_cfg.get("beta_start", 1e-4)) + beta_end = float(train_cfg.get("beta_end", 2e-2)) + + disc = DiscreteMaskDiffusion(T=T) + disc_angle = DiscreteMaskDiffusion(T=T) if use_discrete_angles else None + cont = GaussianDiffusion(T=T, beta_start=beta_start, beta_end=beta_end, device=device) if not use_discrete_angles else None + + # Some training configs omit angle mask when continuous; for discrete, define a reasonable default if missing. + if use_discrete_angles and "angle" not in mask_ids: + # categories: n_angle_categories + dead (1) -> +1 ; then mask id is last index + mask_ids["angle"] = n_angle_categories + 1 + + return ModelBundle( + model=model, + disc_diff_mat=disc, + disc_diff_vf_category=disc, + disc_diff_layer=disc, + disc_diff_angle=disc_angle, + cont_diff=cont, + mask_ids=mask_ids, + use_discrete_angles=use_discrete_angles, + T=T, + beta_start=beta_start, + beta_end=beta_end, + angle_resolution=float(angle_resolution), + ) + + +def vf_category_to_volume_fraction(vf_category: int) -> float: + vf_category = int(vf_category) + if 0 <= vf_category < len(VF_CATEGORIES): + return float(VF_CATEGORIES[vf_category]) + return float(VF_CATEGORIES[0]) + + +def postprocess_sample( + out: Dict[str, torch.Tensor], + use_discrete_angles: bool, + angle_categories_deg: Optional[np.ndarray], +) -> Tuple[str, float, list[float]]: + mat_idx = int(out["material_t"].item()) + vf_idx = int(out["vf_category_t"].item()) + mat = MATERIAL_NAMES[mat_idx] if 0 <= mat_idx < len(MATERIAL_NAMES) else f"MAT{mat_idx}" + vf = vf_category_to_volume_fraction(vf_idx) + + layer = out["layer_t"].detach().cpu().numpy()[0] + angle = out["angle_t"].detach().cpu().numpy()[0] + + if use_discrete_angles: + if angle_categories_deg is None: + raise ValueError("angle_categories_deg is required for discrete angles") + dead_category = int(len(angle_categories_deg)) + alive_mask = angle != dead_category + angle_cats = angle[alive_mask].astype(int) + angles_deg = [float(angle_categories_deg[c]) for c in angle_cats] + else: + alive_mask = layer == 1 + vals = angle[alive_mask, 0] if angle.ndim > 1 else angle[alive_mask] + angles_deg = np.rad2deg(vals).astype(np.float32).tolist() + + return mat, vf, sorted([float(a) for a in angles_deg]) + diff --git a/data_generation/hf_space_generation_ro/space_lib/metadata.py b/data_generation/hf_space_generation_ro/space_lib/metadata.py new file mode 100644 index 0000000000000000000000000000000000000000..7daf910fc43fee1aac63e1f23b61aba46ec3c226 --- /dev/null +++ b/data_generation/hf_space_generation_ro/space_lib/metadata.py @@ -0,0 +1,127 @@ +from __future__ import annotations + +import json +import os +from dataclasses import dataclass +from typing import Any, Dict, Tuple + +import numpy as np + + +RO_DROP_FLAT_IDXS = (5, 11) # padded zeros in flattened [5,3] + + +@dataclass(frozen=True) +class ROMetadata: + raw: Dict[str, Any] + ro_min_full: np.ndarray # (15,) + ro_max_full: np.ndarray # (15,) + ro_mean_full: np.ndarray | None # (15,) or None + ro_std_full: np.ndarray | None # (15,) or None + eps_11_scale: float + eps_22_scale: float + eps_12_scale: float + + @property + def ro_min_13(self) -> np.ndarray: + keep = _keep_mask_15() + return self.ro_min_full[keep] + + @property + def ro_max_13(self) -> np.ndarray: + keep = _keep_mask_15() + return self.ro_max_full[keep] + + @property + def ro_mean_13(self) -> np.ndarray | None: + if self.ro_mean_full is None: + return None + keep = _keep_mask_15() + return self.ro_mean_full[keep] + + @property + def ro_std_13(self) -> np.ndarray | None: + if self.ro_std_full is None: + return None + keep = _keep_mask_15() + return self.ro_std_full[keep] + + +def _keep_mask_15() -> np.ndarray: + keep = np.ones(15, dtype=bool) + keep[list(RO_DROP_FLAT_IDXS)] = False + return keep + + +def load_metadata_ro(data_dir: str) -> ROMetadata: + path = os.path.join(data_dir, "metadata_ro.json") + with open(path, "r") as f: + raw = json.load(f) + + ro_min_full = np.asarray(raw["ramberg_osgood_param_min"], dtype=np.float32) + ro_max_full = np.asarray(raw["ramberg_osgood_param_max"], dtype=np.float32) + ro_mean_full = raw.get("ramberg_osgood_param_mean", None) + ro_std_full = raw.get("ramberg_osgood_param_std", None) + + ro_mean_arr = np.asarray(ro_mean_full, dtype=np.float32) if ro_mean_full is not None else None + ro_std_arr = np.asarray(ro_std_full, dtype=np.float32) if ro_std_full is not None else None + + return ROMetadata( + raw=raw, + ro_min_full=ro_min_full, + ro_max_full=ro_max_full, + ro_mean_full=ro_mean_arr, + ro_std_full=ro_std_arr, + eps_11_scale=float(raw.get("eps_11_scale", 0.1)), + eps_22_scale=float(raw.get("eps_22_scale", 0.1)), + eps_12_scale=float(raw.get("eps_12_scale", 0.1)), + ) + + +def ro15_from_groups(groups_5x3: np.ndarray) -> np.ndarray: + arr = np.asarray(groups_5x3, dtype=np.float32) + if arr.shape != (5, 3): + raise ValueError(f"Expected shape (5,3), got {arr.shape}") + return arr.flatten() # (15,) + + +def ro13_from_ro15(ro15: np.ndarray) -> np.ndarray: + ro15 = np.asarray(ro15, dtype=np.float32).flatten() + if ro15.size != 15: + raise ValueError(f"Expected 15 values, got {ro15.size}") + keep = _keep_mask_15() + return ro15[keep] # (13,) + + +def normalize_ro13(ro13_raw: np.ndarray, meta: ROMetadata, method: str) -> np.ndarray: + x = np.asarray(ro13_raw, dtype=np.float32).flatten() + if x.size != 13: + raise ValueError(f"Expected 13 values, got {x.size}") + + method = (method or "minmax").lower() + if method == "minmax": + mn = meta.ro_min_13 + mx = meta.ro_max_13 + rng = mx - mn + rng = np.where(rng == 0, 1.0, rng) + return ((x - mn) / rng).astype(np.float32) + if method == "zscore": + if meta.ro_mean_13 is None or meta.ro_std_13 is None: + raise ValueError("metadata_ro.json missing ramberg_osgood_param_mean/std for zscore") + mu = meta.ro_mean_13 + sd = np.where(meta.ro_std_13 == 0, 1.0, meta.ro_std_13) + return ((x - mu) / sd).astype(np.float32) + + raise ValueError(f"Unknown normalization method: {method}") + + +def ro_groups_from_ro15(ro15: np.ndarray) -> np.ndarray: + ro15 = np.asarray(ro15, dtype=np.float32).flatten() + if ro15.size != 15: + raise ValueError(f"Expected 15 values, got {ro15.size}") + return ro15.reshape(5, 3) + + +def ro15_minmax(meta: ROMetadata) -> Tuple[np.ndarray, np.ndarray]: + return meta.ro_min_full.copy(), meta.ro_max_full.copy() + diff --git a/data_generation/hf_space_generation_ro/space_lib/models.py b/data_generation/hf_space_generation_ro/space_lib/models.py new file mode 100644 index 0000000000000000000000000000000000000000..3f86a9958c059953be84f7a64b6eedf8db18bca9 --- /dev/null +++ b/data_generation/hf_space_generation_ro/space_lib/models.py @@ -0,0 +1,238 @@ +import torch +import torch.nn as nn +from typing import Dict, Tuple +from dataclasses import dataclass +import math + + +# ========================= +# Config +# ========================= + +@dataclass +class ModelConfig: + # problem sizes + n_conditions: int = 8 + n_materials: int = 10 + n_vf_categories: int = 5 # Volume fraction categories: 0.0924, 0.2155, 0.3079, 0.4002, 0.4926 + n_max_layer: int = 24 + + # model architecture + d_model: int = 256 + n_heads: int = 4 + n_layers: int = 6 + dropout: float = 0.0 + + # angle is in radians, limited to (-pi/2, pi/2) + + +# ========================= +# Model +# ========================= + +def timestep_embedding(t: torch.Tensor, dim: int) -> torch.Tensor: + """ + Sinusoidal timestep embedding. t: (B,) + """ + half = dim // 2 + freqs = torch.exp(-math.log(10000) * torch.arange(0, half, device=t.device) / half) + args = t.float().unsqueeze(1) * freqs.unsqueeze(0) + emb = torch.cat([torch.cos(args), torch.sin(args)], dim=1) + if dim % 2 == 1: + emb = torch.cat([emb, torch.zeros_like(emb[:, :1])], dim=1) + return emb # (B, dim) + + +class SelfCrossAttnBlock(nn.Module): + def __init__(self, d_model, n_heads, dropout=0.0): + super().__init__() + self.self_attn = nn.MultiheadAttention( + d_model, n_heads, dropout=dropout, batch_first=True + ) + self.cross_attn = nn.MultiheadAttention( + d_model, n_heads, dropout=dropout, batch_first=True + ) + self.ff = nn.Sequential( + nn.Linear(d_model, 4 * d_model), + nn.SiLU(), + nn.Linear(4 * d_model, d_model), + ) + + self.ln1 = nn.LayerNorm(d_model) + self.ln2 = nn.LayerNorm(d_model) + self.ln3 = nn.LayerNorm(d_model) + + def forward(self, x, cond_tokens, key_padding_mask=None): + """ + x: (B, N, d) ← material + nfiber + angle tokens + cond_tokens:(B, M, d) ← condition tokens + key_padding_mask: (B, N) optional padding mask (True = mask out, False = keep) + """ + # self-attention (within tokens) + x = self.ln1(x + self.self_attn(x, x, x, key_padding_mask=key_padding_mask)[0]) + + # cross-attention (tokens attend to conditions) + x = self.ln2(x + self.cross_attn(x, cond_tokens, cond_tokens)[0]) + + # feed-forward + x = self.ln3(x + self.ff(x)) + return x + + +class MaterialHybridDenoiser(nn.Module): + """ + Inputs: + material_t: (B,) in [0..n_materials-1] or MASK + vf_category_t: (B,) in [0..4] volume fraction category or MASK + layer_t: (B,L) in {0,1} or MASK + Note: When use_discrete_angles=True, layer_t is redundant (derived from angle_t, + where angle_t==n_angle_categories means dead layer). The model ignores layer_emb + in this case and only uses angle_emb. + angle_t: (B,L) discrete category indices [0..n_angle_categories-1] or MASK (if use_discrete_angles) + OR (B,L,1) continuous (if not use_discrete_angles) + When discrete: category n_angle_categories = dead layer, n_angle_categories+1 = MASK + cond: (B,C) continuous + t: (B,) timestep + + Outputs: + material logits: (B, n_materials) + vf_category_logits: (B, 5) # 5 volume fraction categories + layer logits: (B,L,2) # alive/dead (only if not use_discrete_angles) + angle_logits: (B,L,n_angle_categories+1) # discrete angle categories + dead (if use_discrete_angles) + OR angle: (B,L,1) # angle in radians, range (0, pi/2) (if not use_discrete_angles) + """ + def __init__(self, cfg: ModelConfig, mask_ids: Dict[str, int], use_discrete_angles: bool = True, n_angle_categories: int = 7): + super().__init__() + self.cfg = cfg + self.L = cfg.n_max_layer + d = cfg.d_model + self.mask_ids = mask_ids + self.use_discrete_angles = use_discrete_angles + self.n_angle_categories = n_angle_categories # 7 categories: 0, 15, 30, 45, 60, 75, 90 degrees + + # +1 to include mask token for material + self.material_emb = nn.Embedding(cfg.n_materials + 1, d) + # vf_category: 5 categories (0-4) plus mask; we allocate 6 + self.vf_category_emb = nn.Embedding(cfg.n_vf_categories + 1, d) + + if use_discrete_angles: + # Angle categories: 0..n_angle_categories-1 + # Category n_angle_categories: dead layer + # Category n_angle_categories+1: mask token + self.angle_emb = nn.Embedding(n_angle_categories + 2, d) + self.layer_emb = None # Not needed when using discrete angles + else: + # layer token: {MASK, 0, 1} => 3 (only needed for continuous angles) + self.layer_emb = nn.Embedding(3, d) + self.angle_in = nn.Linear(1, d) + + # Condition projection (TRAINED). + # Input cond can be either: + # - (B, C): raw condition vector (preferred; gets projected here) + # - (B, C, d): already-projected condition tokens (backward-compatible) + self.cond_proj = nn.ModuleList([ + nn.Linear(1, d) for _ in range(cfg.n_conditions) + ]) + + self.blocks = nn.ModuleList([ + SelfCrossAttnBlock(d, cfg.n_heads, cfg.dropout) + for _ in range(cfg.n_layers) + ]) + + # Positional embeddings for entire sequence: material (pos 0) + vf_category (pos 1) + layers (pos 2..) + self.pos_emb = nn.Embedding(2 + cfg.n_max_layer, d) + + self.t_proj = nn.Linear(d, d) + + enc_layer = nn.TransformerEncoderLayer( + d_model=d, + nhead=cfg.n_heads, + dropout=cfg.dropout, + batch_first=True, + ) + self.encoder = nn.TransformerEncoder(enc_layer, num_layers=cfg.n_layers) + self.ln = nn.LayerNorm(d) + + self.material_head = nn.Linear(d, cfg.n_materials) + self.vf_category_head = nn.Linear(d, cfg.n_vf_categories) # 5 volume fraction categories + if use_discrete_angles: + self.angle_head = nn.Linear(d, n_angle_categories + 1) # angles + dead + self.layer_head = None + else: + self.layer_head = nn.Linear(d, 2) # alive/dead for continuous mode + self.angle_head = nn.Linear(d, 1) + + def forward(self, material_t, vf_category_t, layer_t, angle_t, cond, t): + B, L = layer_t.shape + assert L == self.L + + # Project conditions if provided as raw scalars (B, C) + if cond.dim() == 2: + cond_list = [] + for i in range(cond.shape[1]): + cond_list.append(self.cond_proj[i](cond[:, i:i+1].unsqueeze(-1))) # (B, 1, d) + cond = torch.cat(cond_list, dim=1) # (B, C, d) + + # global tokens + g_mat = self.material_emb(material_t).unsqueeze(1) # (B,1,d) + g_vf = self.vf_category_emb(vf_category_t).unsqueeze(1) # (B,1,d) + + # per-layer tokens + if self.use_discrete_angles: + layer_h = self.angle_emb(angle_t) # (B, L, d) + else: + layer_h = self.layer_emb(layer_t) + self.angle_in(angle_t) # (B,L,d) + + h = torch.cat([g_mat, g_vf, layer_h], dim=1) # (B, 2+L, d) + + # positional embeddings + pos_indices = torch.arange(2 + self.L, device=h.device) # (2+L,) + h = h + self.pos_emb(pos_indices).unsqueeze(0) # (B, 2+L, d) + + # timestep + t_emb = timestep_embedding(t, h.size(-1)) # (B,d) + h = h + self.t_proj(t_emb).unsqueeze(1) + + # key padding mask for discrete angle dead tokens + key_padding_mask = None + if self.use_discrete_angles: + dead_category = self.n_angle_categories + is_dead = (angle_t == dead_category) # (B, L) + first_dead_pos = torch.zeros(B, dtype=torch.long, device=angle_t.device) + for b in range(B): + dead_positions = torch.where(is_dead[b])[0] + if len(dead_positions) > 0: + first_dead_pos[b] = dead_positions[0].item() + 2 + else: + first_dead_pos[b] = 2 + L + N = 2 + L + key_padding_mask = torch.zeros(B, N, dtype=torch.bool, device=h.device) + for b in range(B): + first_invalid = first_dead_pos[b].item() + if first_invalid < 2 + L: + key_padding_mask[b, first_invalid:] = True + key_padding_mask[b, :2] = False + + for block in self.blocks: + h = block(h, cond, key_padding_mask=key_padding_mask) + + h = self.ln(h) + + if self.use_discrete_angles: + angle_logits = self.angle_head(h[:, 2:]) # (B, L, n_angle_categories + 1) + out = { + "material_logits": self.material_head(h[:, 0]), + "vf_category_logits": self.vf_category_head(h[:, 1]), + "angle_logits": angle_logits, + } + else: + angle_raw = self.angle_head(h[:, 2:]) # (B,L,1) + angle = torch.sigmoid(angle_raw) * (math.pi / 2) # (B,L,1) + out = { + "material_logits": self.material_head(h[:, 0]), + "vf_category_logits": self.vf_category_head(h[:, 1]), + "layer_logits": self.layer_head(h[:, 2:]), + "angle": angle, + } + return out + diff --git a/data_generation/hf_space_generation_ro/space_lib/plots.py b/data_generation/hf_space_generation_ro/space_lib/plots.py new file mode 100644 index 0000000000000000000000000000000000000000..f19f23b49ebe52a6dcaa1ea695d79894ac221c05 --- /dev/null +++ b/data_generation/hf_space_generation_ro/space_lib/plots.py @@ -0,0 +1,205 @@ +from __future__ import annotations + +from typing import Dict, Tuple + +import matplotlib + +matplotlib.use("Agg") +import matplotlib.pyplot as plt +import numpy as np + +from .ro_curves import ro_stress, ro_strain_strain + + +def _fit_ro_stress_curve(strain: np.ndarray, stress: np.ndarray, x_scale: float) -> tuple[float, float, float] | None: + """ + Fit y = a*xn + b*xn^c where xn = strain/x_scale. + Lightweight grid-search over c; solve a,b by least squares. + Returns (a,b,c) for ro_stress(). + """ + x = np.asarray(strain, dtype=np.float32).reshape(-1) + y = np.asarray(stress, dtype=np.float32).reshape(-1) + if x.size < 4 or y.size != x.size: + return None + x_scale = float(x_scale) if x_scale and x_scale > 0 else 1.0 + xn = np.clip(x / x_scale, 1e-6, None) + + c_grid = np.concatenate( + [ + np.linspace(0.5, 6.0, 56, dtype=np.float32), + np.linspace(6.5, 20.0, 28, dtype=np.float32), + ] + ) + best: tuple[float, float, float] | None = None + best_mse = float("inf") + for c in c_grid: + phi1 = xn + phi2 = np.power(xn, float(c)) + A = np.stack([phi1, phi2], axis=1) + try: + coef, *_ = np.linalg.lstsq(A, y, rcond=None) + except Exception: + continue + a, b = float(coef[0]), float(coef[1]) + yhat = a * phi1 + b * phi2 + mse = float(np.mean((yhat - y) ** 2)) + if np.isfinite(mse) and mse < best_mse: + best_mse = mse + best = (a, b, float(c)) + return best + + +def _fit_ro_lateral_curve(strain: np.ndarray, lateral: np.ndarray, x_scale: float, y_scale: float) -> tuple[float, float] | None: + """ + Fit y_norm = a*|xn|^b where xn=strain/x_scale and y_norm=lateral/y_scale. + Grid-search over b; solve a by least squares (allows negative a). + Returns (a,b) for ro_strain_strain(). + """ + x = np.asarray(strain, dtype=np.float32).reshape(-1) + y = np.asarray(lateral, dtype=np.float32).reshape(-1) + if x.size < 4 or y.size != x.size: + return None + x_scale = float(x_scale) if x_scale and x_scale > 0 else 1.0 + y_scale = float(y_scale) if y_scale and y_scale > 0 else 1.0 + xn = np.clip(np.abs(x / x_scale), 1e-6, None) + yn = y / y_scale + + b_grid = np.concatenate( + [ + np.linspace(0.2, 6.0, 60, dtype=np.float32), + np.linspace(6.5, 20.0, 28, dtype=np.float32), + ] + ) + best: tuple[float, float] | None = None + best_mse = float("inf") + for b in b_grid: + phi = np.power(xn, float(b)) + denom = float(phi @ phi) + if denom <= 1e-12: + continue + a = float((phi @ yn) / denom) + yhat = a * phi + mse = float(np.mean((yhat - yn) ** 2)) + if np.isfinite(mse) and mse < best_mse: + best_mse = mse + best = (a, float(b)) + return best + + +def plot_condition_and_simulations( + ro_groups_5x3: np.ndarray, + eps_scales: Tuple[float, float, float], + simulations_by_instance: Dict[int, Dict[str, Dict[str, np.ndarray]]], +) -> plt.Figure: + ro = np.asarray(ro_groups_5x3, dtype=np.float32).reshape(5, 3) + eps_11_scale, eps_22_scale, eps_12_scale = map(float, eps_scales) + + fig, axes = plt.subplots(2, 3, figsize=(12, 7)) + modes = ["11", "22", "12"] + colors = ["b", "c", "m", "g", "r"] + + for col, mode in enumerate(modes): + # Determine x-range from simulation if possible + x_min, x_max = None, None + for inst, sim in simulations_by_instance.items(): + if mode in sim: + x = sim[mode]["strain"] + x_min = float(np.min(x)) + x_max = float(np.max(x)) + break + + if x_min is None or x_max is None or x_max <= x_min: + # fallback stable range + if mode == "11": + x_min, x_max = 0.0, eps_11_scale + elif mode == "22": + x_min, x_max = 0.0, eps_22_scale + else: + x_min, x_max = 0.0, eps_12_scale + + x_fit = np.linspace(float(x_min), float(x_max), 250, dtype=np.float32) + + # Condition curve (black) + if mode == "11": + a0, b0, c0 = ro[0] + y = ro_stress(x_fit, float(a0), float(b0), float(c0), eps_11_scale) + axes[0, col].plot(x_fit, y, color="k", linewidth=2, label="Cond input") + + a1, b1, _ = ro[1] + y_lat = ro_strain_strain(x_fit, float(a1), float(b1), eps_11_scale, eps_22_scale) + axes[1, col].plot(x_fit, y_lat, color="k", linewidth=2, label="Cond input") + axes[0, col].set_title("Mode 11") + axes[1, col].set_title("Mode 11 lateral") + + elif mode == "22": + a0, b0, c0 = ro[2] + y = ro_stress(x_fit, float(a0), float(b0), float(c0), eps_22_scale) + axes[0, col].plot(x_fit, y, color="k", linewidth=2, label="Cond input") + + a1, b1, _ = ro[3] + y_lat = ro_strain_strain(x_fit, float(a1), float(b1), eps_22_scale, eps_11_scale) + axes[1, col].plot(x_fit, y_lat, color="k", linewidth=2, label="Cond input") + axes[0, col].set_title("Mode 22") + axes[1, col].set_title("Mode 22 lateral") + + else: + a0, b0, c0 = ro[4] + y = ro_stress(x_fit, float(a0), float(b0), float(c0), eps_12_scale) + axes[0, col].plot(x_fit, y, color="k", linewidth=2, label="Cond input") + axes[0, col].set_title("Mode 12") + axes[1, col].axis("off") + + # Simulations overlay: dots + fitted RO curves (like train.py on_the_fly_validation) + for idx, (inst, sim) in enumerate(sorted(simulations_by_instance.items(), key=lambda kv: kv[0])): + if mode not in sim: + continue + d = sim[mode] + c = colors[idx % len(colors)] + axes[0, col].plot([], [], color=c, linewidth=2, label=f"Sim inst{inst}") + axes[0, col].scatter(d["strain"], d["stress"], color=c, s=22, alpha=0.85, label="_nolegend_") + + if mode == "11": + x_scale = eps_11_scale + elif mode == "22": + x_scale = eps_22_scale + else: + x_scale = eps_12_scale + + fit = _fit_ro_stress_curve(d["strain"], d["stress"], x_scale=x_scale) + if fit is not None and len(d["strain"]) >= 2: + fa, fb, fc = fit + x_line = np.linspace(float(np.min(d["strain"])), float(np.max(d["strain"])), 200, dtype=np.float32) + y_line = ro_stress(x_line, fa, fb, fc, x_scale) + axes[0, col].plot(x_line, y_line, color=c, linewidth=2, alpha=0.9, label="_nolegend_") + + if mode in ("11", "22") and d.get("lateral") is not None: + axes[1, col].plot([], [], color=c, linewidth=2, label=f"Sim inst{inst}") + axes[1, col].scatter(d["strain"], d["lateral"], color=c, s=22, alpha=0.85, label="_nolegend_") + + if mode == "11": + x_scale_lat, y_scale_lat = eps_11_scale, eps_22_scale + else: + x_scale_lat, y_scale_lat = eps_22_scale, eps_11_scale + fit_lat = _fit_ro_lateral_curve(d["strain"], d["lateral"], x_scale=x_scale_lat, y_scale=y_scale_lat) + if fit_lat is not None and len(d["strain"]) >= 2: + fa, fb = fit_lat + x_line = np.linspace(float(np.min(d["strain"])), float(np.max(d["strain"])), 200, dtype=np.float32) + y_line = ro_strain_strain(x_line, fa, fb, x_scale_lat, y_scale_lat) + axes[1, col].plot(x_line, y_line, color=c, linewidth=2, alpha=0.9, label="_nolegend_") + + axes[0, col].set_xlabel("strain") + axes[0, col].set_ylabel("stress (MPa)") + axes[0, col].grid(True, alpha=0.25) + if mode in ("11", "22"): + axes[1, col].set_xlabel("strain") + axes[1, col].set_ylabel("lateral strain") + axes[1, col].grid(True, alpha=0.25) + + # Legends + axes[0, col].legend(fontsize=8) + if mode in ("11", "22"): + axes[1, col].legend(fontsize=8) + + fig.tight_layout() + return fig + diff --git a/data_generation/hf_space_generation_ro/space_lib/ro_curves.py b/data_generation/hf_space_generation_ro/space_lib/ro_curves.py new file mode 100644 index 0000000000000000000000000000000000000000..b16da335d65c4684746d077673676e660ba8b76b --- /dev/null +++ b/data_generation/hf_space_generation_ro/space_lib/ro_curves.py @@ -0,0 +1,135 @@ +from __future__ import annotations + +from typing import Tuple + +import matplotlib + +matplotlib.use("Agg") +import matplotlib.pyplot as plt +import numpy as np + + +def ro_stress(x: np.ndarray, a: float, b: float, c: float, x_scale: float) -> np.ndarray: + x = np.asarray(x, dtype=np.float32) + x_norm = x / x_scale if x_scale and x_scale > 0 else x + return a * x_norm + b * np.power(x_norm, c) + + +def ro_strain_strain(x: np.ndarray, a: float, b: float, x_scale: float, y_scale: float) -> np.ndarray: + x = np.asarray(x, dtype=np.float32) + x_norm = x / x_scale if x_scale and x_scale > 0 else x + y_norm = a * np.power(np.abs(x_norm), b) + return y_norm * y_scale if y_scale and y_scale > 0 else y_norm + + +def plot_ro_stress_relation( + *, + a: float, + b: float, + c: float, + x_scale: float, + x_max: float, + title: str, +) -> plt.Figure: + x = np.linspace(0.0, float(x_max), 250, dtype=np.float32) + y = ro_stress(x, float(a), float(b), float(c), float(x_scale)) + fig, ax = plt.subplots(1, 1, figsize=(6, 3.5)) + ax.plot(x, y, color="k", linewidth=2) + ax.set_title(title) + ax.set_xlabel("strain") + ax.set_ylabel("stress (MPa)") + ax.grid(True, alpha=0.25) + fig.tight_layout() + return fig + + +def plot_ro_lateral_relation( + *, + a: float, + b: float, + x_scale: float, + y_scale: float, + x_max: float, + title: str, +) -> plt.Figure: + x = np.linspace(0.0, float(x_max), 250, dtype=np.float32) + y = ro_strain_strain(x, float(a), float(b), float(x_scale), float(y_scale)) + fig, ax = plt.subplots(1, 1, figsize=(6, 3.5)) + ax.plot(x, y, color="k", linewidth=2) + ax.set_title(title) + ax.set_xlabel("strain") + ax.set_ylabel("lateral strain") + ax.grid(True, alpha=0.25) + fig.tight_layout() + return fig + + +def plot_condition_preview( + ro_groups_5x3: np.ndarray, + eps_scales: Tuple[float, float, float], + x_max: float | None = None, +) -> plt.Figure: + """ + Preview only the conditioned RO curves implied by the sliders. + Layout matches validation plots: 2 rows (stress, lateral) x 3 cols (11,22,12). + """ + ro = np.asarray(ro_groups_5x3, dtype=np.float32).reshape(5, 3) + eps_11_scale, eps_22_scale, eps_12_scale = (float(eps_scales[0]), float(eps_scales[1]), float(eps_scales[2])) + + # Use a strain range that is stable for UI preview. + # Default to 0..scale for each mode unless user overrides x_max. + def _x_grid(scale: float) -> np.ndarray: + xm = float(x_max) if x_max is not None else float(scale) + xm = max(xm, 1e-6) + return np.linspace(0.0, xm, 250, dtype=np.float32) + + fig, axes = plt.subplots(2, 3, figsize=(12, 7)) + modes = ["11", "22", "12"] + for col, mode in enumerate(modes): + if mode == "11": + x = _x_grid(eps_11_scale) + a0, b0, c0 = ro[0] + y_stress = ro_stress(x, float(a0), float(b0), float(c0), eps_11_scale) + axes[0, col].plot(x, y_stress, color="k", linewidth=2) + + a1, b1, _ = ro[1] + y_lat = ro_strain_strain(x, float(a1), float(b1), eps_11_scale, eps_22_scale) + axes[1, col].plot(x, y_lat, color="k", linewidth=2) + + axes[0, col].set_title("Mode 11: σ11(ε11)") + axes[1, col].set_title("Mode 11: ε22(ε11)") + + elif mode == "22": + x = _x_grid(eps_22_scale) + a0, b0, c0 = ro[2] + y_stress = ro_stress(x, float(a0), float(b0), float(c0), eps_22_scale) + axes[0, col].plot(x, y_stress, color="k", linewidth=2) + + a1, b1, _ = ro[3] + y_lat = ro_strain_strain(x, float(a1), float(b1), eps_22_scale, eps_11_scale) + axes[1, col].plot(x, y_lat, color="k", linewidth=2) + + axes[0, col].set_title("Mode 22: σ22(ε22)") + axes[1, col].set_title("Mode 22: ε11(ε22)") + + else: # 12 + x = _x_grid(eps_12_scale) + a0, b0, c0 = ro[4] + y_stress = ro_stress(x, float(a0), float(b0), float(c0), eps_12_scale) + axes[0, col].plot(x, y_stress, color="k", linewidth=2) + axes[0, col].set_title("Mode 12: σ12(ε12)") + axes[1, col].axis("off") + + axes[0, col].set_xlabel("strain") + axes[0, col].set_ylabel("stress (MPa)") + if mode in ("11", "22"): + axes[1, col].set_xlabel("strain") + axes[1, col].set_ylabel("lateral strain") + + axes[0, col].grid(True, alpha=0.25) + if mode in ("11", "22"): + axes[1, col].grid(True, alpha=0.25) + + fig.tight_layout() + return fig + diff --git a/data_generation/hf_space_generation_ro/space_lib/simulate.py b/data_generation/hf_space_generation_ro/space_lib/simulate.py new file mode 100644 index 0000000000000000000000000000000000000000..f9a7cd8481b50570be6c9cbdbcf1ddb2653b8392 --- /dev/null +++ b/data_generation/hf_space_generation_ro/space_lib/simulate.py @@ -0,0 +1,242 @@ +from __future__ import annotations + +import importlib.util +import os +from pathlib import Path +from typing import Dict, List, Tuple + +import numpy as np + + +def format_vol_fraction(vf: float) -> str: + return f"{float(vf):.4f}" + + +def _import_lam(lam_dir: str): + lam_dir_p = Path(lam_dir).resolve() + lam_py = lam_dir_p / "lam.py" + if not lam_py.exists(): + raise FileNotFoundError(f"lam.py not found in {lam_dir_p}") + spec = importlib.util.spec_from_file_location("lam", lam_py) + lam = importlib.util.module_from_spec(spec) + assert spec and spec.loader + spec.loader.exec_module(lam) + return lam + + +def run_simulation_with_mat(lam, prefix: str, full_angles: List[float], mode: str, mat): + """ + Copy of data_generation/generate_data_mp.py::run_simulation_with_mat. + Returns: ex, sx, ey, gxy, ezz, g23, g13, e11 + """ + tply = 0.05 + plies = [lam.Ply(float(angle_deg), tply, mat) for angle_deg in full_angles] + laminate = lam.Laminate(plies) + + if mode == "11": + main_index = 0 + eps_max = 0.10 + elif mode == "22": + main_index = 1 + eps_max = 0.10 + elif mode == "12": + main_index = 5 + eps_max = 0.20 + else: + raise ValueError("mode must be '11', '22' or '12'") + + main_steps = np.linspace(0.0, eps_max, 1500) + + ex_hist, sx_hist = [], [] + ey_hist, gxy_hist = [], [] + ezz_hist, g23_hist, g13_hist = [], [], [] + e11_hist = [] + + ex_prev = 0.0 + ey_prev = 0.0 + gxy_prev = 0.0 + ezz_prev = 0.0 + g23_prev = 0.0 + g13_prev = 0.0 + s1_prev = 0.0 + + for i in range(1, len(main_steps)): + main_target = main_steps[i] + + if main_index == 0: + main_prev = ex_prev + elif main_index == 1: + main_prev = ey_prev + else: + main_prev = gxy_prev + + dmain = main_target - main_prev + + Ceff_prev = laminate.effective_C_from_previous_strains( + ex_prev, ey_prev, ezz_prev, g23_prev, g13_prev, gxy_prev + ) + + cond = np.linalg.cond(Ceff_prev) + if not np.isfinite(cond) or cond > lam.COND_MAX: + raise np.linalg.LinAlgError( + f"Effective C is ill-conditioned (cond={cond:.3e}) at step {i}" + ) + + e_j = np.zeros(6) + e_j[main_index] = 1.0 + + try: + S_col = np.linalg.solve(Ceff_prev, e_j) + except np.linalg.LinAlgError as err: + raise np.linalg.LinAlgError( + f"Failed to solve for compliance column at step {i}: {err}" + ) + + Sjj = S_col[main_index] + if abs(Sjj) < 1e-20: + raise ZeroDivisionError( + f"Sjj is zero or too small at step {i} (Sjj={Sjj:.3e})." + ) + + ds1 = dmain / Sjj + de_vec = S_col * ds1 + de_vec[main_index] = dmain + + de1, de2, de3, de4, de5, de6 = de_vec + de4 = 0.0 + de5 = 0.0 + + s1 = s1_prev + ds1 + ex = ex_prev + de1 + ey = ey_prev + de2 + ezz = ezz_prev + de3 + g23 = g23_prev + de4 + g13 = g13_prev + de5 + gxy = gxy_prev + de6 + + laminate.update_fiber_angles_incremental(de1, de2, de6) + + ex_prev, ey_prev, ezz_prev = ex, ey, ezz + g23_prev, g13_prev, gxy_prev = g23, g13, gxy + s1_prev = s1 + + if main_index == 0: + main_strain = ex + elif main_index == 1: + main_strain = ey + else: + main_strain = 0.5 * gxy + + ex_hist.append(main_strain) + sx_hist.append(s1) + ey_hist.append(ey) + gxy_hist.append(gxy) + ezz_hist.append(ezz) + g23_hist.append(g23) + g13_hist.append(g13) + e11_hist.append(ex) + + result = ( + np.array(ex_hist), + np.array(sx_hist), + np.array(ey_hist), + np.array(gxy_hist), + np.array(ezz_hist), + np.array(g23_hist), + np.array(g13_hist), + np.array(e11_hist), + ) + if len(result) != 8: + raise ValueError(f"Internal error: expected 8 return values, got {len(result)}") + return result + + +def simulate_instances( + *, + curve_dir: str, + lam_dir: str, + mat_type: str, + vf: float, + upper_angles: List[float], + instances: List[int], + num_output_points: int = 10, +) -> Dict[int, Dict[str, Dict[str, np.ndarray]]]: + """ + Returns: + {instance: {"11": {"strain","stress","lateral"}, "22": {...}, "12": {...}}} + """ + lam = _import_lam(lam_dir) + + curve_dir_path = Path(curve_dir).resolve() + if not curve_dir_path.exists(): + raise FileNotFoundError(f"curve_dir does not exist: {curve_dir_path}") + + original_curve_dir = lam.CURVE_DIR + lam.CURVE_DIR = curve_dir_path + try: + vf_str = format_vol_fraction(vf) + out: Dict[int, Dict[str, Dict[str, np.ndarray]]] = {} + errors: Dict[int, List[str]] = {} + + for inst in instances: + prefix = f"{mat_type}_{vf_str}_{int(inst)}" + # Fail fast if required curve files are missing. + for mode in ("11", "22", "12"): + p = curve_dir_path / f"{prefix}_{mode}.txt" + if not p.exists(): + raise FileNotFoundError(f"Missing curve file: {p} (needed for simulation)") + vf_meta, centers_meta, n_fibers = lam.read_instance_metadata(prefix) + mat = lam.load_ud_material_from_files(prefix) + full_angles = lam.build_full_symmetric_stack(sorted([float(a) for a in upper_angles])) + + sim_modes: Dict[str, Dict[str, np.ndarray]] = {} + for mode in ("11", "22", "12"): + try: + ex, sx, ey, gxy, ezz, g23, g13, e11 = run_simulation_with_mat(lam, prefix, full_angles, mode, mat) + if len(ex) < 2: + continue + x_out = np.linspace(float(ex[0]), float(ex[-1]), int(num_output_points)) + sx_out_mpa = np.interp(x_out, ex, sx / 1e6) + if mode == "11": + lat_out = np.interp(x_out, ex, ey) + elif mode == "22": + lat_out = np.interp(x_out, ex, e11) + else: + lat_out = None + sim_modes[mode] = { + "strain": x_out.astype(np.float32), + "stress": sx_out_mpa.astype(np.float32), + "lateral": None if lat_out is None else lat_out.astype(np.float32), + } + except Exception as e: + errors.setdefault(int(inst), []).append(f"{mode} failed: {type(e).__name__}: {e}") + continue + + if sim_modes: + out[int(inst)] = sim_modes + else: + errors.setdefault(int(inst), []).append("all modes failed") + + if not out: + msg = f"No simulations succeeded for {mat_type} vf={vf_str} angles={upper_angles}." + if errors: + msg += " Errors: " + "; ".join(f"inst{inst}: {errs}" for inst, errs in errors.items()) + raise RuntimeError(msg) + + return out + finally: + lam.CURVE_DIR = original_curve_dir + + +def default_lam_dir() -> str: + """ + Default to the Space directory that contains a vendored `lam.py`. + Can be overridden via env MG_LAM_DIR. + """ + env = os.environ.get("MG_LAM_DIR") + if env: + return env + # Space layout: data_generation/hf_space_generation_ro/lam.py + here = Path(__file__).resolve() + return str(here.parent.parent) + diff --git a/data_generation/processed_dataset/config_1/metadata.json b/data_generation/processed_dataset/config_1/metadata.json new file mode 100644 index 0000000000000000000000000000000000000000..7e15284317c5a7423a6236e00d024add9dcd5e6b --- /dev/null +++ b/data_generation/processed_dataset/config_1/metadata.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1445e1ac3bf051c811c1c55520b1551d6298c467c276e2d65546d9bdb989d3d4 +size 237926037 diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.0924_1_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.0924_1_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..e5b5861640a8c878a02e9f89394cc5d94605bc69 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.0924_1_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 9.534925e+01 -2.310667e-03 -2.307645e-03 +1.000000e-02 1.905271e+02 -4.604358e-03 -4.598334e-03 +1.500000e-02 2.853640e+02 -6.886136e-03 -6.877142e-03 +2.000000e-02 3.792480e+02 -9.173770e-03 -9.161830e-03 +2.500000e-02 4.720984e+02 -1.146994e-02 -1.145497e-02 +3.000000e-02 5.644633e+02 -1.375957e-02 -1.374152e-02 +3.500000e-02 6.565959e+02 -1.603539e-02 -1.601427e-02 +4.000000e-02 7.485469e+02 -1.829625e-02 -1.827210e-02 +4.500000e-02 8.403284e+02 -2.054202e-02 -2.051485e-02 +5.000000e-02 9.319449e+02 -2.277277e-02 -2.274262e-02 +5.500000e-02 1.023402e+03 -2.498851e-02 -2.495542e-02 +6.000000e-02 1.114698e+03 -2.718959e-02 -2.715359e-02 +6.500000e-02 1.205837e+03 -2.937602e-02 -2.933714e-02 +7.000000e-02 1.296823e+03 -3.154793e-02 -3.150620e-02 +7.500000e-02 1.387657e+03 -3.370544e-02 -3.366089e-02 +8.000000e-02 1.478341e+03 -3.584868e-02 -3.580135e-02 +8.500000e-02 1.568879e+03 -3.797777e-02 -3.792769e-02 +9.000000e-02 1.659271e+03 -4.009285e-02 -4.004004e-02 +9.500000e-02 1.749521e+03 -4.219405e-02 -4.213854e-02 +1.000000e-01 1.839629e+03 -4.428148e-02 -4.422331e-02 +volume fraction= 0.092363 +fiber_centers_YZ= (0.017275,0.022793) (0.002167,0.005617) (0.009285,0.034121) (0.042275,0.022793) (0.027167,0.005617) (0.034285,0.034121) (0.052167,0.005617) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.0924_1_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.0924_1_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..b76847754e3770e2694af3a0fabeabfedd14cc59 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.0924_1_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 2.839216e+00 +1.000000e-02 5.588398e+00 +1.500000e-02 7.680908e+00 +2.000000e-02 8.895033e+00 +2.500000e-02 9.728212e+00 +3.000000e-02 1.044392e+01 +3.500000e-02 1.109897e+01 +4.000000e-02 1.170674e+01 +4.500000e-02 1.227277e+01 +5.000000e-02 1.280090e+01 +5.500000e-02 1.329438e+01 +6.000000e-02 1.375612e+01 +6.500000e-02 1.418882e+01 +7.000000e-02 1.459495e+01 +7.500000e-02 1.497678e+01 +8.000000e-02 1.533224e+01 +8.500000e-02 1.567142e+01 +9.000000e-02 1.599245e+01 +9.500000e-02 1.629687e+01 +1.000000e-01 1.658625e+01 +volume fraction= 0.092363 +fiber_centers_YZ= (0.017275,0.022793) (0.002167,0.005617) (0.009285,0.034121) (0.042275,0.022793) (0.027167,0.005617) (0.034285,0.034121) (0.052167,0.005617) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.0924_1_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.0924_1_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..504f8dd1f0141429fcd13d56b5c26b47493687ed --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.0924_1_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 5.396585e+00 -1.306340e-04 -4.456201e-03 +1.000000e-02 1.065990e+01 -2.572005e-04 -8.881963e-03 +1.500000e-02 1.482475e+01 -3.587396e-04 -1.336267e-02 +2.000000e-02 1.732569e+01 -4.229332e-04 -1.795116e-02 +2.500000e-02 1.903323e+01 -4.683321e-04 -2.257021e-02 +3.000000e-02 2.046323e+01 -5.063235e-04 -2.717229e-02 +3.500000e-02 2.175922e+01 -5.402466e-04 -3.174410e-02 +4.000000e-02 2.295725e+01 -5.710798e-04 -3.628243e-02 +4.500000e-02 2.407041e+01 -5.992676e-04 -4.078629e-02 +5.000000e-02 2.510145e+01 -6.248446e-04 -4.525610e-02 +5.500000e-02 2.606607e+01 -6.485539e-04 -4.968996e-02 +6.000000e-02 2.696554e+01 -6.703592e-04 -5.408849e-02 +6.500000e-02 2.780489e+01 -6.904354e-04 -5.845164e-02 +7.000000e-02 2.858871e+01 -7.089376e-04 -6.277939e-02 +7.500000e-02 2.932103e+01 -7.259987e-04 -6.707179e-02 +8.000000e-02 3.000571e+01 -7.417412e-04 -7.132894e-02 +8.500000e-02 3.064632e+01 -7.562750e-04 -7.555094e-02 +9.000000e-02 3.124631e+01 -7.697046e-04 -7.973792e-02 +9.500000e-02 3.180916e+01 -7.821311e-04 -8.389001e-02 +1.000000e-01 3.233775e+01 -7.936391e-04 -8.800741e-02 +volume fraction= 0.092363 +fiber_centers_YZ= (0.017275,0.022793) (0.002167,0.005617) (0.009285,0.034121) (0.042275,0.022793) (0.027167,0.005617) (0.034285,0.034121) (0.052167,0.005617) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.0924_2_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.0924_2_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..cd1a2527eca7b220d74028e913ef093f3e18af3e --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.0924_2_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 9.536606e+01 -2.301440e-03 -2.316797e-03 +1.000000e-02 1.905607e+02 -4.585958e-03 -4.616585e-03 +1.500000e-02 2.854143e+02 -6.858610e-03 -6.904451e-03 +2.000000e-02 3.793148e+02 -9.136979e-03 -9.198358e-03 +2.500000e-02 4.721818e+02 -1.142342e-02 -1.150120e-02 +3.000000e-02 5.645633e+02 -1.370305e-02 -1.379772e-02 +3.500000e-02 6.567123e+02 -1.596880e-02 -1.608052e-02 +4.000000e-02 7.486799e+02 -1.821957e-02 -1.834841e-02 +4.500000e-02 8.404779e+02 -2.045524e-02 -2.060124e-02 +5.000000e-02 9.321136e+02 -2.267578e-02 -2.283897e-02 +5.500000e-02 1.023585e+03 -2.488153e-02 -2.506197e-02 +6.000000e-02 1.114897e+03 -2.707250e-02 -2.727023e-02 +6.500000e-02 1.206052e+03 -2.924882e-02 -2.946387e-02 +7.000000e-02 1.297054e+03 -3.141061e-02 -3.164303e-02 +7.500000e-02 1.387905e+03 -3.355801e-02 -3.380782e-02 +8.000000e-02 1.478606e+03 -3.569113e-02 -3.595838e-02 +8.500000e-02 1.569159e+03 -3.781010e-02 -3.809483e-02 +9.000000e-02 1.659568e+03 -3.991505e-02 -4.021730e-02 +9.500000e-02 1.749834e+03 -4.200612e-02 -4.232591e-02 +1.000000e-01 1.839958e+03 -4.408342e-02 -4.442080e-02 +volume fraction= 0.092363 +fiber_centers_YZ= (0.020136,0.014168) (0.010174,0.043883) (0.008863,0.020511) (0.045136,0.014168) (0.035174,0.043883) (0.033863,0.020511) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.0924_2_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.0924_2_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..756d81f38b946e23f58755e141905589b1008591 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.0924_2_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 2.874010e+00 +1.000000e-02 5.624720e+00 +1.500000e-02 7.697166e+00 +2.000000e-02 8.929249e+00 +2.500000e-02 9.775334e+00 +3.000000e-02 1.049814e+01 +3.500000e-02 1.115800e+01 +4.000000e-02 1.176904e+01 +4.500000e-02 1.233750e+01 +5.000000e-02 1.286757e+01 +5.500000e-02 1.336269e+01 +6.000000e-02 1.382596e+01 +6.500000e-02 1.426022e+01 +7.000000e-02 1.466802e+01 +7.500000e-02 1.505176e+01 +8.000000e-02 1.541368e+01 +8.500000e-02 1.575582e+01 +9.000000e-02 1.608007e+01 +9.500000e-02 1.638818e+01 +1.000000e-01 1.668206e+01 +volume fraction= 0.092363 +fiber_centers_YZ= (0.020136,0.014168) (0.010174,0.043883) (0.008863,0.020511) (0.045136,0.014168) (0.035174,0.043883) (0.033863,0.020511) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.0924_2_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.0924_2_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..47fe90d309a26778d773d7c4a421d57d20a5c1d3 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.0924_2_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 5.497978e+00 -1.325568e-04 -4.451303e-03 +1.000000e-02 1.083645e+01 -2.604151e-04 -8.874794e-03 +1.500000e-02 1.501241e+01 -3.616524e-04 -1.335973e-02 +2.000000e-02 1.757879e+01 -4.268926e-04 -1.794592e-02 +2.500000e-02 1.936750e+01 -4.739540e-04 -2.256001e-02 +3.000000e-02 2.087646e+01 -5.136756e-04 -2.715689e-02 +3.500000e-02 2.224978e+01 -5.493598e-04 -3.172348e-02 +4.000000e-02 2.352560e+01 -5.820102e-04 -3.625651e-02 +4.500000e-02 2.471768e+01 -6.120789e-04 -4.075495e-02 +5.000000e-02 2.583394e+01 -6.398600e-04 -4.521839e-02 +5.500000e-02 2.688066e+01 -6.655902e-04 -4.964660e-02 +6.000000e-02 2.786314e+01 -6.894631e-04 -5.403946e-02 +6.500000e-02 2.878641e+01 -7.116537e-04 -5.839692e-02 +7.000000e-02 2.965554e+01 -7.323258e-04 -6.271895e-02 +7.500000e-02 3.047483e+01 -7.516175e-04 -6.700561e-02 +8.000000e-02 3.124830e+01 -7.696568e-04 -7.125695e-02 +8.500000e-02 3.197968e+01 -7.865551e-04 -7.547311e-02 +9.000000e-02 3.267243e+01 -8.024180e-04 -7.965421e-02 +9.500000e-02 3.333025e+01 -8.173495e-04 -8.380040e-02 +1.000000e-01 3.395578e+01 -8.314306e-04 -8.791188e-02 +volume fraction= 0.092363 +fiber_centers_YZ= (0.020136,0.014168) (0.010174,0.043883) (0.008863,0.020511) (0.045136,0.014168) (0.035174,0.043883) (0.033863,0.020511) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.0924_3_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.0924_3_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..bb2bc9b99f29fe09fe6abf194b587a454c9a954e --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.0924_3_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 9.537730e+01 -2.300143e-03 -2.318003e-03 +1.000000e-02 1.905831e+02 -4.583358e-03 -4.619005e-03 +1.500000e-02 2.854478e+02 -6.854696e-03 -6.908107e-03 +2.000000e-02 3.793593e+02 -9.131643e-03 -9.203398e-03 +2.500000e-02 4.722372e+02 -1.141638e-02 -1.150793e-02 +3.000000e-02 5.646297e+02 -1.369411e-02 -1.380634e-02 +3.500000e-02 6.567897e+02 -1.595786e-02 -1.609114e-02 +4.000000e-02 7.487682e+02 -1.820654e-02 -1.836111e-02 +4.500000e-02 8.405800e+02 -2.043993e-02 -2.061598e-02 +5.000000e-02 9.322239e+02 -2.265835e-02 -2.285606e-02 +5.500000e-02 1.023706e+03 -2.486181e-02 -2.508135e-02 +6.000000e-02 1.115029e+03 -2.705043e-02 -2.729196e-02 +6.500000e-02 1.206195e+03 -2.922434e-02 -2.948801e-02 +7.000000e-02 1.297208e+03 -3.138366e-02 -3.166964e-02 +7.500000e-02 1.388069e+03 -3.352854e-02 -3.383696e-02 +8.000000e-02 1.478781e+03 -3.565909e-02 -3.599009e-02 +8.500000e-02 1.569345e+03 -3.777544e-02 -3.812917e-02 +9.000000e-02 1.659765e+03 -3.987773e-02 -4.025431e-02 +9.500000e-02 1.750041e+03 -4.196608e-02 -4.236565e-02 +1.000000e-01 1.840176e+03 -4.404062e-02 -4.446332e-02 +volume fraction= 0.092363 +fiber_centers_YZ= (0.020112,0.032604) (0.013130,0.026381) (0.012601,0.040099) (0.045112,0.032604) (0.038130,0.026381) (0.037601,0.040099) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.0924_3_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.0924_3_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..710b76a5efd7a84d55a4d4b6c3bcd9b56a03ac24 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.0924_3_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 2.876095e+00 +1.000000e-02 5.624020e+00 +1.500000e-02 7.681499e+00 +2.000000e-02 8.904930e+00 +2.500000e-02 9.741776e+00 +3.000000e-02 1.045608e+01 +3.500000e-02 1.110762e+01 +4.000000e-02 1.171044e+01 +4.500000e-02 1.227050e+01 +5.000000e-02 1.279198e+01 +5.500000e-02 1.327837e+01 +6.000000e-02 1.373279e+01 +6.500000e-02 1.415809e+01 +7.000000e-02 1.455685e+01 +7.500000e-02 1.493145e+01 +8.000000e-02 1.528410e+01 +8.500000e-02 1.561683e+01 +9.000000e-02 1.593158e+01 +9.500000e-02 1.623006e+01 +1.000000e-01 1.651393e+01 +volume fraction= 0.092363 +fiber_centers_YZ= (0.020112,0.032604) (0.013130,0.026381) (0.012601,0.040099) (0.045112,0.032604) (0.038130,0.026381) (0.037601,0.040099) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.0924_3_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.0924_3_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..da25a26ebd60e0655709f550a07e63b4403c623e --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.0924_3_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 5.470032e+00 -1.317899e-04 -4.454659e-03 +1.000000e-02 1.075278e+01 -2.582043e-04 -8.884161e-03 +1.500000e-02 1.490073e+01 -3.586903e-04 -1.337226e-02 +2.000000e-02 1.748149e+01 -4.241835e-04 -1.795741e-02 +2.500000e-02 1.923287e+01 -4.703627e-04 -2.257517e-02 +3.000000e-02 2.069705e+01 -5.089641e-04 -2.717656e-02 +3.500000e-02 2.202985e+01 -5.435675e-04 -3.174740e-02 +4.000000e-02 2.326804e+01 -5.751737e-04 -3.628442e-02 +4.500000e-02 2.442412e+01 -6.042203e-04 -4.078670e-02 +5.000000e-02 2.550540e+01 -6.309950e-04 -4.525384e-02 +5.500000e-02 2.651788e+01 -6.557309e-04 -4.968563e-02 +6.000000e-02 2.746760e+01 -6.786415e-04 -5.408188e-02 +6.500000e-02 2.835985e+01 -6.999099e-04 -5.844253e-02 +7.000000e-02 2.919923e+01 -7.196903e-04 -6.276758e-02 +7.500000e-02 2.998999e+01 -7.381215e-04 -6.705708e-02 +8.000000e-02 3.073611e+01 -7.553293e-04 -7.131112e-02 +8.500000e-02 3.143291e+01 -7.711048e-04 -7.553089e-02 +9.000000e-02 3.210048e+01 -7.861920e-04 -7.971438e-02 +9.500000e-02 3.273372e+01 -8.003683e-04 -8.386284e-02 +1.000000e-01 3.333545e+01 -8.137147e-04 -8.797646e-02 +volume fraction= 0.092363 +fiber_centers_YZ= (0.020112,0.032604) (0.013130,0.026381) (0.012601,0.040099) (0.045112,0.032604) (0.038130,0.026381) (0.037601,0.040099) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.0924_4_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.0924_4_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..d837193e64dbc840b12d5450cce924c11d4a22be --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.0924_4_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 9.537443e+01 -2.284613e-03 -2.333356e-03 +1.000000e-02 1.905773e+02 -4.552362e-03 -4.649648e-03 +1.500000e-02 2.854390e+02 -6.808272e-03 -6.954022e-03 +2.000000e-02 3.793473e+02 -9.069328e-03 -9.265099e-03 +2.500000e-02 4.722219e+02 -1.133697e-02 -1.158666e-02 +3.000000e-02 5.646111e+02 -1.359688e-02 -1.390283e-02 +3.500000e-02 6.567679e+02 -1.584254e-02 -1.620566e-02 +4.000000e-02 7.487461e+02 -1.807287e-02 -1.849369e-02 +4.500000e-02 8.405518e+02 -2.028802e-02 -2.076699e-02 +5.000000e-02 9.321925e+02 -2.248798e-02 -2.302549e-02 +5.500000e-02 1.023671e+03 -2.467286e-02 -2.526929e-02 +6.000000e-02 1.114991e+03 -2.684282e-02 -2.749852e-02 +6.500000e-02 1.206155e+03 -2.899797e-02 -2.971329e-02 +7.000000e-02 1.297164e+03 -3.113846e-02 -3.191370e-02 +7.500000e-02 1.388022e+03 -3.326440e-02 -3.409990e-02 +8.000000e-02 1.478731e+03 -3.537595e-02 -3.627199e-02 +8.500000e-02 1.569292e+03 -3.747322e-02 -3.843010e-02 +9.000000e-02 1.659708e+03 -3.955635e-02 -4.057435e-02 +9.500000e-02 1.749981e+03 -4.162548e-02 -4.270487e-02 +1.000000e-01 1.840113e+03 -4.368073e-02 -4.482177e-02 +volume fraction= 0.092363 +fiber_centers_YZ= (0.016667,0.031031) (0.013718,0.020586) (0.007343,0.032616) (0.041667,0.031031) (0.038718,0.020586) (0.032343,0.032616) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.0924_4_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.0924_4_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..58c36e17492182d3e95e49b81699bd396991b579 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.0924_4_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 2.908917e+00 +1.000000e-02 5.631345e+00 +1.500000e-02 7.682056e+00 +2.000000e-02 8.920737e+00 +2.500000e-02 9.763417e+00 +3.000000e-02 1.047962e+01 +3.500000e-02 1.113198e+01 +4.000000e-02 1.173521e+01 +4.500000e-02 1.229560e+01 +5.000000e-02 1.281753e+01 +5.500000e-02 1.330257e+01 +6.000000e-02 1.375779e+01 +6.500000e-02 1.418445e+01 +7.000000e-02 1.458511e+01 +7.500000e-02 1.496218e+01 +8.000000e-02 1.531793e+01 +8.500000e-02 1.565763e+01 +9.000000e-02 1.597712e+01 +9.500000e-02 1.628089e+01 +1.000000e-01 1.657066e+01 +volume fraction= 0.092363 +fiber_centers_YZ= (0.016667,0.031031) (0.013718,0.020586) (0.007343,0.032616) (0.041667,0.031031) (0.038718,0.020586) (0.032343,0.032616) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.0924_4_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.0924_4_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..7286334396372b869cedb73d350b5f3976078c6c --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.0924_4_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 5.941760e+00 -1.422726e-04 -4.418295e-03 +1.000000e-02 1.152891e+01 -2.760146e-04 -8.820926e-03 +1.500000e-02 1.581615e+01 -3.808509e-04 -1.329015e-02 +2.000000e-02 1.859339e+01 -4.515324e-04 -1.785470e-02 +2.500000e-02 2.054824e+01 -5.029107e-04 -2.245288e-02 +3.000000e-02 2.218745e+01 -5.461238e-04 -2.703742e-02 +3.500000e-02 2.367245e+01 -5.848588e-04 -3.159342e-02 +4.000000e-02 2.504666e+01 -6.202492e-04 -3.611702e-02 +4.500000e-02 2.632632e+01 -6.528080e-04 -4.060698e-02 +5.000000e-02 2.752136e+01 -6.828773e-04 -4.506270e-02 +5.500000e-02 2.863977e+01 -7.107327e-04 -4.948383e-02 +6.000000e-02 2.968823e+01 -7.365987e-04 -5.387016e-02 +6.500000e-02 3.067287e+01 -7.606744e-04 -5.822154e-02 +7.000000e-02 3.159907e+01 -7.831302e-04 -6.253794e-02 +7.500000e-02 3.247185e+01 -8.041205e-04 -6.681935e-02 +8.000000e-02 3.329694e+01 -8.237328e-04 -7.106570e-02 +8.500000e-02 3.407648e+01 -8.421972e-04 -7.527727e-02 +9.000000e-02 3.481556e+01 -8.595775e-04 -7.945407e-02 +9.500000e-02 3.551664e+01 -8.760271e-04 -8.359635e-02 +1.000000e-01 3.618487e+01 -8.915277e-04 -8.770408e-02 +volume fraction= 0.092363 +fiber_centers_YZ= (0.016667,0.031031) (0.013718,0.020586) (0.007343,0.032616) (0.041667,0.031031) (0.038718,0.020586) (0.032343,0.032616) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.0924_5_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.0924_5_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..8313b365c8a8d6ec3e9c1fa083b2e7f0057ec525 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.0924_5_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 9.536402e+01 -2.301388e-03 -2.316881e-03 +1.000000e-02 1.905566e+02 -4.585857e-03 -4.616750e-03 +1.500000e-02 2.854082e+02 -6.858477e-03 -6.904677e-03 +2.000000e-02 3.793068e+02 -9.136887e-03 -9.198566e-03 +2.500000e-02 4.721717e+02 -1.142345e-02 -1.150130e-02 +3.000000e-02 5.645513e+02 -1.370325e-02 -1.379767e-02 +3.500000e-02 6.566984e+02 -1.596922e-02 -1.608028e-02 +4.000000e-02 7.486640e+02 -1.822025e-02 -1.834792e-02 +4.500000e-02 8.404628e+02 -2.045609e-02 -2.060036e-02 +5.000000e-02 9.320938e+02 -2.267707e-02 -2.283791e-02 +5.500000e-02 1.023563e+03 -2.488318e-02 -2.506055e-02 +6.000000e-02 1.114873e+03 -2.707455e-02 -2.726843e-02 +6.500000e-02 1.206027e+03 -2.925130e-02 -2.946165e-02 +7.000000e-02 1.297027e+03 -3.141356e-02 -3.164035e-02 +7.500000e-02 1.387875e+03 -3.356145e-02 -3.380466e-02 +8.000000e-02 1.478574e+03 -3.569511e-02 -3.595469e-02 +8.500000e-02 1.569126e+03 -3.781465e-02 -3.809058e-02 +9.000000e-02 1.659533e+03 -3.992021e-02 -4.021245e-02 +9.500000e-02 1.749797e+03 -4.201192e-02 -4.232044e-02 +1.000000e-01 1.839920e+03 -4.408989e-02 -4.441466e-02 +volume fraction= 0.092363 +fiber_centers_YZ= (0.013619,0.034901) (0.001279,0.028660) (0.011215,0.007685) (0.038619,0.034901) (0.026279,0.028660) (0.036215,0.007685) (0.051279,0.028660) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.0924_5_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.0924_5_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..22893f61b33506d8a89eafde5cdc7c90ebc0e445 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.0924_5_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 2.873774e+00 +1.000000e-02 5.624181e+00 +1.500000e-02 7.695935e+00 +2.000000e-02 8.927402e+00 +2.500000e-02 9.772809e+00 +3.000000e-02 1.049518e+01 +3.500000e-02 1.115444e+01 +4.000000e-02 1.176514e+01 +4.500000e-02 1.233333e+01 +5.000000e-02 1.286316e+01 +5.500000e-02 1.335806e+01 +6.000000e-02 1.382114e+01 +6.500000e-02 1.425521e+01 +7.000000e-02 1.466284e+01 +7.500000e-02 1.504641e+01 +8.000000e-02 1.540812e+01 +8.500000e-02 1.574998e+01 +9.000000e-02 1.607389e+01 +9.500000e-02 1.638157e+01 +1.000000e-01 1.667466e+01 +volume fraction= 0.092363 +fiber_centers_YZ= (0.013619,0.034901) (0.001279,0.028660) (0.011215,0.007685) (0.038619,0.034901) (0.026279,0.028660) (0.036215,0.007685) (0.051279,0.028660) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.0924_5_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.0924_5_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..5f22310a0e4058b1cb121b590efd780a9ddbe071 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.0924_5_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 5.502413e+00 -1.326491e-04 -4.450958e-03 +1.000000e-02 1.084439e+01 -2.605947e-04 -8.874108e-03 +1.500000e-02 1.502659e+01 -3.620199e-04 -1.335822e-02 +2.000000e-02 1.760078e+01 -4.275539e-04 -1.794353e-02 +2.500000e-02 1.938857e+01 -4.746586e-04 -2.255734e-02 +3.000000e-02 2.089472e+01 -5.143568e-04 -2.715419e-02 +3.500000e-02 2.226572e+01 -5.500112e-04 -3.172079e-02 +4.000000e-02 2.353948e+01 -5.826307e-04 -3.625383e-02 +4.500000e-02 2.472947e+01 -6.126641e-04 -4.075229e-02 +5.000000e-02 2.584342e+01 -6.404036e-04 -4.521577e-02 +5.500000e-02 2.688228e+01 -6.658380e-04 -4.964480e-02 +6.000000e-02 2.786243e+01 -6.896614e-04 -5.403772e-02 +6.500000e-02 2.878376e+01 -7.118114e-04 -5.839521e-02 +7.000000e-02 2.965093e+01 -7.324434e-04 -6.271727e-02 +7.500000e-02 3.046857e+01 -7.517040e-04 -6.700391e-02 +8.000000e-02 3.124070e+01 -7.697190e-04 -7.125523e-02 +8.500000e-02 3.197087e+01 -7.865988e-04 -7.547134e-02 +9.000000e-02 3.266268e+01 -8.024503e-04 -7.965238e-02 +9.500000e-02 3.331943e+01 -8.173695e-04 -8.379852e-02 +1.000000e-01 3.394390e+01 -8.314383e-04 -8.790995e-02 +volume fraction= 0.092363 +fiber_centers_YZ= (0.013619,0.034901) (0.001279,0.028660) (0.011215,0.007685) (0.038619,0.034901) (0.026279,0.028660) (0.036215,0.007685) (0.051279,0.028660) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.2155_1_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.2155_1_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..6f76ea72f66864070eed86ffaaab9a790f6f655c --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.2155_1_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 2.178527e+02 -2.171294e-03 -2.218585e-03 +1.000000e-02 4.352236e+02 -4.326776e-03 -4.421057e-03 +1.500000e-02 6.519695e+02 -6.470945e-03 -6.612148e-03 +2.000000e-02 8.675785e+02 -8.619132e-03 -8.808584e-03 +2.500000e-02 1.082008e+03 -1.077291e-02 -1.101302e-02 +3.000000e-02 1.295730e+03 -1.291951e-02 -1.321143e-02 +3.500000e-02 1.508962e+03 -1.505283e-02 -1.539679e-02 +4.000000e-02 1.721747e+03 -1.717201e-02 -1.756803e-02 +4.500000e-02 1.934103e+03 -1.927675e-02 -1.972478e-02 +5.000000e-02 2.146026e+03 -2.136756e-02 -2.186757e-02 +5.500000e-02 2.357519e+03 -2.344468e-02 -2.399664e-02 +6.000000e-02 2.568599e+03 -2.550738e-02 -2.611116e-02 +6.500000e-02 2.779269e+03 -2.755631e-02 -2.821185e-02 +7.000000e-02 2.989517e+03 -2.959185e-02 -3.029907e-02 +7.500000e-02 3.199368e+03 -3.161360e-02 -3.237241e-02 +8.000000e-02 3.408806e+03 -3.362235e-02 -3.443268e-02 +8.500000e-02 3.617847e+03 -3.561735e-02 -3.647902e-02 +9.000000e-02 3.826497e+03 -3.759920e-02 -3.851214e-02 +9.500000e-02 4.034746e+03 -3.956821e-02 -4.053231e-02 +1.000000e-01 4.242610e+03 -4.152411e-02 -4.253925e-02 +volume fraction= 0.215513 +fiber_centers_YZ= (0.017036,0.027518) (0.002511,0.037127) (0.013575,0.039619) (0.008139,0.010335) (0.018269,0.004963) (0.000336,0.014094) (0.009131,0.023287) (0.042036,0.027518) (0.027511,0.037127) (0.038575,0.039619) (0.033139,0.010335) (0.043269,0.004963) (0.025336,0.014094) (0.034131,0.023287) (0.052511,0.037127) (0.050336,0.014094) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.2155_1_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.2155_1_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..f9cf709270801a4742f55b261ffa02990b441497 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.2155_1_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 3.826899e+00 +1.000000e-02 7.119306e+00 +1.500000e-02 9.188011e+00 +2.000000e-02 1.049468e+01 +2.500000e-02 1.150529e+01 +3.000000e-02 1.238523e+01 +3.500000e-02 1.317819e+01 +4.000000e-02 1.390072e+01 +4.500000e-02 1.456282e+01 +5.000000e-02 1.517212e+01 +5.500000e-02 1.573515e+01 +6.000000e-02 1.625752e+01 +6.500000e-02 1.674424e+01 +7.000000e-02 1.719973e+01 +7.500000e-02 1.762794e+01 +8.000000e-02 1.803238e+01 +8.500000e-02 1.841621e+01 +9.000000e-02 1.878223e+01 +9.500000e-02 1.913296e+01 +1.000000e-01 1.947063e+01 +volume fraction= 0.215513 +fiber_centers_YZ= (0.017036,0.027518) (0.002511,0.037127) (0.013575,0.039619) (0.008139,0.010335) (0.018269,0.004963) (0.000336,0.014094) (0.009131,0.023287) (0.042036,0.027518) (0.027511,0.037127) (0.038575,0.039619) (0.033139,0.010335) (0.043269,0.004963) (0.025336,0.014094) (0.034131,0.023287) (0.052511,0.037127) (0.050336,0.014094) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.2155_1_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.2155_1_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..525fafc62ff218f3d60ef985c2d90c771626a2b8 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.2155_1_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 7.286320e+00 -7.257001e-05 -4.461557e-03 +1.000000e-02 1.394007e+01 -1.387668e-04 -8.919231e-03 +1.500000e-02 1.825638e+01 -1.829116e-04 -1.348743e-02 +2.000000e-02 2.099228e+01 -2.116775e-04 -1.812176e-02 +2.500000e-02 2.315578e+01 -2.345141e-04 -2.275336e-02 +3.000000e-02 2.506238e+01 -2.544827e-04 -2.735927e-02 +3.500000e-02 2.679631e+01 -2.724671e-04 -3.193352e-02 +4.000000e-02 2.838915e+01 -2.888338e-04 -3.647414e-02 +4.500000e-02 2.985959e+01 -3.038114e-04 -4.098022e-02 +5.000000e-02 3.122135e+01 -3.175695e-04 -4.545123e-02 +5.500000e-02 3.248601e+01 -3.302501e-04 -4.988685e-02 +6.000000e-02 3.366358e+01 -3.419738e-04 -5.428686e-02 +6.500000e-02 3.476325e+01 -3.528489e-04 -5.865110e-02 +7.000000e-02 3.579333e+01 -3.629719e-04 -6.297950e-02 +7.500000e-02 3.676124e+01 -3.724283e-04 -6.727204e-02 +8.000000e-02 3.767394e+01 -3.812971e-04 -7.152873e-02 +8.500000e-02 3.853763e+01 -3.896479e-04 -7.574963e-02 +9.000000e-02 3.935765e+01 -3.975406e-04 -7.993487e-02 +9.500000e-02 4.013906e+01 -4.050531e-04 -8.408472e-02 +1.000000e-01 4.088604e+01 -4.121880e-04 -8.819911e-02 +volume fraction= 0.215513 +fiber_centers_YZ= (0.017036,0.027518) (0.002511,0.037127) (0.013575,0.039619) (0.008139,0.010335) (0.018269,0.004963) (0.000336,0.014094) (0.009131,0.023287) (0.042036,0.027518) (0.027511,0.037127) (0.038575,0.039619) (0.033139,0.010335) (0.043269,0.004963) (0.025336,0.014094) (0.034131,0.023287) (0.052511,0.037127) (0.050336,0.014094) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.2155_2_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.2155_2_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..7570642f6224516fcb0c017139acfdb5934f48f0 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.2155_2_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 2.178441e+02 -2.183689e-03 -2.206434e-03 +1.000000e-02 4.352065e+02 -4.351463e-03 -4.396852e-03 +1.500000e-02 6.519441e+02 -6.507875e-03 -6.575920e-03 +2.000000e-02 8.675451e+02 -8.668506e-03 -8.760072e-03 +2.500000e-02 1.081967e+03 -1.083503e-02 -1.095188e-02 +3.000000e-02 1.295681e+03 -1.299444e-02 -1.313758e-02 +3.500000e-02 1.508905e+03 -1.514050e-02 -1.531030e-02 +4.000000e-02 1.721682e+03 -1.727232e-02 -1.746900e-02 +4.500000e-02 1.934030e+03 -1.938957e-02 -1.961332e-02 +5.000000e-02 2.145945e+03 -2.149280e-02 -2.174379e-02 +5.500000e-02 2.357431e+03 -2.358209e-02 -2.386048e-02 +6.000000e-02 2.568508e+03 -2.565694e-02 -2.596287e-02 +6.500000e-02 2.779165e+03 -2.771810e-02 -2.805172e-02 +7.000000e-02 2.989406e+03 -2.976565e-02 -3.012708e-02 +7.500000e-02 3.199250e+03 -3.179922e-02 -3.218858e-02 +8.000000e-02 3.408680e+03 -3.381952e-02 -3.423693e-02 +8.500000e-02 3.617719e+03 -3.582620e-02 -3.627180e-02 +9.000000e-02 3.826353e+03 -3.782012e-02 -3.829405e-02 +9.500000e-02 4.034597e+03 -3.980007e-02 -4.030232e-02 +1.000000e-01 4.242451e+03 -4.176743e-02 -4.229819e-02 +volume fraction= 0.215513 +fiber_centers_YZ= (0.013685,0.005883) (0.009428,0.029367) (0.017368,0.039730) (0.010789,0.016267) (0.002145,0.039296) (0.018889,0.022585) (0.001301,0.005213) (0.038685,0.005883) (0.034428,0.029367) (0.042368,0.039730) (0.035789,0.016267) (0.027145,0.039296) (0.043889,0.022585) (0.026301,0.005213) (0.052145,0.039296) (0.051301,0.005213) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.2155_2_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.2155_2_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..49a1a7d0764c51dc509d2af1cddae212f7d11f2d --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.2155_2_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 3.749678e+00 +1.000000e-02 7.035726e+00 +1.500000e-02 9.090922e+00 +2.000000e-02 1.037589e+01 +2.500000e-02 1.137705e+01 +3.000000e-02 1.225230e+01 +3.500000e-02 1.304246e+01 +4.000000e-02 1.376319e+01 +4.500000e-02 1.442403e+01 +5.000000e-02 1.503232e+01 +5.500000e-02 1.559423e+01 +6.000000e-02 1.611518e+01 +6.500000e-02 1.660000e+01 +7.000000e-02 1.705299e+01 +7.500000e-02 1.747803e+01 +8.000000e-02 1.787861e+01 +8.500000e-02 1.825788e+01 +9.000000e-02 1.861869e+01 +9.500000e-02 1.896359e+01 +1.000000e-01 1.929490e+01 +volume fraction= 0.215513 +fiber_centers_YZ= (0.013685,0.005883) (0.009428,0.029367) (0.017368,0.039730) (0.010789,0.016267) (0.002145,0.039296) (0.018889,0.022585) (0.001301,0.005213) (0.038685,0.005883) (0.034428,0.029367) (0.042368,0.039730) (0.035789,0.016267) (0.027145,0.039296) (0.043889,0.022585) (0.026301,0.005213) (0.052145,0.039296) (0.051301,0.005213) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.2155_2_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.2155_2_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..32c7115ebd3206355f4ea9bb4d046383193970c8 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.2155_2_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 7.557735e+00 -7.573147e-05 -4.433629e-03 +1.000000e-02 1.433275e+01 -1.437334e-04 -8.872497e-03 +1.500000e-02 1.872942e+01 -1.890971e-04 -1.342871e-02 +2.000000e-02 2.156185e+01 -2.191675e-04 -1.805170e-02 +2.500000e-02 2.381467e+01 -2.432295e-04 -2.267246e-02 +3.000000e-02 2.579465e+01 -2.642562e-04 -2.726905e-02 +3.500000e-02 2.758764e+01 -2.831407e-04 -3.183544e-02 +4.000000e-02 2.922823e+01 -3.002775e-04 -3.636941e-02 +4.500000e-02 3.073676e+01 -3.159128e-04 -4.086986e-02 +5.000000e-02 3.212860e+01 -3.302343e-04 -4.533611e-02 +5.500000e-02 3.341684e+01 -3.434004e-04 -4.976765e-02 +6.000000e-02 3.461252e+01 -3.555426e-04 -5.416419e-02 +6.500000e-02 3.572509e+01 -3.667735e-04 -5.852551e-02 +7.000000e-02 3.676336e+01 -3.771946e-04 -6.285150e-02 +7.500000e-02 3.773499e+01 -3.868946e-04 -6.714210e-02 +8.000000e-02 3.864689e+01 -3.959521e-04 -7.139730e-02 +8.500000e-02 3.950539e+01 -4.044380e-04 -7.561716e-02 +9.000000e-02 4.031629e+01 -4.124167e-04 -7.980176e-02 +9.500000e-02 4.108455e+01 -4.199436e-04 -8.395123e-02 +1.000000e-01 4.181481e+01 -4.270691e-04 -8.806575e-02 +volume fraction= 0.215513 +fiber_centers_YZ= (0.013685,0.005883) (0.009428,0.029367) (0.017368,0.039730) (0.010789,0.016267) (0.002145,0.039296) (0.018889,0.022585) (0.001301,0.005213) (0.038685,0.005883) (0.034428,0.029367) (0.042368,0.039730) (0.035789,0.016267) (0.027145,0.039296) (0.043889,0.022585) (0.026301,0.005213) (0.052145,0.039296) (0.051301,0.005213) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.2155_3_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.2155_3_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..6e5f39f5a4d517f51ea6b2e86907ee4f46c0cffa --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.2155_3_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 2.178475e+02 -2.186513e-03 -2.203805e-03 +1.000000e-02 4.352135e+02 -4.357112e-03 -4.391589e-03 +1.500000e-02 6.519549e+02 -6.516370e-03 -6.567986e-03 +2.000000e-02 8.675598e+02 -8.680058e-03 -8.749209e-03 +2.500000e-02 1.081985e+03 -1.085007e-02 -1.093762e-02 +3.000000e-02 1.295703e+03 -1.301326e-02 -1.311964e-02 +3.500000e-02 1.508931e+03 -1.516323e-02 -1.528853e-02 +4.000000e-02 1.721712e+03 -1.729907e-02 -1.744330e-02 +4.500000e-02 1.934065e+03 -1.942044e-02 -1.958358e-02 +5.000000e-02 2.145983e+03 -2.152787e-02 -2.170992e-02 +5.500000e-02 2.357473e+03 -2.362165e-02 -2.382261e-02 +6.000000e-02 2.568550e+03 -2.570085e-02 -2.592066e-02 +6.500000e-02 2.779216e+03 -2.776630e-02 -2.800495e-02 +7.000000e-02 2.989461e+03 -2.981838e-02 -3.007584e-02 +7.500000e-02 3.199308e+03 -3.185657e-02 -3.213280e-02 +8.000000e-02 3.408742e+03 -3.388163e-02 -3.417662e-02 +8.500000e-02 3.617785e+03 -3.589301e-02 -3.620670e-02 +9.000000e-02 3.826423e+03 -3.789195e-02 -3.822435e-02 +9.500000e-02 4.034672e+03 -3.987700e-02 -4.022803e-02 +1.000000e-01 4.242529e+03 -4.184972e-02 -4.221937e-02 +volume fraction= 0.215513 +fiber_centers_YZ= (0.011831,0.005758) (0.007619,0.028165) (0.004083,0.039896) (0.000104,0.015820) (0.010460,0.017838) (0.020118,0.024590) (0.015527,0.040871) (0.036831,0.005758) (0.032619,0.028165) (0.029083,0.039896) (0.025104,0.015820) (0.035460,0.017838) (0.045118,0.024590) (0.040527,0.040871) (0.050104,0.015820) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.2155_3_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.2155_3_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..c22c7cf4f55054ab3ac607b80970beda8289e4af --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.2155_3_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 3.745580e+00 +1.000000e-02 7.015756e+00 +1.500000e-02 9.054713e+00 +2.000000e-02 1.033547e+01 +2.500000e-02 1.133145e+01 +3.000000e-02 1.220107e+01 +3.500000e-02 1.298556e+01 +4.000000e-02 1.370066e+01 +4.500000e-02 1.435586e+01 +5.000000e-02 1.495846e+01 +5.500000e-02 1.551460e+01 +6.000000e-02 1.602968e+01 +6.500000e-02 1.650846e+01 +7.000000e-02 1.695524e+01 +7.500000e-02 1.737388e+01 +8.000000e-02 1.776786e+01 +8.500000e-02 1.814030e+01 +9.000000e-02 1.849403e+01 +9.500000e-02 1.883164e+01 +1.000000e-01 1.915547e+01 +volume fraction= 0.215513 +fiber_centers_YZ= (0.011831,0.005758) (0.007619,0.028165) (0.004083,0.039896) (0.000104,0.015820) (0.010460,0.017838) (0.020118,0.024590) (0.015527,0.040871) (0.036831,0.005758) (0.032619,0.028165) (0.029083,0.039896) (0.025104,0.015820) (0.035460,0.017838) (0.045118,0.024590) (0.040527,0.040871) (0.050104,0.015820) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.2155_3_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.2155_3_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..c42754d7526fbce540e484113f49c47521803f48 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.2155_3_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 7.822113e+00 -7.849323e-05 -4.412473e-03 +1.000000e-02 1.474260e+01 -1.481190e-04 -8.838691e-03 +1.500000e-02 1.923159e+01 -1.945933e-04 -1.338459e-02 +2.000000e-02 2.218162e+01 -2.259374e-04 -1.799746e-02 +2.500000e-02 2.452489e+01 -2.510093e-04 -2.261038e-02 +3.000000e-02 2.657515e+01 -2.728653e-04 -2.720020e-02 +3.500000e-02 2.842807e+01 -2.925177e-04 -3.176025e-02 +4.000000e-02 3.012327e+01 -3.103345e-04 -3.628789e-02 +4.500000e-02 3.168256e+01 -3.266087e-04 -4.078202e-02 +5.000000e-02 3.312247e+01 -3.415402e-04 -4.524191e-02 +5.500000e-02 3.445698e+01 -3.552968e-04 -4.966698e-02 +6.000000e-02 3.569803e+01 -3.680199e-04 -5.405685e-02 +6.500000e-02 3.685622e+01 -3.798336e-04 -5.841122e-02 +7.000000e-02 3.794041e+01 -3.908418e-04 -6.272993e-02 +7.500000e-02 3.895857e+01 -4.011358e-04 -6.701286e-02 +8.000000e-02 3.991805e+01 -4.107987e-04 -7.125998e-02 +8.500000e-02 4.082557e+01 -4.199055e-04 -7.547126e-02 +9.000000e-02 4.168715e+01 -4.285231e-04 -7.964675e-02 +9.500000e-02 4.250801e+01 -4.367092e-04 -8.378652e-02 +1.000000e-01 4.329286e+01 -4.445155e-04 -8.789071e-02 +volume fraction= 0.215513 +fiber_centers_YZ= (0.011831,0.005758) (0.007619,0.028165) (0.004083,0.039896) (0.000104,0.015820) (0.010460,0.017838) (0.020118,0.024590) (0.015527,0.040871) (0.036831,0.005758) (0.032619,0.028165) (0.029083,0.039896) (0.025104,0.015820) (0.035460,0.017838) (0.045118,0.024590) (0.040527,0.040871) (0.050104,0.015820) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.2155_4_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.2155_4_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..5d89b421c307c21fb76c21885cbe621b788d02f5 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.2155_4_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 2.178472e+02 -2.199787e-03 -2.190225e-03 +1.000000e-02 4.352127e+02 -4.383578e-03 -4.364516e-03 +1.500000e-02 6.519534e+02 -6.555993e-03 -6.527475e-03 +2.000000e-02 8.675573e+02 -8.733155e-03 -8.695005e-03 +2.500000e-02 1.081982e+03 -1.091732e-02 -1.086909e-02 +3.000000e-02 1.295699e+03 -1.309500e-02 -1.303645e-02 +3.500000e-02 1.508925e+03 -1.525954e-02 -1.519063e-02 +4.000000e-02 1.721706e+03 -1.740995e-02 -1.733067e-02 +4.500000e-02 1.934056e+03 -1.954589e-02 -1.945625e-02 +5.000000e-02 2.145974e+03 -2.166788e-02 -2.156788e-02 +5.500000e-02 2.357468e+03 -2.377581e-02 -2.366546e-02 +6.000000e-02 2.568538e+03 -2.586999e-02 -2.574930e-02 +6.500000e-02 2.779202e+03 -2.794992e-02 -2.781891e-02 +7.000000e-02 2.989450e+03 -3.001634e-02 -2.987501e-02 +7.500000e-02 3.199292e+03 -3.206918e-02 -3.191754e-02 +8.000000e-02 3.408725e+03 -3.410877e-02 -3.394682e-02 +8.500000e-02 3.617766e+03 -3.613453e-02 -3.596230e-02 +9.000000e-02 3.826404e+03 -3.814741e-02 -3.796489e-02 +9.500000e-02 4.034654e+03 -4.014693e-02 -3.995414e-02 +1.000000e-01 4.242508e+03 -4.213368e-02 -4.193063e-02 +volume fraction= 0.215513 +fiber_centers_YZ= (0.015753,0.009729) (0.007691,0.016919) (0.007308,0.006878) (0.010610,0.037217) (0.012315,0.026873) (0.000615,0.030461) (0.020472,0.045532) (0.040753,0.009729) (0.032691,0.016919) (0.032308,0.006878) (0.035610,0.037217) (0.037315,0.026873) (0.025615,0.030461) (0.045472,0.045532) (0.050615,0.030461) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.2155_4_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.2155_4_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..1a1d747b160cdb6b966a1e608006a6342abafe56 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.2155_4_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 3.687761e+00 +1.000000e-02 6.972763e+00 +1.500000e-02 9.018226e+00 +2.000000e-02 1.027248e+01 +2.500000e-02 1.125342e+01 +3.000000e-02 1.211403e+01 +3.500000e-02 1.289229e+01 +4.000000e-02 1.360263e+01 +4.500000e-02 1.425393e+01 +5.000000e-02 1.485306e+01 +5.500000e-02 1.540594e+01 +6.000000e-02 1.591778e+01 +6.500000e-02 1.639328e+01 +7.000000e-02 1.683663e+01 +7.500000e-02 1.725164e+01 +8.000000e-02 1.764175e+01 +8.500000e-02 1.801003e+01 +9.000000e-02 1.835932e+01 +9.500000e-02 1.869217e+01 +1.000000e-01 1.901090e+01 +volume fraction= 0.215513 +fiber_centers_YZ= (0.015753,0.009729) (0.007691,0.016919) (0.007308,0.006878) (0.010610,0.037217) (0.012315,0.026873) (0.000615,0.030461) (0.020472,0.045532) (0.040753,0.009729) (0.032691,0.016919) (0.032308,0.006878) (0.035610,0.037217) (0.037315,0.026873) (0.025615,0.030461) (0.045472,0.045532) (0.050615,0.030461) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.2155_4_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.2155_4_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..042bfc63593de9141435589cd39affd53d1d0eeb --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.2155_4_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 7.619207e+00 -7.690803e-05 -4.418106e-03 +1.000000e-02 1.448578e+01 -1.460216e-04 -8.846401e-03 +1.500000e-02 1.899922e+01 -1.923186e-04 -1.339731e-02 +2.000000e-02 2.191834e+01 -2.231789e-04 -1.801569e-02 +2.500000e-02 2.423135e+01 -2.479159e-04 -2.263157e-02 +3.000000e-02 2.627091e+01 -2.696455e-04 -2.722245e-02 +3.500000e-02 2.812746e+01 -2.892669e-04 -3.178260e-02 +4.000000e-02 2.983443e+01 -3.071560e-04 -3.631005e-02 +4.500000e-02 3.141160e+01 -3.235546e-04 -4.080374e-02 +5.000000e-02 3.287449e+01 -3.386553e-04 -4.526294e-02 +5.500000e-02 3.423590e+01 -3.526168e-04 -4.968711e-02 +6.000000e-02 3.550632e+01 -3.655684e-04 -5.407593e-02 +6.500000e-02 3.669574e+01 -3.776293e-04 -5.842909e-02 +7.000000e-02 3.781239e+01 -3.889346e-04 -6.274661e-02 +7.500000e-02 3.886612e+01 -3.995207e-04 -6.702794e-02 +8.000000e-02 3.986303e+01 -4.094985e-04 -7.127324e-02 +8.500000e-02 4.080926e+01 -4.189385e-04 -7.548253e-02 +9.000000e-02 4.171038e+01 -4.279038e-04 -7.965585e-02 +9.500000e-02 4.257171e+01 -4.364540e-04 -8.379331e-02 +1.000000e-01 4.339807e+01 -4.446428e-04 -8.789499e-02 +volume fraction= 0.215513 +fiber_centers_YZ= (0.015753,0.009729) (0.007691,0.016919) (0.007308,0.006878) (0.010610,0.037217) (0.012315,0.026873) (0.000615,0.030461) (0.020472,0.045532) (0.040753,0.009729) (0.032691,0.016919) (0.032308,0.006878) (0.035610,0.037217) (0.037315,0.026873) (0.025615,0.030461) (0.045472,0.045532) (0.050615,0.030461) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.2155_5_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.2155_5_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..d1dcd009dd435034c7c98f4ea3ee401b21ca3aee --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.2155_5_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 2.178574e+02 -2.211241e-03 -2.178585e-03 +1.000000e-02 4.352330e+02 -4.406443e-03 -4.341282e-03 +1.500000e-02 6.519835e+02 -6.590354e-03 -6.492585e-03 +2.000000e-02 8.675970e+02 -8.779785e-03 -8.647751e-03 +2.500000e-02 1.082031e+03 -1.097743e-02 -1.080830e-02 +3.000000e-02 1.295758e+03 -1.316922e-02 -1.296149e-02 +3.500000e-02 1.508994e+03 -1.534816e-02 -1.510122e-02 +4.000000e-02 1.721784e+03 -1.751314e-02 -1.722665e-02 +4.500000e-02 1.934144e+03 -1.966381e-02 -1.933746e-02 +5.000000e-02 2.146071e+03 -2.180066e-02 -2.143419e-02 +5.500000e-02 2.357574e+03 -2.392358e-02 -2.351675e-02 +6.000000e-02 2.568658e+03 -2.603266e-02 -2.558526e-02 +6.500000e-02 2.779322e+03 -2.812816e-02 -2.764000e-02 +7.000000e-02 2.989585e+03 -3.020973e-02 -2.968062e-02 +7.500000e-02 3.199436e+03 -3.227798e-02 -3.170775e-02 +8.000000e-02 3.408879e+03 -3.433290e-02 -3.372140e-02 +8.500000e-02 3.617928e+03 -3.637435e-02 -3.572143e-02 +9.000000e-02 3.826575e+03 -3.840281e-02 -3.770835e-02 +9.500000e-02 4.034834e+03 -4.041810e-02 -3.968195e-02 +1.000000e-01 4.242692e+03 -4.242045e-02 -4.164258e-02 +volume fraction= 0.215513 +fiber_centers_YZ= (0.018802,0.037413) (0.006169,0.028326) (0.015373,0.007545) (0.017987,0.026778) (0.002253,0.006858) (0.008082,0.042031) (0.016899,0.017719) (0.043802,0.037413) (0.031169,0.028326) (0.040373,0.007545) (0.042987,0.026778) (0.027253,0.006858) (0.033082,0.042031) (0.041899,0.017719) (0.052253,0.006858) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.2155_5_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.2155_5_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..62fde4f7a53cb8a2bccdd4bb2c9584718e9bd3c1 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.2155_5_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 3.672059e+00 +1.000000e-02 6.918214e+00 +1.500000e-02 8.933409e+00 +2.000000e-02 1.018200e+01 +2.500000e-02 1.115501e+01 +3.000000e-02 1.200765e+01 +3.500000e-02 1.277828e+01 +4.000000e-02 1.348117e+01 +4.500000e-02 1.412511e+01 +5.000000e-02 1.471699e+01 +5.500000e-02 1.526271e+01 +6.000000e-02 1.576748e+01 +6.500000e-02 1.623595e+01 +7.000000e-02 1.667231e+01 +7.500000e-02 1.708032e+01 +8.000000e-02 1.746339e+01 +8.500000e-02 1.782464e+01 +9.000000e-02 1.816686e+01 +9.500000e-02 1.849263e+01 +1.000000e-01 1.880430e+01 +volume fraction= 0.215513 +fiber_centers_YZ= (0.018802,0.037413) (0.006169,0.028326) (0.015373,0.007545) (0.017987,0.026778) (0.002253,0.006858) (0.008082,0.042031) (0.016899,0.017719) (0.043802,0.037413) (0.031169,0.028326) (0.040373,0.007545) (0.042987,0.026778) (0.027253,0.006858) (0.033082,0.042031) (0.041899,0.017719) (0.052253,0.006858) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.2155_5_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.2155_5_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..fa76e4f95c91d72ebbe897ee67faeb4a1aacc2ff --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.2155_5_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 8.201448e+00 -8.324874e-05 -4.366647e-03 +1.000000e-02 1.544217e+01 -1.567699e-04 -8.757356e-03 +1.500000e-02 2.015233e+01 -2.058516e-04 -1.328206e-02 +2.000000e-02 2.333676e+01 -2.400654e-04 -1.787153e-02 +2.500000e-02 2.592434e+01 -2.681086e-04 -2.246025e-02 +3.000000e-02 2.821232e+01 -2.928608e-04 -2.702702e-02 +3.500000e-02 3.029487e+01 -3.152837e-04 -3.156517e-02 +4.000000e-02 3.221307e+01 -3.358311e-04 -3.607197e-02 +4.500000e-02 3.399103e+01 -3.547867e-04 -4.054596e-02 +5.000000e-02 3.564650e+01 -3.723642e-04 -4.498619e-02 +5.500000e-02 3.719428e+01 -3.887418e-04 -4.939196e-02 +6.000000e-02 3.864661e+01 -4.040669e-04 -5.376274e-02 +6.500000e-02 4.001442e+01 -4.184684e-04 -5.809813e-02 +7.000000e-02 4.130806e+01 -4.320308e-04 -6.239769e-02 +7.500000e-02 4.253527e+01 -4.449171e-04 -6.666138e-02 +8.000000e-02 4.370432e+01 -4.571853e-04 -7.088894e-02 +8.500000e-02 4.482198e+01 -4.689122e-04 -7.508025e-02 +9.000000e-02 4.589408e+01 -4.801639e-04 -7.923526e-02 +9.500000e-02 4.692590e+01 -4.909996e-04 -8.335396e-02 +1.000000e-01 4.792247e+01 -5.014752e-04 -8.743633e-02 +volume fraction= 0.215513 +fiber_centers_YZ= (0.018802,0.037413) (0.006169,0.028326) (0.015373,0.007545) (0.017987,0.026778) (0.002253,0.006858) (0.008082,0.042031) (0.016899,0.017719) (0.043802,0.037413) (0.031169,0.028326) (0.040373,0.007545) (0.042987,0.026778) (0.027253,0.006858) (0.033082,0.042031) (0.041899,0.017719) (0.052253,0.006858) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.3079_1_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.3079_1_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..782689daa1a5a2545bb8a66da377d4b434a076c9 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.3079_1_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 3.096895e+02 -2.111192e-03 -2.102994e-03 +1.000000e-02 6.185883e+02 -4.207203e-03 -4.190828e-03 +1.500000e-02 9.265735e+02 -6.292739e-03 -6.267513e-03 +2.000000e-02 1.233208e+03 -8.383067e-03 -8.347447e-03 +2.500000e-02 1.538476e+03 -1.047935e-02 -1.043282e-02 +3.000000e-02 1.842791e+03 -1.256924e-02 -1.251152e-02 +3.500000e-02 2.146346e+03 -1.464669e-02 -1.457757e-02 +4.000000e-02 2.449180e+03 -1.671080e-02 -1.663009e-02 +4.500000e-02 2.751306e+03 -1.876149e-02 -1.866904e-02 +5.000000e-02 3.052733e+03 -2.079867e-02 -2.069437e-02 +5.500000e-02 3.353467e+03 -2.282260e-02 -2.270632e-02 +6.000000e-02 3.653514e+03 -2.483330e-02 -2.470492e-02 +6.500000e-02 3.952885e+03 -2.683064e-02 -2.669010e-02 +7.000000e-02 4.251571e+03 -2.881547e-02 -2.866259e-02 +7.500000e-02 4.549597e+03 -3.078691e-02 -3.062169e-02 +8.000000e-02 4.846948e+03 -3.274599e-02 -3.256826e-02 +8.500000e-02 5.143651e+03 -3.469202e-02 -3.450179e-02 +9.000000e-02 5.439692e+03 -3.662596e-02 -3.642305e-02 +9.500000e-02 5.735084e+03 -3.854707e-02 -3.833146e-02 +1.000000e-01 6.029839e+03 -4.045569e-02 -4.022736e-02 +volume fraction= 0.307876 +fiber_centers_YZ= (0.016091,0.007156) (0.007983,0.030747) (0.015540,0.032727) (0.005918,0.043270) (0.004559,0.015036) (0.016730,0.015471) (0.019107,0.043869) (0.002578,0.007493) (0.012864,0.022411) (0.000522,0.034035) (0.041091,0.007156) (0.032983,0.030747) (0.040540,0.032727) (0.030918,0.043270) (0.029559,0.015036) (0.041730,0.015471) (0.044107,0.043869) (0.027578,0.007493) (0.037864,0.022411) (0.025522,0.034035) (0.052578,0.007493) (0.050522,0.034035) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.3079_1_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.3079_1_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..497f2cc06b156d7544838ea044d04bf55164144a --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.3079_1_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 4.684055e+00 +1.000000e-02 8.181754e+00 +1.500000e-02 1.024328e+01 +2.000000e-02 1.160673e+01 +2.500000e-02 1.270877e+01 +3.000000e-02 1.366986e+01 +3.500000e-02 1.452786e+01 +4.000000e-02 1.530195e+01 +4.500000e-02 1.600544e+01 +5.000000e-02 1.664882e+01 +5.500000e-02 1.724077e+01 +6.000000e-02 1.778676e+01 +6.500000e-02 1.829660e+01 +7.000000e-02 1.877417e+01 +7.500000e-02 1.922438e+01 +8.000000e-02 1.965152e+01 +8.500000e-02 2.005949e+01 +9.000000e-02 2.045176e+01 +9.500000e-02 2.083150e+01 +1.000000e-01 2.120154e+01 +volume fraction= 0.307876 +fiber_centers_YZ= (0.016091,0.007156) (0.007983,0.030747) (0.015540,0.032727) (0.005918,0.043270) (0.004559,0.015036) (0.016730,0.015471) (0.019107,0.043869) (0.002578,0.007493) (0.012864,0.022411) (0.000522,0.034035) (0.041091,0.007156) (0.032983,0.030747) (0.040540,0.032727) (0.030918,0.043270) (0.029559,0.015036) (0.041730,0.015471) (0.044107,0.043869) (0.027578,0.007493) (0.037864,0.022411) (0.025522,0.034035) (0.052578,0.007493) (0.050522,0.034035) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.3079_1_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.3079_1_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..56b4acfcfac6667d9057a3c1ace1d1bdf19c75ee --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.3079_1_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.155199e+01 -7.889273e-05 -4.253139e-03 +1.000000e-02 2.035728e+01 -1.401625e-04 -8.609537e-03 +1.500000e-02 2.598578e+01 -1.805075e-04 -1.311493e-02 +2.000000e-02 3.020892e+01 -2.112602e-04 -1.766669e-02 +2.500000e-02 3.377746e+01 -2.373696e-04 -2.221715e-02 +3.000000e-02 3.692992e+01 -2.604455e-04 -2.675096e-02 +3.500000e-02 3.976773e+01 -2.812005e-04 -3.126182e-02 +4.000000e-02 4.234890e+01 -3.000576e-04 -3.574635e-02 +4.500000e-02 4.471428e+01 -3.173206e-04 -4.020234e-02 +5.000000e-02 4.689505e+01 -3.332223e-04 -4.462822e-02 +5.500000e-02 4.891731e+01 -3.479565e-04 -4.902278e-02 +6.000000e-02 5.080212e+01 -3.616799e-04 -5.338515e-02 +6.500000e-02 5.256817e+01 -3.745301e-04 -5.771461e-02 +7.000000e-02 5.423133e+01 -3.866242e-04 -6.201059e-02 +7.500000e-02 5.580521e+01 -3.980618e-04 -6.627272e-02 +8.000000e-02 5.730090e+01 -4.089247e-04 -7.050072e-02 +8.500000e-02 5.872809e+01 -4.192840e-04 -7.469444e-02 +9.000000e-02 6.009515e+01 -4.292008e-04 -7.885379e-02 +9.500000e-02 6.140867e+01 -4.387449e-04 -8.297920e-02 +1.000000e-01 6.267566e+01 -4.479225e-04 -8.706988e-02 +volume fraction= 0.307876 +fiber_centers_YZ= (0.016091,0.007156) (0.007983,0.030747) (0.015540,0.032727) (0.005918,0.043270) (0.004559,0.015036) (0.016730,0.015471) (0.019107,0.043869) (0.002578,0.007493) (0.012864,0.022411) (0.000522,0.034035) (0.041091,0.007156) (0.032983,0.030747) (0.040540,0.032727) (0.030918,0.043270) (0.029559,0.015036) (0.041730,0.015471) (0.044107,0.043869) (0.027578,0.007493) (0.037864,0.022411) (0.025522,0.034035) (0.052578,0.007493) (0.050522,0.034035) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.3079_2_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.3079_2_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..10a2d995130a25b460c9a51f28c2fc42374b7725 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.3079_2_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 3.096753e+02 -2.107945e-03 -2.110143e-03 +1.000000e-02 6.185627e+02 -4.200729e-03 -4.205056e-03 +1.500000e-02 9.265392e+02 -6.282791e-03 -6.288871e-03 +2.000000e-02 1.233167e+03 -8.369273e-03 -8.375856e-03 +2.500000e-02 1.538428e+03 -1.046183e-02 -1.046781e-02 +3.000000e-02 1.842740e+03 -1.254801e-02 -1.255285e-02 +3.500000e-02 2.146292e+03 -1.462174e-02 -1.462507e-02 +4.000000e-02 2.449127e+03 -1.668215e-02 -1.668364e-02 +4.500000e-02 2.751255e+03 -1.872916e-02 -1.872850e-02 +5.000000e-02 3.052684e+03 -2.076269e-02 -2.075960e-02 +5.500000e-02 3.353429e+03 -2.278276e-02 -2.277696e-02 +6.000000e-02 3.653474e+03 -2.479063e-02 -2.478178e-02 +6.500000e-02 3.952851e+03 -2.678415e-02 -2.677212e-02 +7.000000e-02 4.251547e+03 -2.876523e-02 -2.874975e-02 +7.500000e-02 4.549584e+03 -3.073328e-02 -3.071409e-02 +8.000000e-02 4.846948e+03 -3.268883e-02 -3.266574e-02 +8.500000e-02 5.143656e+03 -3.463208e-02 -3.460481e-02 +9.000000e-02 5.439713e+03 -3.656241e-02 -3.653079e-02 +9.500000e-02 5.735121e+03 -3.848027e-02 -3.844412e-02 +1.000000e-01 6.029886e+03 -4.038580e-02 -4.034495e-02 +volume fraction= 0.307876 +fiber_centers_YZ= (0.011407,0.012536) (0.012042,0.025734) (0.001826,0.010511) (0.000075,0.030859) (0.000460,0.020979) (0.014482,0.041024) (0.003143,0.039885) (0.019847,0.005768) (0.016297,0.018670) (0.011150,0.004606) (0.036407,0.012536) (0.037042,0.025734) (0.026826,0.010511) (0.025075,0.030859) (0.025460,0.020979) (0.039482,0.041024) (0.028143,0.039885) (0.044847,0.005768) (0.041297,0.018670) (0.036150,0.004606) (0.051826,0.010511) (0.050075,0.030859) (0.050460,0.020979) (0.053143,0.039885) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.3079_2_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.3079_2_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..8d4349c7a7274dc6fd763556643a6b8c0f2753c0 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.3079_2_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 4.647151e+00 +1.000000e-02 8.168199e+00 +1.500000e-02 1.020947e+01 +2.000000e-02 1.157616e+01 +2.500000e-02 1.268012e+01 +3.000000e-02 1.363981e+01 +3.500000e-02 1.449349e+01 +4.000000e-02 1.526068e+01 +4.500000e-02 1.595513e+01 +5.000000e-02 1.658786e+01 +5.500000e-02 1.716811e+01 +6.000000e-02 1.770381e+01 +6.500000e-02 1.820179e+01 +7.000000e-02 1.866800e+01 +7.500000e-02 1.910759e+01 +8.000000e-02 1.952506e+01 +8.500000e-02 1.992436e+01 +9.000000e-02 2.030894e+01 +9.500000e-02 2.068179e+01 +1.000000e-01 2.104558e+01 +volume fraction= 0.307876 +fiber_centers_YZ= (0.011407,0.012536) (0.012042,0.025734) (0.001826,0.010511) (0.000075,0.030859) (0.000460,0.020979) (0.014482,0.041024) (0.003143,0.039885) (0.019847,0.005768) (0.016297,0.018670) (0.011150,0.004606) (0.036407,0.012536) (0.037042,0.025734) (0.026826,0.010511) (0.025075,0.030859) (0.025460,0.020979) (0.039482,0.041024) (0.028143,0.039885) (0.044847,0.005768) (0.041297,0.018670) (0.036150,0.004606) (0.051826,0.010511) (0.050075,0.030859) (0.050460,0.020979) (0.053143,0.039885) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.3079_2_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.3079_2_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..70eea158d423ea5bde86ca3dc93a9a7eab5cb11f --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.3079_2_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.054234e+01 -7.179058e-05 -4.320913e-03 +1.000000e-02 1.888352e+01 -1.290003e-04 -8.725702e-03 +1.500000e-02 2.401826e+01 -1.652916e-04 -1.327523e-02 +2.000000e-02 2.775612e+01 -1.921586e-04 -1.786727e-02 +2.500000e-02 3.090881e+01 -2.148542e-04 -2.245256e-02 +3.000000e-02 3.371865e+01 -2.350149e-04 -2.701581e-02 +3.500000e-02 3.627601e+01 -2.532890e-04 -3.155152e-02 +4.000000e-02 3.863064e+01 -2.700499e-04 -3.605691e-02 +4.500000e-02 4.081832e+01 -2.855708e-04 -4.053010e-02 +5.000000e-02 4.286707e+01 -3.000673e-04 -4.496979e-02 +5.500000e-02 4.480038e+01 -3.137187e-04 -4.937496e-02 +6.000000e-02 4.663769e+01 -3.266736e-04 -5.374486e-02 +6.500000e-02 4.839608e+01 -3.390614e-04 -5.807890e-02 +7.000000e-02 5.009023e+01 -3.509930e-04 -6.237662e-02 +7.500000e-02 5.173227e+01 -3.625603e-04 -6.663776e-02 +8.000000e-02 5.333272e+01 -3.738426e-04 -7.086213e-02 +8.500000e-02 5.490495e+01 -3.849333e-04 -7.505007e-02 +9.000000e-02 5.644689e+01 -3.958324e-04 -7.920079e-02 +9.500000e-02 5.797001e+01 -4.066182e-04 -8.331474e-02 +1.000000e-01 5.947959e+01 -4.173310e-04 -8.739207e-02 +volume fraction= 0.307876 +fiber_centers_YZ= (0.011407,0.012536) (0.012042,0.025734) (0.001826,0.010511) (0.000075,0.030859) (0.000460,0.020979) (0.014482,0.041024) (0.003143,0.039885) (0.019847,0.005768) (0.016297,0.018670) (0.011150,0.004606) (0.036407,0.012536) (0.037042,0.025734) (0.026826,0.010511) (0.025075,0.030859) (0.025460,0.020979) (0.039482,0.041024) (0.028143,0.039885) (0.044847,0.005768) (0.041297,0.018670) (0.036150,0.004606) (0.051826,0.010511) (0.050075,0.030859) (0.050460,0.020979) (0.053143,0.039885) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.3079_3_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.3079_3_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..3512f9df3f93690322235df18495f549bfcc503f --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.3079_3_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 3.096680e+02 -2.066361e-03 -2.152694e-03 +1.000000e-02 6.185487e+02 -4.117782e-03 -4.289921e-03 +1.500000e-02 9.265193e+02 -6.158117e-03 -6.416350e-03 +2.000000e-02 1.233141e+03 -8.200113e-03 -8.548549e-03 +2.500000e-02 1.538398e+03 -1.024456e-02 -1.068920e-02 +3.000000e-02 1.842705e+03 -1.228091e-02 -1.282460e-02 +3.500000e-02 2.146259e+03 -1.430391e-02 -1.494750e-02 +4.000000e-02 2.449090e+03 -1.631342e-02 -1.705740e-02 +4.500000e-02 2.751214e+03 -1.830917e-02 -1.915386e-02 +5.000000e-02 3.052641e+03 -2.029126e-02 -2.123691e-02 +5.500000e-02 3.353369e+03 -2.226041e-02 -2.330745e-02 +6.000000e-02 3.653422e+03 -2.421514e-02 -2.536334e-02 +6.500000e-02 3.952796e+03 -2.615685e-02 -2.740644e-02 +7.000000e-02 4.251489e+03 -2.808593e-02 -2.943718e-02 +7.500000e-02 4.549515e+03 -3.000146e-02 -3.145412e-02 +8.000000e-02 4.846881e+03 -3.190436e-02 -3.345868e-02 +8.500000e-02 5.143595e+03 -3.379423e-02 -3.545019e-02 +9.000000e-02 5.439642e+03 -3.567174e-02 -3.742926e-02 +9.500000e-02 5.735053e+03 -3.753669e-02 -3.939586e-02 +1.000000e-01 6.029817e+03 -3.938984e-02 -4.135095e-02 +volume fraction= 0.307876 +fiber_centers_YZ= (0.009303,0.031797) (0.002340,0.018244) (0.009978,0.021209) (0.001414,0.006223) (0.014464,0.043299) (0.001444,0.041361) (0.018962,0.008201) (0.017154,0.027003) (0.001204,0.027387) (0.019672,0.035347) (0.034303,0.031797) (0.027340,0.018244) (0.034978,0.021209) (0.026414,0.006223) (0.039464,0.043299) (0.026444,0.041361) (0.043962,0.008201) (0.042154,0.027003) (0.026204,0.027387) (0.044672,0.035347) (0.052340,0.018244) (0.051414,0.006223) (0.051444,0.041361) (0.051204,0.027387) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.3079_3_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.3079_3_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..90e8c1e026a55879901a67b75e1a60a77ab6b9c5 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.3079_3_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 4.815523e+00 +1.000000e-02 8.403716e+00 +1.500000e-02 1.049348e+01 +2.000000e-02 1.190100e+01 +2.500000e-02 1.304073e+01 +3.000000e-02 1.403044e+01 +3.500000e-02 1.491066e+01 +4.000000e-02 1.570260e+01 +4.500000e-02 1.642107e+01 +5.000000e-02 1.707775e+01 +5.500000e-02 1.768229e+01 +6.000000e-02 1.824639e+01 +6.500000e-02 1.876975e+01 +7.000000e-02 1.926183e+01 +7.500000e-02 1.972768e+01 +8.000000e-02 2.017166e+01 +8.500000e-02 2.059754e+01 +9.000000e-02 2.100863e+01 +9.500000e-02 2.140778e+01 +1.000000e-01 2.179754e+01 +volume fraction= 0.307876 +fiber_centers_YZ= (0.009303,0.031797) (0.002340,0.018244) (0.009978,0.021209) (0.001414,0.006223) (0.014464,0.043299) (0.001444,0.041361) (0.018962,0.008201) (0.017154,0.027003) (0.001204,0.027387) (0.019672,0.035347) (0.034303,0.031797) (0.027340,0.018244) (0.034978,0.021209) (0.026414,0.006223) (0.039464,0.043299) (0.026444,0.041361) (0.043962,0.008201) (0.042154,0.027003) (0.026204,0.027387) (0.044672,0.035347) (0.052340,0.018244) (0.051414,0.006223) (0.051444,0.041361) (0.051204,0.027387) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.3079_3_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.3079_3_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..352afb216cc454f921939d46484be65109663256 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.3079_3_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 9.865074e+00 -6.585399e-05 -4.399348e-03 +1.000000e-02 1.765818e+01 -1.184264e-04 -8.861030e-03 +1.500000e-02 2.233242e+01 -1.509181e-04 -1.345295e-02 +2.000000e-02 2.567504e+01 -1.744198e-04 -1.808205e-02 +2.500000e-02 2.846489e+01 -1.939873e-04 -2.270132e-02 +3.000000e-02 3.093220e+01 -2.111907e-04 -2.729600e-02 +3.500000e-02 3.316007e+01 -2.266313e-04 -3.186108e-02 +4.000000e-02 3.519286e+01 -2.406444e-04 -3.639423e-02 +4.500000e-02 3.706266e+01 -2.534743e-04 -4.089395e-02 +5.000000e-02 3.879475e+01 -2.653122e-04 -4.535922e-02 +5.500000e-02 4.041057e+01 -2.763186e-04 -4.978928e-02 +6.000000e-02 4.192885e+01 -2.866317e-04 -5.418355e-02 +6.500000e-02 4.336544e+01 -2.963676e-04 -5.854160e-02 +7.000000e-02 4.473406e+01 -3.056268e-04 -6.286315e-02 +7.500000e-02 4.604639e+01 -3.144945e-04 -6.714802e-02 +8.000000e-02 4.731287e+01 -3.230462e-04 -7.139612e-02 +8.500000e-02 4.854233e+01 -3.313462e-04 -7.560742e-02 +9.000000e-02 4.974242e+01 -3.394498e-04 -7.978199e-02 +9.500000e-02 5.091922e+01 -3.474015e-04 -8.391994e-02 +1.000000e-01 5.207813e+01 -3.552405e-04 -8.802146e-02 +volume fraction= 0.307876 +fiber_centers_YZ= (0.009303,0.031797) (0.002340,0.018244) (0.009978,0.021209) (0.001414,0.006223) (0.014464,0.043299) (0.001444,0.041361) (0.018962,0.008201) (0.017154,0.027003) (0.001204,0.027387) (0.019672,0.035347) (0.034303,0.031797) (0.027340,0.018244) (0.034978,0.021209) (0.026414,0.006223) (0.039464,0.043299) (0.026444,0.041361) (0.043962,0.008201) (0.042154,0.027003) (0.026204,0.027387) (0.044672,0.035347) (0.052340,0.018244) (0.051414,0.006223) (0.051444,0.041361) (0.051204,0.027387) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.3079_4_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.3079_4_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..e454043330c78c0be0dbc0d2c04a1ec307606bc0 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.3079_4_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 3.096662e+02 -2.045958e-03 -2.170816e-03 +1.000000e-02 6.185436e+02 -4.077011e-03 -4.326165e-03 +1.500000e-02 9.265091e+02 -6.096957e-03 -6.470883e-03 +2.000000e-02 1.233125e+03 -8.117181e-03 -8.623146e-03 +2.500000e-02 1.538374e+03 -1.013705e-02 -1.078699e-02 +3.000000e-02 1.842673e+03 -1.214725e-02 -1.294729e-02 +3.500000e-02 2.146213e+03 -1.414371e-02 -1.509609e-02 +4.000000e-02 2.449039e+03 -1.612580e-02 -1.723182e-02 +4.500000e-02 2.751153e+03 -1.809399e-02 -1.935480e-02 +5.000000e-02 3.052569e+03 -2.004821e-02 -2.146474e-02 +5.500000e-02 3.353287e+03 -2.198882e-02 -2.356185e-02 +6.000000e-02 3.653331e+03 -2.391537e-02 -2.564564e-02 +6.500000e-02 3.952689e+03 -2.582860e-02 -2.771676e-02 +7.000000e-02 4.251369e+03 -2.772862e-02 -2.977529e-02 +7.500000e-02 4.549388e+03 -2.961513e-02 -3.182064e-02 +8.000000e-02 4.846736e+03 -3.148884e-02 -3.385375e-02 +8.500000e-02 5.143429e+03 -3.334968e-02 -3.587466e-02 +9.000000e-02 5.439470e+03 -3.519751e-02 -3.788255e-02 +9.500000e-02 5.734862e+03 -3.703266e-02 -3.987794e-02 +1.000000e-01 6.029611e+03 -3.885530e-02 -4.186108e-02 +volume fraction= 0.307876 +fiber_centers_YZ= (0.019640,0.031838) (0.010410,0.016955) (0.002652,0.031031) (0.003302,0.007075) (0.019212,0.004519) (0.006630,0.043598) (0.000251,0.023510) (0.008241,0.025147) (0.019650,0.044012) (0.016606,0.021672) (0.044640,0.031838) (0.035410,0.016955) (0.027652,0.031031) (0.028302,0.007075) (0.044212,0.004519) (0.031630,0.043598) (0.025251,0.023510) (0.033241,0.025147) (0.044650,0.044012) (0.041606,0.021672) (0.052652,0.031031) (0.053302,0.007075) (0.050251,0.023510) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.3079_4_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.3079_4_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..2b9fb063e6dab130098da969d22c10c0457466b1 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.3079_4_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 4.922679e+00 +1.000000e-02 8.421733e+00 +1.500000e-02 1.053596e+01 +2.000000e-02 1.194322e+01 +2.500000e-02 1.307247e+01 +3.000000e-02 1.405167e+01 +3.500000e-02 1.492288e+01 +4.000000e-02 1.570807e+01 +4.500000e-02 1.642256e+01 +5.000000e-02 1.707828e+01 +5.500000e-02 1.768492e+01 +6.000000e-02 1.825047e+01 +6.500000e-02 1.878158e+01 +7.000000e-02 1.928382e+01 +7.500000e-02 1.976192e+01 +8.000000e-02 2.021990e+01 +8.500000e-02 2.066124e+01 +9.000000e-02 2.108891e+01 +9.500000e-02 2.150556e+01 +1.000000e-01 2.191353e+01 +volume fraction= 0.307876 +fiber_centers_YZ= (0.019640,0.031838) (0.010410,0.016955) (0.002652,0.031031) (0.003302,0.007075) (0.019212,0.004519) (0.006630,0.043598) (0.000251,0.023510) (0.008241,0.025147) (0.019650,0.044012) (0.016606,0.021672) (0.044640,0.031838) (0.035410,0.016955) (0.027652,0.031031) (0.028302,0.007075) (0.044212,0.004519) (0.031630,0.043598) (0.025251,0.023510) (0.033241,0.025147) (0.044650,0.044012) (0.041606,0.021672) (0.052652,0.031031) (0.053302,0.007075) (0.050251,0.023510) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.3079_4_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.3079_4_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..f4abaddf2429cb8c067de62a7bf255f48b78258d --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.3079_4_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.114386e+01 -7.374959e-05 -4.343558e-03 +1.000000e-02 1.936839e+01 -1.294063e-04 -8.779080e-03 +1.500000e-02 2.458763e+01 -1.654799e-04 -1.334398e-02 +2.000000e-02 2.842169e+01 -1.922179e-04 -1.794910e-02 +2.500000e-02 3.164739e+01 -2.147160e-04 -2.254659e-02 +3.000000e-02 3.450510e+01 -2.346019e-04 -2.712151e-02 +3.500000e-02 3.709212e+01 -2.525546e-04 -3.166834e-02 +4.000000e-02 3.946365e+01 -2.689680e-04 -3.618431e-02 +4.500000e-02 4.165703e+01 -2.841121e-04 -4.066776e-02 +5.000000e-02 4.370113e+01 -2.981965e-04 -4.511754e-02 +5.500000e-02 4.561914e+01 -3.113900e-04 -4.953281e-02 +6.000000e-02 4.743078e+01 -3.238352e-04 -5.391294e-02 +6.500000e-02 4.915206e+01 -3.356483e-04 -5.825753e-02 +7.000000e-02 5.079641e+01 -3.469264e-04 -6.256630e-02 +7.500000e-02 5.237496e+01 -3.577497e-04 -6.683912e-02 +8.000000e-02 5.389722e+01 -3.681870e-04 -7.107593e-02 +8.500000e-02 5.537130e+01 -3.782962e-04 -7.527675e-02 +9.000000e-02 5.680443e+01 -3.881291e-04 -7.944168e-02 +9.500000e-02 5.820246e+01 -3.977268e-04 -8.357085e-02 +1.000000e-01 5.957050e+01 -4.071256e-04 -8.766447e-02 +volume fraction= 0.307876 +fiber_centers_YZ= (0.019640,0.031838) (0.010410,0.016955) (0.002652,0.031031) (0.003302,0.007075) (0.019212,0.004519) (0.006630,0.043598) (0.000251,0.023510) (0.008241,0.025147) (0.019650,0.044012) (0.016606,0.021672) (0.044640,0.031838) (0.035410,0.016955) (0.027652,0.031031) (0.028302,0.007075) (0.044212,0.004519) (0.031630,0.043598) (0.025251,0.023510) (0.033241,0.025147) (0.044650,0.044012) (0.041606,0.021672) (0.052652,0.031031) (0.053302,0.007075) (0.050251,0.023510) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.3079_5_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.3079_5_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..5d1918154a312fc7b296f004027016c54cdfca57 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.3079_5_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 3.096618e+02 -2.105464e-03 -2.114105e-03 +1.000000e-02 6.185368e+02 -4.195754e-03 -4.212972e-03 +1.500000e-02 9.265020e+02 -6.275064e-03 -6.300916e-03 +2.000000e-02 1.233119e+03 -8.357783e-03 -8.392814e-03 +2.500000e-02 1.538371e+03 -1.044561e-02 -1.049044e-02 +3.000000e-02 1.842673e+03 -1.252662e-02 -1.258148e-02 +3.500000e-02 2.146218e+03 -1.459492e-02 -1.465990e-02 +4.000000e-02 2.449044e+03 -1.664969e-02 -1.672483e-02 +4.500000e-02 2.751164e+03 -1.869085e-02 -1.877619e-02 +5.000000e-02 3.052587e+03 -2.071842e-02 -2.081397e-02 +5.500000e-02 3.353325e+03 -2.273232e-02 -2.283810e-02 +6.000000e-02 3.653371e+03 -2.473314e-02 -2.484917e-02 +6.500000e-02 3.952732e+03 -2.672094e-02 -2.684721e-02 +7.000000e-02 4.251432e+03 -2.869525e-02 -2.883177e-02 +7.500000e-02 4.549453e+03 -3.065741e-02 -3.080421e-02 +8.000000e-02 4.846816e+03 -3.260587e-02 -3.276290e-02 +8.500000e-02 5.143518e+03 -3.454143e-02 -3.470866e-02 +9.000000e-02 5.439577e+03 -3.646459e-02 -3.664206e-02 +9.500000e-02 5.734971e+03 -3.837536e-02 -3.856301e-02 +1.000000e-01 6.029739e+03 -4.027436e-02 -4.047222e-02 +volume fraction= 0.307876 +fiber_centers_YZ= (0.016148,0.017223) (0.008708,0.036706) (0.002994,0.004326) (0.010387,0.026288) (0.019316,0.031487) (0.017297,0.043821) (0.016710,0.008426) (0.002904,0.044264) (0.009465,0.012131) (0.000049,0.019343) (0.041148,0.017223) (0.033708,0.036706) (0.027994,0.004326) (0.035387,0.026288) (0.044316,0.031487) (0.042297,0.043821) (0.041710,0.008426) (0.027904,0.044264) (0.034465,0.012131) (0.025049,0.019343) (0.052994,0.004326) (0.052904,0.044264) (0.050049,0.019343) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.3079_5_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.3079_5_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..04c78ff8f78eac1c833c13847d35308f72f8554b --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.3079_5_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 4.598269e+00 +1.000000e-02 8.223685e+00 +1.500000e-02 1.025996e+01 +2.000000e-02 1.162026e+01 +2.500000e-02 1.273601e+01 +3.000000e-02 1.371304e+01 +3.500000e-02 1.458512e+01 +4.000000e-02 1.537024e+01 +4.500000e-02 1.608137e+01 +5.000000e-02 1.672904e+01 +5.500000e-02 1.732219e+01 +6.000000e-02 1.786854e+01 +6.500000e-02 1.837479e+01 +7.000000e-02 1.884680e+01 +7.500000e-02 1.928973e+01 +8.000000e-02 1.970812e+01 +8.500000e-02 2.010598e+01 +9.000000e-02 2.048685e+01 +9.500000e-02 2.085390e+01 +1.000000e-01 2.120987e+01 +volume fraction= 0.307876 +fiber_centers_YZ= (0.016148,0.017223) (0.008708,0.036706) (0.002994,0.004326) (0.010387,0.026288) (0.019316,0.031487) (0.017297,0.043821) (0.016710,0.008426) (0.002904,0.044264) (0.009465,0.012131) (0.000049,0.019343) (0.041148,0.017223) (0.033708,0.036706) (0.027994,0.004326) (0.035387,0.026288) (0.044316,0.031487) (0.042297,0.043821) (0.041710,0.008426) (0.027904,0.044264) (0.034465,0.012131) (0.025049,0.019343) (0.052994,0.004326) (0.052904,0.044264) (0.050049,0.019343) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.3079_5_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.3079_5_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..cf367f0113fac8de9472f89719d8509293274fe3 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.3079_5_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 9.216426e+00 -6.264589e-05 -4.405524e-03 +1.000000e-02 1.698415e+01 -1.154670e-04 -8.852311e-03 +1.500000e-02 2.149648e+01 -1.470753e-04 -1.344956e-02 +2.000000e-02 2.461374e+01 -1.692732e-04 -1.808538e-02 +2.500000e-02 2.722858e+01 -1.879005e-04 -2.270706e-02 +3.000000e-02 2.955312e+01 -2.043625e-04 -2.730186e-02 +3.500000e-02 3.165698e+01 -2.191586e-04 -3.186592e-02 +4.000000e-02 3.357692e+01 -2.325715e-04 -3.639736e-02 +4.500000e-02 3.533881e+01 -2.448062e-04 -4.089498e-02 +5.000000e-02 3.696398e+01 -2.560314e-04 -4.535787e-02 +5.500000e-02 3.847111e+01 -2.663932e-04 -4.978527e-02 +6.000000e-02 3.987647e+01 -2.760169e-04 -5.417664e-02 +6.500000e-02 4.119572e+01 -2.850389e-04 -5.853176e-02 +7.000000e-02 4.243930e+01 -2.935041e-04 -6.284980e-02 +7.500000e-02 4.362028e+01 -3.015281e-04 -6.713072e-02 +8.000000e-02 4.474840e+01 -3.091837e-04 -7.137437e-02 +8.500000e-02 4.583271e+01 -3.165382e-04 -7.558066e-02 +9.000000e-02 4.688098e+01 -3.236489e-04 -7.974954e-02 +9.500000e-02 4.789990e+01 -3.305648e-04 -8.388107e-02 +1.000000e-01 4.889548e+01 -3.373296e-04 -8.797532e-02 +volume fraction= 0.307876 +fiber_centers_YZ= (0.016148,0.017223) (0.008708,0.036706) (0.002994,0.004326) (0.010387,0.026288) (0.019316,0.031487) (0.017297,0.043821) (0.016710,0.008426) (0.002904,0.044264) (0.009465,0.012131) (0.000049,0.019343) (0.041148,0.017223) (0.033708,0.036706) (0.027994,0.004326) (0.035387,0.026288) (0.044316,0.031487) (0.042297,0.043821) (0.041710,0.008426) (0.027904,0.044264) (0.034465,0.012131) (0.025049,0.019343) (0.052994,0.004326) (0.052904,0.044264) (0.050049,0.019343) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4002_1_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4002_1_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..f32d8c0997c62ab26a846fa38352414a8fee17d4 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4002_1_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 4.015024e+02 -2.067924e-03 -1.976391e-03 +1.000000e-02 8.018462e+02 -4.121241e-03 -3.938573e-03 +1.500000e-02 1.200930e+03 -6.164779e-03 -5.889599e-03 +2.000000e-02 1.598389e+03 -8.215362e-03 -7.839258e-03 +2.500000e-02 1.994228e+03 -1.027527e-02 -9.788031e-03 +3.000000e-02 2.388807e+03 -1.233086e-02 -1.172778e-02 +3.500000e-02 2.782294e+03 -1.437527e-02 -1.365464e-02 +4.000000e-02 3.174726e+03 -1.640744e-02 -1.556815e-02 +4.500000e-02 3.566117e+03 -1.842720e-02 -1.746836e-02 +5.000000e-02 3.956478e+03 -2.043435e-02 -1.935533e-02 +5.500000e-02 4.345817e+03 -2.242924e-02 -2.122932e-02 +6.000000e-02 4.734142e+03 -2.441147e-02 -2.309035e-02 +6.500000e-02 5.121463e+03 -2.638153e-02 -2.493869e-02 +7.000000e-02 5.507787e+03 -2.833932e-02 -2.677446e-02 +7.500000e-02 5.893123e+03 -3.028486e-02 -2.859777e-02 +8.000000e-02 6.277483e+03 -3.221801e-02 -3.040857e-02 +8.500000e-02 6.660860e+03 -3.413942e-02 -3.220751e-02 +9.000000e-02 7.043274e+03 -3.604880e-02 -3.399437e-02 +9.500000e-02 7.424729e+03 -3.794635e-02 -3.576938e-02 +1.000000e-01 7.805231e+03 -3.983186e-02 -3.753258e-02 +volume fraction= 0.400239 +fiber_centers_YZ= (0.017963,0.030134) (0.001181,0.042157) (0.016764,0.016199) (0.004833,0.029201) (0.016816,0.007559) (0.002384,0.004240) (0.010240,0.043538) (0.001673,0.021311) (0.019291,0.038071) (0.007771,0.010213) (0.013321,0.023177) (0.000150,0.012274) (0.006694,0.036685) (0.042963,0.030134) (0.026181,0.042157) (0.041764,0.016199) (0.029833,0.029201) (0.041816,0.007559) (0.027384,0.004240) (0.035240,0.043538) (0.026673,0.021311) (0.044291,0.038071) (0.032771,0.010213) (0.038321,0.023177) (0.025150,0.012274) (0.031694,0.036685) (0.051181,0.042157) (0.052384,0.004240) (0.051673,0.021311) (0.050150,0.012274) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4002_1_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4002_1_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..675d7d7f64d5235d62f6a6a1367ff4cd6a60ee3b --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4002_1_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 5.667029e+00 +1.000000e-02 9.404575e+00 +1.500000e-02 1.146824e+01 +2.000000e-02 1.293432e+01 +2.500000e-02 1.414616e+01 +3.000000e-02 1.519465e+01 +3.500000e-02 1.611662e+01 +4.000000e-02 1.693545e+01 +4.500000e-02 1.766907e+01 +5.000000e-02 1.833214e+01 +5.500000e-02 1.893685e+01 +6.000000e-02 1.949350e+01 +6.500000e-02 2.001082e+01 +7.000000e-02 2.049627e+01 +7.500000e-02 2.095624e+01 +8.000000e-02 2.139622e+01 +8.500000e-02 2.182093e+01 +9.000000e-02 2.223445e+01 +9.500000e-02 2.264036e+01 +1.000000e-01 2.304172e+01 +volume fraction= 0.400239 +fiber_centers_YZ= (0.017963,0.030134) (0.001181,0.042157) (0.016764,0.016199) (0.004833,0.029201) (0.016816,0.007559) (0.002384,0.004240) (0.010240,0.043538) (0.001673,0.021311) (0.019291,0.038071) (0.007771,0.010213) (0.013321,0.023177) (0.000150,0.012274) (0.006694,0.036685) (0.042963,0.030134) (0.026181,0.042157) (0.041764,0.016199) (0.029833,0.029201) (0.041816,0.007559) (0.027384,0.004240) (0.035240,0.043538) (0.026673,0.021311) (0.044291,0.038071) (0.032771,0.010213) (0.038321,0.023177) (0.025150,0.012274) (0.031694,0.036685) (0.051181,0.042157) (0.052384,0.004240) (0.051673,0.021311) (0.050150,0.012274) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4002_1_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4002_1_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..face52c04d5df73ee9081bb9c0a253f989a4a3bb --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4002_1_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.474785e+01 -7.609944e-05 -4.133017e-03 +1.000000e-02 2.521895e+01 -1.311485e-04 -8.443937e-03 +1.500000e-02 3.209312e+01 -1.685005e-04 -1.290366e-02 +2.000000e-02 3.745038e+01 -1.980635e-04 -1.740572e-02 +2.500000e-02 4.205142e+01 -2.235414e-04 -2.190807e-02 +3.000000e-02 4.614070e+01 -2.461885e-04 -2.639668e-02 +3.500000e-02 4.983054e+01 -2.666152e-04 -3.086508e-02 +4.000000e-02 5.319353e+01 -2.852270e-04 -3.530928e-02 +4.500000e-02 5.628499e+01 -3.023353e-04 -3.972638e-02 +5.000000e-02 5.915016e+01 -3.181953e-04 -4.411413e-02 +5.500000e-02 6.182541e+01 -3.330126e-04 -4.847084e-02 +6.000000e-02 6.434129e+01 -3.469590e-04 -5.279522e-02 +6.500000e-02 6.672406e+01 -3.601822e-04 -5.708626e-02 +7.000000e-02 6.899467e+01 -3.728001e-04 -6.134328e-02 +7.500000e-02 7.117129e+01 -3.849151e-04 -6.556577e-02 +8.000000e-02 7.326899e+01 -3.966115e-04 -6.975346e-02 +8.500000e-02 7.530108e+01 -4.079634e-04 -7.390615e-02 +9.000000e-02 7.727797e+01 -4.190294e-04 -7.802381e-02 +9.500000e-02 7.920891e+01 -4.298601e-04 -8.210648e-02 +1.000000e-01 8.110148e+01 -4.404968e-04 -8.615434e-02 +volume fraction= 0.400239 +fiber_centers_YZ= (0.017963,0.030134) (0.001181,0.042157) (0.016764,0.016199) (0.004833,0.029201) (0.016816,0.007559) (0.002384,0.004240) (0.010240,0.043538) (0.001673,0.021311) (0.019291,0.038071) (0.007771,0.010213) (0.013321,0.023177) (0.000150,0.012274) (0.006694,0.036685) (0.042963,0.030134) (0.026181,0.042157) (0.041764,0.016199) (0.029833,0.029201) (0.041816,0.007559) (0.027384,0.004240) (0.035240,0.043538) (0.026673,0.021311) (0.044291,0.038071) (0.032771,0.010213) (0.038321,0.023177) (0.025150,0.012274) (0.031694,0.036685) (0.051181,0.042157) (0.052384,0.004240) (0.051673,0.021311) (0.050150,0.012274) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4002_2_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4002_2_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..5a7562ff265d11b31988fe3a190bd98c371d88e8 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4002_2_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 4.014758e+02 -1.960006e-03 -2.085361e-03 +1.000000e-02 8.017941e+02 -3.905904e-03 -4.155992e-03 +1.500000e-02 1.200853e+03 -5.840894e-03 -6.216559e-03 +2.000000e-02 1.598288e+03 -7.774728e-03 -8.283888e-03 +2.500000e-02 1.994103e+03 -9.707258e-03 -1.036088e-02 +3.000000e-02 2.388660e+03 -1.163051e-02 -1.243376e-02 +3.500000e-02 2.782125e+03 -1.354081e-02 -1.449547e-02 +4.000000e-02 3.174536e+03 -1.543774e-02 -1.654493e-02 +4.500000e-02 3.565907e+03 -1.732132e-02 -1.858186e-02 +5.000000e-02 3.956248e+03 -1.919168e-02 -2.060636e-02 +5.500000e-02 4.345567e+03 -2.104896e-02 -2.261841e-02 +6.000000e-02 4.733880e+03 -2.289307e-02 -2.461781e-02 +6.500000e-02 5.121177e+03 -2.472482e-02 -2.660547e-02 +7.000000e-02 5.507490e+03 -2.654348e-02 -2.858036e-02 +7.500000e-02 5.892805e+03 -2.834994e-02 -3.054356e-02 +8.000000e-02 6.277142e+03 -3.014396e-02 -3.249469e-02 +8.500000e-02 6.660506e+03 -3.192559e-02 -3.443345e-02 +9.000000e-02 7.042905e+03 -3.369520e-02 -3.636062e-02 +9.500000e-02 7.424343e+03 -3.545267e-02 -3.827550e-02 +1.000000e-01 7.804830e+03 -3.719839e-02 -4.017900e-02 +volume fraction= 0.400239 +fiber_centers_YZ= (0.008478,0.023820) (0.016874,0.007748) (0.009620,0.042338) (0.000056,0.014979) (0.001746,0.032476) (0.018616,0.031744) (0.000408,0.005926) (0.016524,0.016083) (0.000059,0.043023) (0.007126,0.011272) (0.016291,0.023974) (0.000387,0.024490) (0.016693,0.045650) (0.033478,0.023820) (0.041874,0.007748) (0.034620,0.042338) (0.025056,0.014979) (0.026746,0.032476) (0.043616,0.031744) (0.025408,0.005926) (0.041524,0.016083) (0.025059,0.043023) (0.032126,0.011272) (0.041291,0.023974) (0.025387,0.024490) (0.041693,0.045650) (0.050056,0.014979) (0.051746,0.032476) (0.050408,0.005926) (0.050059,0.043023) (0.050387,0.024490) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4002_2_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4002_2_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..98c6380720fc9f65c7a040155cd7c6d5a562280c --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4002_2_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 6.226026e+00 +1.000000e-02 9.717520e+00 +1.500000e-02 1.188744e+01 +2.000000e-02 1.342420e+01 +2.500000e-02 1.467594e+01 +3.000000e-02 1.575343e+01 +3.500000e-02 1.670334e+01 +4.000000e-02 1.755430e+01 +4.500000e-02 1.833513e+01 +5.000000e-02 1.904513e+01 +5.500000e-02 1.970605e+01 +6.000000e-02 2.032807e+01 +6.500000e-02 2.091930e+01 +7.000000e-02 2.148646e+01 +7.500000e-02 2.203521e+01 +8.000000e-02 2.257037e+01 +8.500000e-02 2.309603e+01 +9.000000e-02 2.361561e+01 +9.500000e-02 2.413202e+01 +1.000000e-01 2.464773e+01 +volume fraction= 0.400239 +fiber_centers_YZ= (0.008478,0.023820) (0.016874,0.007748) (0.009620,0.042338) (0.000056,0.014979) (0.001746,0.032476) (0.018616,0.031744) (0.000408,0.005926) (0.016524,0.016083) (0.000059,0.043023) (0.007126,0.011272) (0.016291,0.023974) (0.000387,0.024490) (0.016693,0.045650) (0.033478,0.023820) (0.041874,0.007748) (0.034620,0.042338) (0.025056,0.014979) (0.026746,0.032476) (0.043616,0.031744) (0.025408,0.005926) (0.041524,0.016083) (0.025059,0.043023) (0.032126,0.011272) (0.041291,0.023974) (0.025387,0.024490) (0.041693,0.045650) (0.050056,0.014979) (0.051746,0.032476) (0.050408,0.005926) (0.050059,0.043023) (0.050387,0.024490) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4002_2_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4002_2_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..7fdc05145d6f053053992633a343565a28738b88 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4002_2_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.802481e+01 -8.830241e-05 -4.116010e-03 +1.000000e-02 2.939204e+01 -1.457737e-04 -8.463597e-03 +1.500000e-02 3.750465e+01 -1.873793e-04 -1.293103e-02 +2.000000e-02 4.410740e+01 -2.215421e-04 -1.742950e-02 +2.500000e-02 4.989514e+01 -2.516445e-04 -2.192334e-02 +3.000000e-02 5.513535e+01 -2.790110e-04 -2.639930e-02 +3.500000e-02 5.997179e+01 -3.043675e-04 -3.085057e-02 +4.000000e-02 6.449702e+01 -3.281887e-04 -3.527298e-02 +4.500000e-02 6.877727e+01 -3.508171e-04 -3.966366e-02 +5.000000e-02 7.286150e+01 -3.725069e-04 -4.402059e-02 +5.500000e-02 7.678695e+01 -3.934521e-04 -4.834232e-02 +6.000000e-02 8.058339e+01 -4.138070e-04 -5.262780e-02 +6.500000e-02 8.427358e+01 -4.336900e-04 -5.687630e-02 +7.000000e-02 8.787685e+01 -4.532004e-04 -6.108729e-02 +7.500000e-02 9.140752e+01 -4.724122e-04 -6.526047e-02 +8.000000e-02 9.487734e+01 -4.913851e-04 -6.939566e-02 +8.500000e-02 9.829648e+01 -5.101713e-04 -7.349280e-02 +9.000000e-02 1.016727e+02 -5.288100e-04 -7.755190e-02 +9.500000e-02 1.050111e+02 -5.473279e-04 -8.157310e-02 +1.000000e-01 1.083156e+02 -5.657431e-04 -8.555661e-02 +volume fraction= 0.400239 +fiber_centers_YZ= (0.008478,0.023820) (0.016874,0.007748) (0.009620,0.042338) (0.000056,0.014979) (0.001746,0.032476) (0.018616,0.031744) (0.000408,0.005926) (0.016524,0.016083) (0.000059,0.043023) (0.007126,0.011272) (0.016291,0.023974) (0.000387,0.024490) (0.016693,0.045650) (0.033478,0.023820) (0.041874,0.007748) (0.034620,0.042338) (0.025056,0.014979) (0.026746,0.032476) (0.043616,0.031744) (0.025408,0.005926) (0.041524,0.016083) (0.025059,0.043023) (0.032126,0.011272) (0.041291,0.023974) (0.025387,0.024490) (0.041693,0.045650) (0.050056,0.014979) (0.051746,0.032476) (0.050408,0.005926) (0.050059,0.043023) (0.050387,0.024490) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4002_3_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4002_3_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..bc26e5235d8ead8ba81e640e33597fcaacae7e3a --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4002_3_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 4.014710e+02 -2.014812e-03 -2.030175e-03 +1.000000e-02 8.017841e+02 -4.015118e-03 -4.046035e-03 +1.500000e-02 1.200837e+03 -6.004687e-03 -6.051756e-03 +2.000000e-02 1.598267e+03 -7.995589e-03 -8.061912e-03 +2.500000e-02 1.994077e+03 -9.988245e-03 -1.007867e-02 +3.000000e-02 2.388629e+03 -1.197278e-02 -1.209016e-02 +3.500000e-02 2.782089e+03 -1.394454e-02 -1.409032e-02 +4.000000e-02 3.174494e+03 -1.590293e-02 -1.607823e-02 +4.500000e-02 3.565859e+03 -1.784797e-02 -1.805377e-02 +5.000000e-02 3.956193e+03 -1.977964e-02 -2.001680e-02 +5.500000e-02 4.345507e+03 -2.169820e-02 -2.196760e-02 +6.000000e-02 4.733807e+03 -2.360369e-02 -2.390611e-02 +6.500000e-02 5.121110e+03 -2.549604e-02 -2.583223e-02 +7.000000e-02 5.507404e+03 -2.737605e-02 -2.774675e-02 +7.500000e-02 5.892721e+03 -2.924293e-02 -2.964881e-02 +8.000000e-02 6.277046e+03 -3.109771e-02 -3.153944e-02 +8.500000e-02 6.660409e+03 -3.293960e-02 -3.341779e-02 +9.000000e-02 7.042799e+03 -3.476980e-02 -3.528526e-02 +9.500000e-02 7.424231e+03 -3.658746e-02 -3.714063e-02 +1.000000e-01 7.804710e+03 -3.839282e-02 -3.898405e-02 +volume fraction= 0.400239 +fiber_centers_YZ= (0.005745,0.039775) (0.016633,0.015779) (0.000900,0.025547) (0.001000,0.012333) (0.013448,0.006665) (0.016007,0.032909) (0.015121,0.024893) (0.018007,0.042587) (0.000087,0.033996) (0.008007,0.032209) (0.002535,0.004317) (0.009104,0.019353) (0.000327,0.045668) (0.030745,0.039775) (0.041633,0.015779) (0.025900,0.025547) (0.026000,0.012333) (0.038448,0.006665) (0.041007,0.032909) (0.040121,0.024893) (0.043007,0.042587) (0.025087,0.033996) (0.033007,0.032209) (0.027535,0.004317) (0.034104,0.019353) (0.025327,0.045668) (0.050900,0.025547) (0.051000,0.012333) (0.050087,0.033996) (0.052535,0.004317) (0.050327,0.045668) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4002_3_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4002_3_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..0ec72a60783e9404d9f5249ddcc078702065b470 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4002_3_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 5.774314e+00 +1.000000e-02 9.471589e+00 +1.500000e-02 1.156264e+01 +2.000000e-02 1.303978e+01 +2.500000e-02 1.425961e+01 +3.000000e-02 1.531552e+01 +3.500000e-02 1.624612e+01 +4.000000e-02 1.707608e+01 +4.500000e-02 1.782394e+01 +5.000000e-02 1.850449e+01 +5.500000e-02 1.912981e+01 +6.000000e-02 1.970987e+01 +6.500000e-02 2.025304e+01 +7.000000e-02 2.076639e+01 +7.500000e-02 2.125588e+01 +8.000000e-02 2.172661e+01 +8.500000e-02 2.218296e+01 +9.000000e-02 2.262863e+01 +9.500000e-02 2.306687e+01 +1.000000e-01 2.350774e+01 +volume fraction= 0.400239 +fiber_centers_YZ= (0.005745,0.039775) (0.016633,0.015779) (0.000900,0.025547) (0.001000,0.012333) (0.013448,0.006665) (0.016007,0.032909) (0.015121,0.024893) (0.018007,0.042587) (0.000087,0.033996) (0.008007,0.032209) (0.002535,0.004317) (0.009104,0.019353) (0.000327,0.045668) (0.030745,0.039775) (0.041633,0.015779) (0.025900,0.025547) (0.026000,0.012333) (0.038448,0.006665) (0.041007,0.032909) (0.040121,0.024893) (0.043007,0.042587) (0.025087,0.033996) (0.033007,0.032209) (0.027535,0.004317) (0.034104,0.019353) (0.025327,0.045668) (0.050900,0.025547) (0.051000,0.012333) (0.050087,0.033996) (0.052535,0.004317) (0.050327,0.045668) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4002_3_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4002_3_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..dea69828dd08bf5f1c36bbf7994465838beb69aa --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4002_3_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.511654e+01 -7.605294e-05 -4.182083e-03 +1.000000e-02 2.552349e+01 -1.296119e-04 -8.539015e-03 +1.500000e-02 3.239216e+01 -1.657415e-04 -1.304062e-02 +2.000000e-02 3.782893e+01 -1.947084e-04 -1.757340e-02 +2.500000e-02 4.259503e+01 -2.202005e-04 -2.209762e-02 +3.000000e-02 4.691320e+01 -2.433406e-04 -2.660205e-02 +3.500000e-02 5.089018e+01 -2.646920e-04 -3.108151e-02 +4.000000e-02 5.459643e+01 -2.846341e-04 -3.553266e-02 +4.500000e-02 5.808396e+01 -3.034481e-04 -3.995314e-02 +5.000000e-02 6.139404e+01 -3.213577e-04 -4.434117e-02 +5.500000e-02 6.455965e+01 -3.385415e-04 -4.869541e-02 +6.000000e-02 6.760722e+01 -3.551430e-04 -5.301488e-02 +6.500000e-02 7.055932e+01 -3.712844e-04 -5.729883e-02 +7.000000e-02 7.343382e+01 -3.870615e-04 -6.154677e-02 +7.500000e-02 7.624609e+01 -4.025568e-04 -6.575834e-02 +8.000000e-02 7.900881e+01 -4.178380e-04 -6.993334e-02 +8.500000e-02 8.173129e+01 -4.329553e-04 -7.407174e-02 +9.000000e-02 8.442188e+01 -4.479528e-04 -7.817359e-02 +9.500000e-02 8.708783e+01 -4.628692e-04 -8.223897e-02 +1.000000e-01 8.973501e+01 -4.777355e-04 -8.626808e-02 +volume fraction= 0.400239 +fiber_centers_YZ= (0.005745,0.039775) (0.016633,0.015779) (0.000900,0.025547) (0.001000,0.012333) (0.013448,0.006665) (0.016007,0.032909) (0.015121,0.024893) (0.018007,0.042587) (0.000087,0.033996) (0.008007,0.032209) (0.002535,0.004317) (0.009104,0.019353) (0.000327,0.045668) (0.030745,0.039775) (0.041633,0.015779) (0.025900,0.025547) (0.026000,0.012333) (0.038448,0.006665) (0.041007,0.032909) (0.040121,0.024893) (0.043007,0.042587) (0.025087,0.033996) (0.033007,0.032209) (0.027535,0.004317) (0.034104,0.019353) (0.025327,0.045668) (0.050900,0.025547) (0.051000,0.012333) (0.050087,0.033996) (0.052535,0.004317) (0.050327,0.045668) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4002_4_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4002_4_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..26a1aa55cf1fc5ecb364364406d8c25768e53cf3 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4002_4_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 4.014730e+02 -2.015118e-03 -2.033741e-03 +1.000000e-02 8.017915e+02 -4.015771e-03 -4.053068e-03 +1.500000e-02 1.200854e+03 -6.005607e-03 -6.062065e-03 +2.000000e-02 1.598295e+03 -7.996676e-03 -8.074976e-03 +2.500000e-02 1.994118e+03 -9.989836e-03 -1.009377e-02 +3.000000e-02 2.388684e+03 -1.197513e-02 -1.210682e-02 +3.500000e-02 2.782161e+03 -1.394773e-02 -1.410831e-02 +4.000000e-02 3.174591e+03 -1.590675e-02 -1.609711e-02 +4.500000e-02 3.565976e+03 -1.785265e-02 -1.807366e-02 +5.000000e-02 3.956333e+03 -1.978527e-02 -2.003771e-02 +5.500000e-02 4.345663e+03 -2.170496e-02 -2.198960e-02 +6.000000e-02 4.733995e+03 -2.361113e-02 -2.392867e-02 +6.500000e-02 5.121311e+03 -2.550481e-02 -2.585594e-02 +7.000000e-02 5.507639e+03 -2.738550e-02 -2.777093e-02 +7.500000e-02 5.892980e+03 -2.925349e-02 -2.967385e-02 +8.000000e-02 6.277346e+03 -3.110866e-02 -3.156459e-02 +8.500000e-02 6.660731e+03 -3.295170e-02 -3.344379e-02 +9.000000e-02 7.043155e+03 -3.478246e-02 -3.531138e-02 +9.500000e-02 7.424620e+03 -3.660109e-02 -3.716747e-02 +1.000000e-01 7.805133e+03 -3.840717e-02 -3.901132e-02 +volume fraction= 0.400239 +fiber_centers_YZ= (0.010428,0.037025) (0.009042,0.026075) (0.014896,0.011958) (0.008232,0.044902) (0.000362,0.009336) (0.001069,0.037638) (0.000838,0.026316) (0.006932,0.016352) (0.006944,0.004986) (0.019538,0.044166) (0.019948,0.031309) (0.019358,0.021340) (0.016707,0.004397) (0.035428,0.037025) (0.034042,0.026075) (0.039896,0.011958) (0.033232,0.044902) (0.025362,0.009336) (0.026069,0.037638) (0.025838,0.026316) (0.031932,0.016352) (0.031944,0.004986) (0.044538,0.044166) (0.044948,0.031309) (0.044358,0.021340) (0.041707,0.004397) (0.050362,0.009336) (0.051069,0.037638) (0.050838,0.026316) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4002_4_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4002_4_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..813fbf04dacc11259f3b1443d5c86c3543d88c2f --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4002_4_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 5.726391e+00 +1.000000e-02 9.522774e+00 +1.500000e-02 1.160016e+01 +2.000000e-02 1.309507e+01 +2.500000e-02 1.433941e+01 +3.000000e-02 1.541745e+01 +3.500000e-02 1.636578e+01 +4.000000e-02 1.720844e+01 +4.500000e-02 1.796387e+01 +5.000000e-02 1.864704e+01 +5.500000e-02 1.927039e+01 +6.000000e-02 1.984438e+01 +6.500000e-02 2.037790e+01 +7.000000e-02 2.087855e+01 +7.500000e-02 2.135292e+01 +8.000000e-02 2.180671e+01 +8.500000e-02 2.224485e+01 +9.000000e-02 2.267157e+01 +9.500000e-02 2.309060e+01 +1.000000e-01 2.350509e+01 +volume fraction= 0.400239 +fiber_centers_YZ= (0.010428,0.037025) (0.009042,0.026075) (0.014896,0.011958) (0.008232,0.044902) (0.000362,0.009336) (0.001069,0.037638) (0.000838,0.026316) (0.006932,0.016352) (0.006944,0.004986) (0.019538,0.044166) (0.019948,0.031309) (0.019358,0.021340) (0.016707,0.004397) (0.035428,0.037025) (0.034042,0.026075) (0.039896,0.011958) (0.033232,0.044902) (0.025362,0.009336) (0.026069,0.037638) (0.025838,0.026316) (0.031932,0.016352) (0.031944,0.004986) (0.044538,0.044166) (0.044948,0.031309) (0.044358,0.021340) (0.041707,0.004397) (0.050362,0.009336) (0.051069,0.037638) (0.050838,0.026316) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4002_4_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4002_4_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..fd7d1fe115d0f96f147cd52f36b068f81743f499 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4002_4_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.291373e+01 -6.489622e-05 -4.298485e-03 +1.000000e-02 2.228940e+01 -1.126876e-04 -8.722620e-03 +1.500000e-02 2.796170e+01 -1.424078e-04 -1.329242e-02 +2.000000e-02 3.235227e+01 -1.656179e-04 -1.788633e-02 +2.500000e-02 3.616505e+01 -1.857557e-04 -2.246728e-02 +3.000000e-02 3.958829e+01 -2.037965e-04 -2.702513e-02 +3.500000e-02 4.270959e+01 -2.202176e-04 -3.155543e-02 +4.000000e-02 4.558624e+01 -2.353376e-04 -3.605546e-02 +4.500000e-02 4.826177e+01 -2.493988e-04 -4.052334e-02 +5.000000e-02 5.077137e+01 -2.625964e-04 -4.495765e-02 +5.500000e-02 5.314460e+01 -2.750933e-04 -4.935729e-02 +6.000000e-02 5.540600e+01 -2.870239e-04 -5.372144e-02 +6.500000e-02 5.757593e+01 -2.984995e-04 -5.804951e-02 +7.000000e-02 5.967132e+01 -3.096119e-04 -6.234112e-02 +7.500000e-02 6.170691e+01 -3.204405e-04 -6.659598e-02 +8.000000e-02 6.369464e+01 -3.310496e-04 -7.081397e-02 +8.500000e-02 6.564426e+01 -3.414915e-04 -7.499507e-02 +9.000000e-02 6.756450e+01 -3.518124e-04 -7.913933e-02 +9.500000e-02 6.946260e+01 -3.620506e-04 -8.324685e-02 +1.000000e-01 7.134464e+01 -3.722375e-04 -8.731783e-02 +volume fraction= 0.400239 +fiber_centers_YZ= (0.010428,0.037025) (0.009042,0.026075) (0.014896,0.011958) (0.008232,0.044902) (0.000362,0.009336) (0.001069,0.037638) (0.000838,0.026316) (0.006932,0.016352) (0.006944,0.004986) (0.019538,0.044166) (0.019948,0.031309) (0.019358,0.021340) (0.016707,0.004397) (0.035428,0.037025) (0.034042,0.026075) (0.039896,0.011958) (0.033232,0.044902) (0.025362,0.009336) (0.026069,0.037638) (0.025838,0.026316) (0.031932,0.016352) (0.031944,0.004986) (0.044538,0.044166) (0.044948,0.031309) (0.044358,0.021340) (0.041707,0.004397) (0.050362,0.009336) (0.051069,0.037638) (0.050838,0.026316) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4002_5_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4002_5_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..c1acec8419f49ad2f31f5077f1edbe7b04e804ba --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4002_5_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 4.014774e+02 -1.953163e-03 -2.094348e-03 +1.000000e-02 8.017991e+02 -3.892178e-03 -4.173975e-03 +1.500000e-02 1.200863e+03 -5.820383e-03 -6.243336e-03 +2.000000e-02 1.598305e+03 -7.747297e-03 -8.319303e-03 +2.500000e-02 1.994129e+03 -9.671595e-03 -1.040598e-02 +3.000000e-02 2.388696e+03 -1.158558e-02 -1.248942e-02 +3.500000e-02 2.782171e+03 -1.348609e-02 -1.456214e-02 +4.000000e-02 3.174594e+03 -1.537286e-02 -1.662289e-02 +4.500000e-02 3.565977e+03 -1.724598e-02 -1.867147e-02 +5.000000e-02 3.956330e+03 -1.910555e-02 -2.070768e-02 +5.500000e-02 4.345669e+03 -2.095157e-02 -2.273151e-02 +6.000000e-02 4.733985e+03 -2.278480e-02 -2.474377e-02 +6.500000e-02 5.121303e+03 -2.460474e-02 -2.674365e-02 +7.000000e-02 5.507631e+03 -2.641155e-02 -2.873124e-02 +7.500000e-02 5.892959e+03 -2.820601e-02 -3.070731e-02 +8.000000e-02 6.277318e+03 -2.998754e-02 -3.267149e-02 +8.500000e-02 6.660700e+03 -3.175669e-02 -3.462397e-02 +9.000000e-02 7.043116e+03 -3.351338e-02 -3.656433e-02 +9.500000e-02 7.424574e+03 -3.525792e-02 -3.849336e-02 +1.000000e-01 7.805079e+03 -3.699029e-02 -4.041051e-02 +volume fraction= 0.400239 +fiber_centers_YZ= (0.000139,0.022764) (0.001708,0.011180) (0.008003,0.041964) (0.013614,0.015203) (0.016474,0.023518) (0.009707,0.031415) (0.001980,0.035197) (0.018088,0.004922) (0.016419,0.041070) (0.000132,0.045229) (0.008279,0.023789) (0.009709,0.004380) (0.017187,0.033369) (0.025139,0.022764) (0.026708,0.011180) (0.033003,0.041964) (0.038614,0.015203) (0.041474,0.023518) (0.034707,0.031415) (0.026980,0.035197) (0.043088,0.004922) (0.041419,0.041070) (0.025132,0.045229) (0.033279,0.023789) (0.034709,0.004380) (0.042187,0.033369) (0.050139,0.022764) (0.051708,0.011180) (0.051980,0.035197) (0.050132,0.045229) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4002_5_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4002_5_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..b35cdf8520c27f67ae7e65147c1717c29bf0899b --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4002_5_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 6.079851e+00 +1.000000e-02 9.665195e+00 +1.500000e-02 1.182190e+01 +2.000000e-02 1.336133e+01 +2.500000e-02 1.461795e+01 +3.000000e-02 1.569631e+01 +3.500000e-02 1.664304e+01 +4.000000e-02 1.748697e+01 +4.500000e-02 1.824910e+01 +5.000000e-02 1.894572e+01 +5.500000e-02 1.958992e+01 +6.000000e-02 2.019240e+01 +6.500000e-02 2.076200e+01 +7.000000e-02 2.130608e+01 +7.500000e-02 2.183078e+01 +8.000000e-02 2.234120e+01 +8.500000e-02 2.284163e+01 +9.000000e-02 2.333576e+01 +9.500000e-02 2.382662e+01 +1.000000e-01 2.431676e+01 +volume fraction= 0.400239 +fiber_centers_YZ= (0.000139,0.022764) (0.001708,0.011180) (0.008003,0.041964) (0.013614,0.015203) (0.016474,0.023518) (0.009707,0.031415) (0.001980,0.035197) (0.018088,0.004922) (0.016419,0.041070) (0.000132,0.045229) (0.008279,0.023789) (0.009709,0.004380) (0.017187,0.033369) (0.025139,0.022764) (0.026708,0.011180) (0.033003,0.041964) (0.038614,0.015203) (0.041474,0.023518) (0.034707,0.031415) (0.026980,0.035197) (0.043088,0.004922) (0.041419,0.041070) (0.025132,0.045229) (0.033279,0.023789) (0.034709,0.004380) (0.042187,0.033369) (0.050139,0.022764) (0.051708,0.011180) (0.051980,0.035197) (0.050132,0.045229) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4002_5_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4002_5_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..da03b276582d9ee089544b08d78b81bbb6ad181c --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4002_5_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.644425e+01 -8.028314e-05 -4.200771e-03 +1.000000e-02 2.710325e+01 -1.340848e-04 -8.585274e-03 +1.500000e-02 3.447870e+01 -1.717695e-04 -1.309551e-02 +2.000000e-02 4.040869e+01 -2.023119e-04 -1.763457e-02 +2.500000e-02 4.561924e+01 -2.292553e-04 -2.216469e-02 +3.000000e-02 5.035186e+01 -2.537986e-04 -2.667410e-02 +3.500000e-02 5.472925e+01 -2.765620e-04 -3.115735e-02 +4.000000e-02 5.883120e+01 -2.979546e-04 -3.561115e-02 +4.500000e-02 6.271620e+01 -3.182780e-04 -4.003321e-02 +5.000000e-02 6.642907e+01 -3.377647e-04 -4.442187e-02 +5.500000e-02 7.000446e+01 -3.565951e-04 -4.877593e-02 +6.000000e-02 7.346948e+01 -3.749115e-04 -5.309454e-02 +6.500000e-02 7.684592e+01 -3.928282e-04 -5.737710e-02 +7.000000e-02 8.015069e+01 -4.104342e-04 -6.162324e-02 +7.500000e-02 8.339608e+01 -4.277939e-04 -6.583283e-02 +8.000000e-02 8.659168e+01 -4.449575e-04 -7.000586e-02 +8.500000e-02 8.974472e+01 -4.619625e-04 -7.414243e-02 +9.000000e-02 9.286062e+01 -4.788366e-04 -7.824275e-02 +9.500000e-02 9.594267e+01 -4.955958e-04 -8.230713e-02 +1.000000e-01 9.899275e+01 -5.122487e-04 -8.633593e-02 +volume fraction= 0.400239 +fiber_centers_YZ= (0.000139,0.022764) (0.001708,0.011180) (0.008003,0.041964) (0.013614,0.015203) (0.016474,0.023518) (0.009707,0.031415) (0.001980,0.035197) (0.018088,0.004922) (0.016419,0.041070) (0.000132,0.045229) (0.008279,0.023789) (0.009709,0.004380) (0.017187,0.033369) (0.025139,0.022764) (0.026708,0.011180) (0.033003,0.041964) (0.038614,0.015203) (0.041474,0.023518) (0.034707,0.031415) (0.026980,0.035197) (0.043088,0.004922) (0.041419,0.041070) (0.025132,0.045229) (0.033279,0.023789) (0.034709,0.004380) (0.042187,0.033369) (0.050139,0.022764) (0.051708,0.011180) (0.051980,0.035197) (0.050132,0.045229) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4926_1_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4926_1_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..c5181c2bc16170b82bc31d97f787b612a9db2f41 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4926_1_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 4.932563e+02 -1.950923e-03 -1.926856e-03 +1.000000e-02 9.849280e+02 -3.888126e-03 -3.840107e-03 +1.500000e-02 1.474935e+03 -5.815414e-03 -5.742930e-03 +2.000000e-02 1.962984e+03 -7.745688e-03 -7.645966e-03 +2.500000e-02 2.449097e+03 -9.679496e-03 -9.549734e-03 +3.000000e-02 2.933587e+03 -1.160686e-02 -1.144589e-02 +3.500000e-02 3.416587e+03 -1.352314e-02 -1.333043e-02 +4.000000e-02 3.898136e+03 -1.542742e-02 -1.520256e-02 +4.500000e-02 4.378252e+03 -1.731961e-02 -1.706224e-02 +5.000000e-02 4.856947e+03 -1.919976e-02 -1.890953e-02 +5.500000e-02 5.334234e+03 -2.106793e-02 -2.074454e-02 +6.000000e-02 5.810124e+03 -2.292421e-02 -2.256740e-02 +6.500000e-02 6.284628e+03 -2.476869e-02 -2.437819e-02 +7.000000e-02 6.757758e+03 -2.660146e-02 -2.617705e-02 +7.500000e-02 7.229520e+03 -2.842272e-02 -2.796417e-02 +8.000000e-02 7.699936e+03 -3.023223e-02 -2.973936e-02 +8.500000e-02 8.169002e+03 -3.203051e-02 -3.150314e-02 +9.000000e-02 8.636741e+03 -3.381726e-02 -3.325525e-02 +9.500000e-02 9.103148e+03 -3.559293e-02 -3.499613e-02 +1.000000e-01 9.568251e+03 -3.735757e-02 -3.672577e-02 +volume fraction= 0.492602 +fiber_centers_YZ= (0.005277,0.042606) (0.001256,0.020887) (0.017159,0.004325) (0.002651,0.028513) (0.000811,0.036305) (0.015835,0.045770) (0.017190,0.037836) (0.019240,0.029396) (0.008243,0.014860) (0.016994,0.020503) (0.015860,0.012544) (0.009198,0.022729) (0.009017,0.033623) (0.000560,0.012693) (0.000260,0.004443) (0.008587,0.007096) (0.030277,0.042606) (0.026256,0.020887) (0.042159,0.004325) (0.027651,0.028513) (0.025811,0.036305) (0.040835,0.045770) (0.042190,0.037836) (0.044240,0.029396) (0.033243,0.014860) (0.041994,0.020503) (0.040860,0.012544) (0.034198,0.022729) (0.034017,0.033623) (0.025560,0.012693) (0.025260,0.004443) (0.033587,0.007096) (0.051256,0.020887) (0.052651,0.028513) (0.050811,0.036305) (0.050560,0.012693) (0.050260,0.004443) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4926_1_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4926_1_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..e4373dfc0e1dabf8cdd2030b0dcb1d9e8bbcdca2 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4926_1_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 7.153989e+00 +1.000000e-02 1.079898e+01 +1.500000e-02 1.297697e+01 +2.000000e-02 1.459664e+01 +2.500000e-02 1.592530e+01 +3.000000e-02 1.705328e+01 +3.500000e-02 1.802953e+01 +4.000000e-02 1.889075e+01 +4.500000e-02 1.966421e+01 +5.000000e-02 2.036834e+01 +5.500000e-02 2.102060e+01 +6.000000e-02 2.163409e+01 +6.500000e-02 2.221920e+01 +7.000000e-02 2.278427e+01 +7.500000e-02 2.333601e+01 +8.000000e-02 2.387981e+01 +8.500000e-02 2.442004e+01 +9.000000e-02 2.496026e+01 +9.500000e-02 2.550340e+01 +1.000000e-01 2.605684e+01 +volume fraction= 0.492602 +fiber_centers_YZ= (0.005277,0.042606) (0.001256,0.020887) (0.017159,0.004325) (0.002651,0.028513) (0.000811,0.036305) (0.015835,0.045770) (0.017190,0.037836) (0.019240,0.029396) (0.008243,0.014860) (0.016994,0.020503) (0.015860,0.012544) (0.009198,0.022729) (0.009017,0.033623) (0.000560,0.012693) (0.000260,0.004443) (0.008587,0.007096) (0.030277,0.042606) (0.026256,0.020887) (0.042159,0.004325) (0.027651,0.028513) (0.025811,0.036305) (0.040835,0.045770) (0.042190,0.037836) (0.044240,0.029396) (0.033243,0.014860) (0.041994,0.020503) (0.040860,0.012544) (0.034198,0.022729) (0.034017,0.033623) (0.025560,0.012693) (0.025260,0.004443) (0.033587,0.007096) (0.051256,0.020887) (0.052651,0.028513) (0.050811,0.036305) (0.050560,0.012693) (0.050260,0.004443) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4926_1_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4926_1_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..f48f644d1105eb23d80b03b193215863c10c8fb3 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4926_1_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 2.394799e+01 -9.513810e-05 -3.874140e-03 +1.000000e-02 3.847192e+01 -1.548803e-04 -8.087976e-03 +1.500000e-02 4.960229e+01 -2.015763e-04 -1.241402e-02 +2.000000e-02 5.904485e+01 -2.416953e-04 -1.677420e-02 +2.500000e-02 6.750549e+01 -2.779564e-04 -2.113653e-02 +3.000000e-02 7.527448e+01 -3.115113e-04 -2.548809e-02 +3.500000e-02 8.254083e+01 -3.431105e-04 -2.982164e-02 +4.000000e-02 8.938068e+01 -3.730871e-04 -3.413206e-02 +4.500000e-02 9.588924e+01 -4.018142e-04 -3.841638e-02 +5.000000e-02 1.021183e+02 -4.294983e-04 -4.267266e-02 +5.500000e-02 1.081017e+02 -4.562708e-04 -4.689983e-02 +6.000000e-02 1.138616e+02 -4.822128e-04 -5.109740e-02 +6.500000e-02 1.193924e+02 -5.072994e-04 -5.526493e-02 +7.000000e-02 1.247453e+02 -5.317096e-04 -5.940304e-02 +7.500000e-02 1.299088e+02 -5.553942e-04 -6.351166e-02 +8.000000e-02 1.348908e+02 -5.783742e-04 -6.759106e-02 +8.500000e-02 1.396998e+02 -6.006734e-04 -7.164151e-02 +9.000000e-02 1.443455e+02 -6.223214e-04 -7.566324e-02 +9.500000e-02 1.488384e+02 -6.433537e-04 -7.965648e-02 +1.000000e-01 1.531899e+02 -6.638087e-04 -8.362137e-02 +volume fraction= 0.492602 +fiber_centers_YZ= (0.005277,0.042606) (0.001256,0.020887) (0.017159,0.004325) (0.002651,0.028513) (0.000811,0.036305) (0.015835,0.045770) (0.017190,0.037836) (0.019240,0.029396) (0.008243,0.014860) (0.016994,0.020503) (0.015860,0.012544) (0.009198,0.022729) (0.009017,0.033623) (0.000560,0.012693) (0.000260,0.004443) (0.008587,0.007096) (0.030277,0.042606) (0.026256,0.020887) (0.042159,0.004325) (0.027651,0.028513) (0.025811,0.036305) (0.040835,0.045770) (0.042190,0.037836) (0.044240,0.029396) (0.033243,0.014860) (0.041994,0.020503) (0.040860,0.012544) (0.034198,0.022729) (0.034017,0.033623) (0.025560,0.012693) (0.025260,0.004443) (0.033587,0.007096) (0.051256,0.020887) (0.052651,0.028513) (0.050811,0.036305) (0.050560,0.012693) (0.050260,0.004443) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4926_2_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4926_2_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..f6aa63ca141bede10b5b46a686450bd6baa8636c --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4926_2_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 4.931915e+02 -1.936150e-03 -1.942767e-03 +1.000000e-02 9.847998e+02 -3.858713e-03 -3.871773e-03 +1.500000e-02 1.474745e+03 -5.771096e-03 -5.790449e-03 +2.000000e-02 1.962735e+03 -7.685219e-03 -7.710143e-03 +2.500000e-02 2.448788e+03 -9.602137e-03 -9.631065e-03 +3.000000e-02 2.933218e+03 -1.151257e-02 -1.154436e-02 +3.500000e-02 3.416159e+03 -1.341204e-02 -1.344588e-02 +4.000000e-02 3.897649e+03 -1.529964e-02 -1.533485e-02 +4.500000e-02 4.377706e+03 -1.717527e-02 -1.721121e-02 +5.000000e-02 4.856343e+03 -1.903900e-02 -1.907503e-02 +5.500000e-02 5.333572e+03 -2.089089e-02 -2.092641e-02 +6.000000e-02 5.809403e+03 -2.273104e-02 -2.276546e-02 +6.500000e-02 6.283850e+03 -2.455953e-02 -2.459228e-02 +7.000000e-02 6.756915e+03 -2.637664e-02 -2.640719e-02 +7.500000e-02 7.228629e+03 -2.818194e-02 -2.820970e-02 +8.000000e-02 7.698982e+03 -2.997644e-02 -3.000084e-02 +8.500000e-02 8.167990e+03 -3.175908e-02 -3.177975e-02 +9.000000e-02 8.635674e+03 -3.353055e-02 -3.354691e-02 +9.500000e-02 9.102027e+03 -3.529125e-02 -3.530281e-02 +1.000000e-01 9.567064e+03 -3.704081e-02 -3.704719e-02 +volume fraction= 0.492602 +fiber_centers_YZ= (0.008825,0.040249) (0.000073,0.037920) (0.009689,0.012389) (0.008355,0.004393) (0.009133,0.031769) (0.002058,0.013430) (0.015490,0.007310) (0.002715,0.045457) (0.000405,0.005800) (0.001544,0.030016) (0.019925,0.045771) (0.009193,0.021329) (0.017159,0.025651) (0.000723,0.021149) (0.016596,0.034398) (0.016515,0.017520) (0.033825,0.040249) (0.025073,0.037920) (0.034689,0.012389) (0.033355,0.004393) (0.034133,0.031769) (0.027058,0.013430) (0.040490,0.007310) (0.027715,0.045457) (0.025405,0.005800) (0.026544,0.030016) (0.044925,0.045771) (0.034193,0.021329) (0.042159,0.025651) (0.025723,0.021149) (0.041596,0.034398) (0.041515,0.017520) (0.050073,0.037920) (0.052058,0.013430) (0.052715,0.045457) (0.050405,0.005800) (0.051544,0.030016) (0.050723,0.021149) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4926_2_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4926_2_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..ac6e2c2cbcffddc76492b547b40e9cf6994348c0 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4926_2_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 7.305787e+00 +1.000000e-02 1.101705e+01 +1.500000e-02 1.323322e+01 +2.000000e-02 1.489636e+01 +2.500000e-02 1.626730e+01 +3.000000e-02 1.743437e+01 +3.500000e-02 1.844716e+01 +4.000000e-02 1.934052e+01 +4.500000e-02 2.013447e+01 +5.000000e-02 2.086114e+01 +5.500000e-02 2.154009e+01 +6.000000e-02 2.216987e+01 +6.500000e-02 2.276848e+01 +7.000000e-02 2.334527e+01 +7.500000e-02 2.390787e+01 +8.000000e-02 2.446245e+01 +8.500000e-02 2.501405e+01 +9.000000e-02 2.556665e+01 +9.500000e-02 2.612346e+01 +1.000000e-01 2.668698e+01 +volume fraction= 0.492602 +fiber_centers_YZ= (0.008825,0.040249) (0.000073,0.037920) (0.009689,0.012389) (0.008355,0.004393) (0.009133,0.031769) (0.002058,0.013430) (0.015490,0.007310) (0.002715,0.045457) (0.000405,0.005800) (0.001544,0.030016) (0.019925,0.045771) (0.009193,0.021329) (0.017159,0.025651) (0.000723,0.021149) (0.016596,0.034398) (0.016515,0.017520) (0.033825,0.040249) (0.025073,0.037920) (0.034689,0.012389) (0.033355,0.004393) (0.034133,0.031769) (0.027058,0.013430) (0.040490,0.007310) (0.027715,0.045457) (0.025405,0.005800) (0.026544,0.030016) (0.044925,0.045771) (0.034193,0.021329) (0.042159,0.025651) (0.025723,0.021149) (0.041596,0.034398) (0.041515,0.017520) (0.050073,0.037920) (0.052058,0.013430) (0.052715,0.045457) (0.050405,0.005800) (0.051544,0.030016) (0.050723,0.021149) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4926_2_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4926_2_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..263f5a39783a6d958843d2da9704fc791ecda3ee --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4926_2_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 2.331101e+01 -9.186792e-05 -3.935303e-03 +1.000000e-02 3.753651e+01 -1.496208e-04 -8.193560e-03 +1.500000e-02 4.817148e+01 -1.937928e-04 -1.256238e-02 +2.000000e-02 5.710636e+01 -2.313884e-04 -1.696164e-02 +2.500000e-02 6.503211e+01 -2.650263e-04 -2.136202e-02 +3.000000e-02 7.223999e+01 -2.958521e-04 -2.575095e-02 +3.500000e-02 7.890693e+01 -3.245760e-04 -3.012087e-02 +4.000000e-02 8.516225e+01 -3.517242e-04 -3.446712e-02 +4.500000e-02 9.106168e+01 -3.775227e-04 -3.878603e-02 +5.000000e-02 9.667383e+01 -4.022488e-04 -4.307579e-02 +5.500000e-02 1.020361e+02 -4.260521e-04 -4.733520e-02 +6.000000e-02 1.071722e+02 -4.490232e-04 -5.156373e-02 +6.500000e-02 1.120949e+02 -4.712074e-04 -5.576134e-02 +7.000000e-02 1.168107e+02 -4.926195e-04 -5.992835e-02 +7.500000e-02 1.213206e+02 -5.132518e-04 -6.406533e-02 +8.000000e-02 1.256013e+02 -5.328932e-04 -6.817257e-02 +8.500000e-02 1.296796e+02 -5.518144e-04 -7.225212e-02 +9.000000e-02 1.335536e+02 -5.699261e-04 -7.630338e-02 +9.500000e-02 1.372339e+02 -5.872200e-04 -8.032609e-02 +1.000000e-01 1.407177e+02 -6.036995e-04 -8.432104e-02 +volume fraction= 0.492602 +fiber_centers_YZ= (0.008825,0.040249) (0.000073,0.037920) (0.009689,0.012389) (0.008355,0.004393) (0.009133,0.031769) (0.002058,0.013430) (0.015490,0.007310) (0.002715,0.045457) (0.000405,0.005800) (0.001544,0.030016) (0.019925,0.045771) (0.009193,0.021329) (0.017159,0.025651) (0.000723,0.021149) (0.016596,0.034398) (0.016515,0.017520) (0.033825,0.040249) (0.025073,0.037920) (0.034689,0.012389) (0.033355,0.004393) (0.034133,0.031769) (0.027058,0.013430) (0.040490,0.007310) (0.027715,0.045457) (0.025405,0.005800) (0.026544,0.030016) (0.044925,0.045771) (0.034193,0.021329) (0.042159,0.025651) (0.025723,0.021149) (0.041596,0.034398) (0.041515,0.017520) (0.050073,0.037920) (0.052058,0.013430) (0.052715,0.045457) (0.050405,0.005800) (0.051544,0.030016) (0.050723,0.021149) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4926_3_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4926_3_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..bdd0482d6abbfe1c99fbda571fc212add8065421 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4926_3_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 4.932157e+02 -1.943250e-03 -1.937145e-03 +1.000000e-02 9.848498e+02 -3.872848e-03 -3.860576e-03 +1.500000e-02 1.474822e+03 -5.792353e-03 -5.773575e-03 +2.000000e-02 1.962840e+03 -7.714132e-03 -7.687042e-03 +2.500000e-02 2.448922e+03 -9.639078e-03 -9.601287e-03 +3.000000e-02 2.933382e+03 -1.155755e-02 -1.150781e-02 +3.500000e-02 3.416354e+03 -1.346495e-02 -1.340259e-02 +4.000000e-02 3.897878e+03 -1.536038e-02 -1.528487e-02 +4.500000e-02 4.377968e+03 -1.724374e-02 -1.715460e-02 +5.000000e-02 4.856640e+03 -1.911509e-02 -1.901186e-02 +5.500000e-02 5.333904e+03 -2.097449e-02 -2.085676e-02 +6.000000e-02 5.809773e+03 -2.282203e-02 -2.268942e-02 +6.500000e-02 6.284257e+03 -2.465780e-02 -2.450994e-02 +7.000000e-02 6.757361e+03 -2.648210e-02 -2.631865e-02 +7.500000e-02 7.229114e+03 -2.829440e-02 -2.811503e-02 +8.000000e-02 7.699506e+03 -3.009555e-02 -2.989996e-02 +8.500000e-02 8.168562e+03 -3.188503e-02 -3.167295e-02 +9.000000e-02 8.636279e+03 -3.366343e-02 -3.343459e-02 +9.500000e-02 9.102679e+03 -3.543083e-02 -3.518490e-02 +1.000000e-01 9.567757e+03 -3.718655e-02 -3.692350e-02 +volume fraction= 0.492602 +fiber_centers_YZ= (0.016147,0.023992) (0.009057,0.045210) (0.002333,0.012636) (0.018838,0.013611) (0.009418,0.018847) (0.000045,0.020257) (0.015495,0.040800) (0.008997,0.036256) (0.000181,0.004873) (0.017247,0.005758) (0.000058,0.028641) (0.017065,0.032726) (0.000399,0.037607) (0.008562,0.008083) (0.008521,0.027937) (0.000999,0.045356) (0.041147,0.023992) (0.034057,0.045210) (0.027333,0.012636) (0.043838,0.013611) (0.034418,0.018847) (0.025045,0.020257) (0.040495,0.040800) (0.033997,0.036256) (0.025181,0.004873) (0.042247,0.005758) (0.025058,0.028641) (0.042065,0.032726) (0.025399,0.037607) (0.033562,0.008083) (0.033521,0.027937) (0.025999,0.045356) (0.052333,0.012636) (0.050045,0.020257) (0.050181,0.004873) (0.050058,0.028641) (0.050399,0.037607) (0.050999,0.045356) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4926_3_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4926_3_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..19738c8a047fb33974e2951f2f7bd9ad68f6b87b --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4926_3_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 7.206567e+00 +1.000000e-02 1.092154e+01 +1.500000e-02 1.311727e+01 +2.000000e-02 1.476879e+01 +2.500000e-02 1.612692e+01 +3.000000e-02 1.728073e+01 +3.500000e-02 1.827976e+01 +4.000000e-02 1.915918e+01 +4.500000e-02 1.994610e+01 +5.000000e-02 2.066186e+01 +5.500000e-02 2.132348e+01 +6.000000e-02 2.194455e+01 +6.500000e-02 2.253596e+01 +7.000000e-02 2.310646e+01 +7.500000e-02 2.366306e+01 +8.000000e-02 2.421145e+01 +8.500000e-02 2.475620e+01 +9.000000e-02 2.530100e+01 +9.500000e-02 2.584883e+01 +1.000000e-01 2.640214e+01 +volume fraction= 0.492602 +fiber_centers_YZ= (0.016147,0.023992) (0.009057,0.045210) (0.002333,0.012636) (0.018838,0.013611) (0.009418,0.018847) (0.000045,0.020257) (0.015495,0.040800) (0.008997,0.036256) (0.000181,0.004873) (0.017247,0.005758) (0.000058,0.028641) (0.017065,0.032726) (0.000399,0.037607) (0.008562,0.008083) (0.008521,0.027937) (0.000999,0.045356) (0.041147,0.023992) (0.034057,0.045210) (0.027333,0.012636) (0.043838,0.013611) (0.034418,0.018847) (0.025045,0.020257) (0.040495,0.040800) (0.033997,0.036256) (0.025181,0.004873) (0.042247,0.005758) (0.025058,0.028641) (0.042065,0.032726) (0.025399,0.037607) (0.033562,0.008083) (0.033521,0.027937) (0.025999,0.045356) (0.052333,0.012636) (0.050045,0.020257) (0.050181,0.004873) (0.050058,0.028641) (0.050399,0.037607) (0.050999,0.045356) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4926_3_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4926_3_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..020a9ae1f4222f643de4d4cfde0648c5d5e80628 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4926_3_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 2.195257e+01 -8.681223e-05 -3.981159e-03 +1.000000e-02 3.540662e+01 -1.414975e-04 -8.270221e-03 +1.500000e-02 4.531273e+01 -1.827267e-04 -1.266674e-02 +2.000000e-02 5.369272e+01 -2.180101e-04 -1.708647e-02 +2.500000e-02 6.119983e+01 -2.498499e-04 -2.150161e-02 +3.000000e-02 6.810688e+01 -2.793459e-04 -2.589986e-02 +3.500000e-02 7.458139e+01 -3.071860e-04 -3.027378e-02 +4.000000e-02 8.074072e+01 -3.338557e-04 -3.461829e-02 +4.500000e-02 8.667011e+01 -3.597092e-04 -3.892980e-02 +5.000000e-02 9.243368e+01 -3.850137e-04 -4.320568e-02 +5.500000e-02 9.807881e+01 -4.099666e-04 -4.744411e-02 +6.000000e-02 1.036407e+02 -4.347139e-04 -5.164379e-02 +6.500000e-02 1.091195e+02 -4.593038e-04 -5.580360e-02 +7.000000e-02 1.145800e+02 -4.839116e-04 -5.992352e-02 +7.500000e-02 1.200076e+02 -5.085205e-04 -6.400309e-02 +8.000000e-02 1.254045e+02 -5.331366e-04 -6.804228e-02 +8.500000e-02 1.307655e+02 -5.577342e-04 -7.204128e-02 +9.000000e-02 1.360747e+02 -5.822432e-04 -7.600057e-02 +9.500000e-02 1.413204e+02 -6.066039e-04 -7.992014e-02 +1.000000e-01 1.464700e+02 -6.306684e-04 -8.380065e-02 +volume fraction= 0.492602 +fiber_centers_YZ= (0.016147,0.023992) (0.009057,0.045210) (0.002333,0.012636) (0.018838,0.013611) (0.009418,0.018847) (0.000045,0.020257) (0.015495,0.040800) (0.008997,0.036256) (0.000181,0.004873) (0.017247,0.005758) (0.000058,0.028641) (0.017065,0.032726) (0.000399,0.037607) (0.008562,0.008083) (0.008521,0.027937) (0.000999,0.045356) (0.041147,0.023992) (0.034057,0.045210) (0.027333,0.012636) (0.043838,0.013611) (0.034418,0.018847) (0.025045,0.020257) (0.040495,0.040800) (0.033997,0.036256) (0.025181,0.004873) (0.042247,0.005758) (0.025058,0.028641) (0.042065,0.032726) (0.025399,0.037607) (0.033562,0.008083) (0.033521,0.027937) (0.025999,0.045356) (0.052333,0.012636) (0.050045,0.020257) (0.050181,0.004873) (0.050058,0.028641) (0.050399,0.037607) (0.050999,0.045356) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4926_4_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4926_4_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..40fe0f736f859dcb6da85b792f734141061f1be7 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4926_4_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 4.932380e+02 -1.915528e-03 -1.962663e-03 +1.000000e-02 9.848919e+02 -3.817528e-03 -3.911518e-03 +1.500000e-02 1.474882e+03 -5.709236e-03 -5.850281e-03 +2.000000e-02 1.962914e+03 -7.601287e-03 -7.791793e-03 +2.500000e-02 2.449011e+03 -9.493717e-03 -9.737101e-03 +3.000000e-02 2.933479e+03 -1.137847e-02 -1.167645e-02 +3.500000e-02 3.416463e+03 -1.325136e-02 -1.360447e-02 +4.000000e-02 3.897997e+03 -1.511191e-02 -1.552041e-02 +4.500000e-02 4.378097e+03 -1.696008e-02 -1.742414e-02 +5.000000e-02 4.856777e+03 -1.879600e-02 -1.931576e-02 +5.500000e-02 5.334048e+03 -2.061967e-02 -2.119520e-02 +6.000000e-02 5.809929e+03 -2.243111e-02 -2.306243e-02 +6.500000e-02 6.284412e+03 -2.423101e-02 -2.491826e-02 +7.000000e-02 6.757532e+03 -2.601866e-02 -2.676177e-02 +7.500000e-02 7.229281e+03 -2.779513e-02 -2.859426e-02 +8.000000e-02 7.699673e+03 -2.955947e-02 -3.041438e-02 +8.500000e-02 8.168727e+03 -3.131245e-02 -3.222320e-02 +9.000000e-02 8.636448e+03 -3.305406e-02 -3.402061e-02 +9.500000e-02 9.102851e+03 -3.478444e-02 -3.580680e-02 +1.000000e-01 9.567936e+03 -3.650371e-02 -3.758182e-02 +volume fraction= 0.492602 +fiber_centers_YZ= (0.017220,0.004626) (0.007246,0.027188) (0.000273,0.030596) (0.016595,0.013249) (0.008903,0.014557) (0.019425,0.037079) (0.000728,0.012955) (0.000704,0.042996) (0.008602,0.045631) (0.017021,0.045727) (0.015638,0.029013) (0.001031,0.021652) (0.000243,0.004592) (0.011334,0.036334) (0.017008,0.021185) (0.008903,0.004252) (0.042220,0.004626) (0.032246,0.027188) (0.025273,0.030596) (0.041595,0.013249) (0.033903,0.014557) (0.044425,0.037079) (0.025728,0.012955) (0.025704,0.042996) (0.033602,0.045631) (0.042021,0.045727) (0.040638,0.029013) (0.026031,0.021652) (0.025243,0.004592) (0.036334,0.036334) (0.042008,0.021185) (0.033903,0.004252) (0.050273,0.030596) (0.050728,0.012955) (0.050704,0.042996) (0.051031,0.021652) (0.050243,0.004592) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4926_4_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4926_4_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..b85b06f9b99b26073f7bb33629932b1066703e97 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4926_4_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 7.484650e+00 +1.000000e-02 1.103983e+01 +1.500000e-02 1.326035e+01 +2.000000e-02 1.491356e+01 +2.500000e-02 1.627338e+01 +3.000000e-02 1.743041e+01 +3.500000e-02 1.843603e+01 +4.000000e-02 1.933311e+01 +4.500000e-02 2.012881e+01 +5.000000e-02 2.086414e+01 +5.500000e-02 2.154876e+01 +6.000000e-02 2.219555e+01 +6.500000e-02 2.281484e+01 +7.000000e-02 2.341502e+01 +7.500000e-02 2.400295e+01 +8.000000e-02 2.458422e+01 +8.500000e-02 2.516341e+01 +9.000000e-02 2.574424e+01 +9.500000e-02 2.632973e+01 +1.000000e-01 2.692236e+01 +volume fraction= 0.492602 +fiber_centers_YZ= (0.017220,0.004626) (0.007246,0.027188) (0.000273,0.030596) (0.016595,0.013249) (0.008903,0.014557) (0.019425,0.037079) (0.000728,0.012955) (0.000704,0.042996) (0.008602,0.045631) (0.017021,0.045727) (0.015638,0.029013) (0.001031,0.021652) (0.000243,0.004592) (0.011334,0.036334) (0.017008,0.021185) (0.008903,0.004252) (0.042220,0.004626) (0.032246,0.027188) (0.025273,0.030596) (0.041595,0.013249) (0.033903,0.014557) (0.044425,0.037079) (0.025728,0.012955) (0.025704,0.042996) (0.033602,0.045631) (0.042021,0.045727) (0.040638,0.029013) (0.026031,0.021652) (0.025243,0.004592) (0.036334,0.036334) (0.042008,0.021185) (0.033903,0.004252) (0.050273,0.030596) (0.050728,0.012955) (0.050704,0.042996) (0.051031,0.021652) (0.050243,0.004592) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4926_4_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4926_4_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..124a14aca944d33666d10ecb73f5f20bf01f8fb3 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4926_4_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 2.487607e+01 -9.706117e-05 -3.908402e-03 +1.000000e-02 3.951477e+01 -1.563359e-04 -8.158611e-03 +1.500000e-02 5.081009e+01 -2.026641e-04 -1.251860e-02 +2.000000e-02 6.032731e+01 -2.421627e-04 -1.691207e-02 +2.500000e-02 6.879934e+01 -2.776052e-04 -2.130787e-02 +3.000000e-02 7.654895e+01 -3.102429e-04 -2.569259e-02 +3.500000e-02 8.376879e+01 -3.408392e-04 -3.005837e-02 +4.000000e-02 9.058859e+01 -3.699154e-04 -3.440005e-02 +4.500000e-02 9.709869e+01 -3.978373e-04 -3.871414e-02 +5.000000e-02 1.033610e+02 -4.248570e-04 -4.299836e-02 +5.500000e-02 1.094192e+02 -4.511519e-04 -4.725126e-02 +6.000000e-02 1.153014e+02 -4.768347e-04 -5.147207e-02 +6.500000e-02 1.210246e+02 -5.019714e-04 -5.566050e-02 +7.000000e-02 1.265958e+02 -5.265846e-04 -5.981674e-02 +7.500000e-02 1.320151e+02 -5.506639e-04 -6.394126e-02 +8.000000e-02 1.372539e+02 -5.741059e-04 -6.803421e-02 +8.500000e-02 1.423470e+02 -5.969898e-04 -7.209727e-02 +9.000000e-02 1.472571e+02 -6.191685e-04 -7.613099e-02 +9.500000e-02 1.519663e+02 -6.405458e-04 -8.013631e-02 +1.000000e-01 1.564551e+02 -6.610192e-04 -8.411386e-02 +volume fraction= 0.492602 +fiber_centers_YZ= (0.017220,0.004626) (0.007246,0.027188) (0.000273,0.030596) (0.016595,0.013249) (0.008903,0.014557) (0.019425,0.037079) (0.000728,0.012955) (0.000704,0.042996) (0.008602,0.045631) (0.017021,0.045727) (0.015638,0.029013) (0.001031,0.021652) (0.000243,0.004592) (0.011334,0.036334) (0.017008,0.021185) (0.008903,0.004252) (0.042220,0.004626) (0.032246,0.027188) (0.025273,0.030596) (0.041595,0.013249) (0.033903,0.014557) (0.044425,0.037079) (0.025728,0.012955) (0.025704,0.042996) (0.033602,0.045631) (0.042021,0.045727) (0.040638,0.029013) (0.026031,0.021652) (0.025243,0.004592) (0.036334,0.036334) (0.042008,0.021185) (0.033903,0.004252) (0.050273,0.030596) (0.050728,0.012955) (0.050704,0.042996) (0.051031,0.021652) (0.050243,0.004592) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4926_5_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4926_5_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..86b97e11681d861a6c5c02f6926470344afd0f3a --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4926_5_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 4.932385e+02 -1.891056e-03 -1.985722e-03 +1.000000e-02 9.848915e+02 -3.768607e-03 -3.957629e-03 +1.500000e-02 1.474879e+03 -5.635384e-03 -5.919996e-03 +2.000000e-02 1.962908e+03 -7.499687e-03 -7.888112e-03 +2.500000e-02 2.449000e+03 -9.360618e-03 -9.863910e-03 +3.000000e-02 2.933463e+03 -1.121186e-02 -1.183582e-02 +3.500000e-02 3.416440e+03 -1.305030e-02 -1.379738e-02 +4.000000e-02 3.897967e+03 -1.487570e-02 -1.574757e-02 +4.500000e-02 4.378060e+03 -1.668812e-02 -1.768621e-02 +5.000000e-02 4.856731e+03 -1.848772e-02 -1.961331e-02 +5.500000e-02 5.333993e+03 -2.027459e-02 -2.152870e-02 +6.000000e-02 5.809864e+03 -2.204877e-02 -2.343242e-02 +6.500000e-02 6.284336e+03 -2.381092e-02 -2.532516e-02 +7.000000e-02 6.757440e+03 -2.556065e-02 -2.720635e-02 +7.500000e-02 7.229184e+03 -2.729807e-02 -2.907585e-02 +8.000000e-02 7.699567e+03 -2.902390e-02 -3.093503e-02 +8.500000e-02 8.168609e+03 -3.073766e-02 -3.278237e-02 +9.000000e-02 8.636310e+03 -3.243972e-02 -3.461798e-02 +9.500000e-02 9.102702e+03 -3.413007e-02 -3.644305e-02 +1.000000e-01 9.567764e+03 -3.580922e-02 -3.825727e-02 +volume fraction= 0.492602 +fiber_centers_YZ= (0.016949,0.030328) (0.019796,0.012774) (0.017152,0.045492) (0.005359,0.037973) (0.009009,0.045541) (0.000077,0.005216) (0.008728,0.007789) (0.013336,0.037998) (0.016511,0.022270) (0.000302,0.029795) (0.016301,0.004405) (0.000753,0.020597) (0.002511,0.012817) (0.000635,0.045342) (0.008757,0.019887) (0.009225,0.031090) (0.041949,0.030328) (0.044796,0.012774) (0.042152,0.045492) (0.030359,0.037973) (0.034009,0.045541) (0.025077,0.005216) (0.033728,0.007789) (0.038336,0.037998) (0.041511,0.022270) (0.025302,0.029795) (0.041301,0.004405) (0.025753,0.020597) (0.027511,0.012817) (0.025635,0.045342) (0.033757,0.019887) (0.034225,0.031090) (0.050077,0.005216) (0.050302,0.029795) (0.050753,0.020597) (0.052511,0.012817) (0.050635,0.045342) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4926_5_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4926_5_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..64a2c7f618c63a3f3f261abab56dfda97b76714a --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4926_5_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 7.648585e+00 +1.000000e-02 1.123835e+01 +1.500000e-02 1.351487e+01 +2.000000e-02 1.519694e+01 +2.500000e-02 1.658046e+01 +3.000000e-02 1.776015e+01 +3.500000e-02 1.878875e+01 +4.000000e-02 1.970314e+01 +4.500000e-02 2.053094e+01 +5.000000e-02 2.129321e+01 +5.500000e-02 2.200627e+01 +6.000000e-02 2.268277e+01 +6.500000e-02 2.333272e+01 +7.000000e-02 2.396397e+01 +7.500000e-02 2.458283e+01 +8.000000e-02 2.519435e+01 +8.500000e-02 2.580799e+01 +9.000000e-02 2.641613e+01 +9.500000e-02 2.702702e+01 +1.000000e-01 2.764296e+01 +volume fraction= 0.492602 +fiber_centers_YZ= (0.016949,0.030328) (0.019796,0.012774) (0.017152,0.045492) (0.005359,0.037973) (0.009009,0.045541) (0.000077,0.005216) (0.008728,0.007789) (0.013336,0.037998) (0.016511,0.022270) (0.000302,0.029795) (0.016301,0.004405) (0.000753,0.020597) (0.002511,0.012817) (0.000635,0.045342) (0.008757,0.019887) (0.009225,0.031090) (0.041949,0.030328) (0.044796,0.012774) (0.042152,0.045492) (0.030359,0.037973) (0.034009,0.045541) (0.025077,0.005216) (0.033728,0.007789) (0.038336,0.037998) (0.041511,0.022270) (0.025302,0.029795) (0.041301,0.004405) (0.025753,0.020597) (0.027511,0.012817) (0.025635,0.045342) (0.033757,0.019887) (0.034225,0.031090) (0.050077,0.005216) (0.050302,0.029795) (0.050753,0.020597) (0.052511,0.012817) (0.050635,0.045342) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4926_5_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4926_5_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..b1be183064a6d657143c45cb44202c386e560345 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CHDPE_0.4926_5_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 2.262459e+01 -8.708249e-05 -4.055197e-03 +1.000000e-02 3.513101e+01 -1.370715e-04 -8.431649e-03 +1.500000e-02 4.451443e+01 -1.748166e-04 -1.290880e-02 +2.000000e-02 5.233805e+01 -2.064736e-04 -1.740937e-02 +2.500000e-02 5.924783e+01 -2.345492e-04 -2.190510e-02 +3.000000e-02 6.552362e+01 -2.601516e-04 -2.638434e-02 +3.500000e-02 7.135686e+01 -2.840137e-04 -3.084052e-02 +4.000000e-02 7.681862e+01 -3.064795e-04 -3.526886e-02 +4.500000e-02 8.201493e+01 -3.279464e-04 -3.966637e-02 +5.000000e-02 8.700690e+01 -3.486613e-04 -4.403083e-02 +5.500000e-02 9.183892e+01 -3.688038e-04 -4.836074e-02 +6.000000e-02 9.654247e+01 -3.885020e-04 -5.265510e-02 +6.500000e-02 1.011410e+02 -4.078508e-04 -5.691327e-02 +7.000000e-02 1.056512e+02 -4.269170e-04 -6.113490e-02 +7.500000e-02 1.100838e+02 -4.457438e-04 -6.531990e-02 +8.000000e-02 1.144468e+02 -4.643613e-04 -6.946831e-02 +8.500000e-02 1.187446e+02 -4.827853e-04 -7.358030e-02 +9.000000e-02 1.229796e+02 -5.010230e-04 -7.765613e-02 +9.500000e-02 1.271521e+02 -5.190722e-04 -8.169616e-02 +1.000000e-01 1.312605e+02 -5.369232e-04 -8.570077e-02 +volume fraction= 0.492602 +fiber_centers_YZ= (0.016949,0.030328) (0.019796,0.012774) (0.017152,0.045492) (0.005359,0.037973) (0.009009,0.045541) (0.000077,0.005216) (0.008728,0.007789) (0.013336,0.037998) (0.016511,0.022270) (0.000302,0.029795) (0.016301,0.004405) (0.000753,0.020597) (0.002511,0.012817) (0.000635,0.045342) (0.008757,0.019887) (0.009225,0.031090) (0.041949,0.030328) (0.044796,0.012774) (0.042152,0.045492) (0.030359,0.037973) (0.034009,0.045541) (0.025077,0.005216) (0.033728,0.007789) (0.038336,0.037998) (0.041511,0.022270) (0.025302,0.029795) (0.041301,0.004405) (0.025753,0.020597) (0.027511,0.012817) (0.025635,0.045342) (0.033757,0.019887) (0.034225,0.031090) (0.050077,0.005216) (0.050302,0.029795) (0.050753,0.020597) (0.052511,0.012817) (0.050635,0.045342) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.0924_1_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.0924_1_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..597bf8057655a19804faffb801672230f5c12847 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.0924_1_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 9.634925e+01 -2.145485e-03 -2.180181e-03 +1.000000e-02 1.924786e+02 -4.274927e-03 -4.344158e-03 +1.500000e-02 2.883893e+02 -6.388515e-03 -6.492118e-03 +2.000000e-02 3.840824e+02 -8.486438e-03 -8.624251e-03 +2.500000e-02 4.795558e+02 -1.056907e-02 -1.074093e-02 +3.000000e-02 5.747402e+02 -1.264085e-02 -1.284643e-02 +3.500000e-02 6.690453e+02 -1.473708e-02 -1.497645e-02 +4.000000e-02 7.618213e+02 -1.689491e-02 -1.717399e-02 +4.500000e-02 8.538461e+02 -1.907047e-02 -1.939360e-02 +5.000000e-02 9.455362e+02 -2.124119e-02 -2.160952e-02 +5.500000e-02 1.036962e+03 -2.340354e-02 -2.381766e-02 +6.000000e-02 1.128144e+03 -2.555673e-02 -2.601712e-02 +6.500000e-02 1.219096e+03 -2.770031e-02 -2.820738e-02 +7.000000e-02 1.309831e+03 -2.983388e-02 -3.038801e-02 +7.500000e-02 1.400358e+03 -3.195708e-02 -3.255862e-02 +8.000000e-02 1.490690e+03 -3.406962e-02 -3.471888e-02 +8.500000e-02 1.580835e+03 -3.617120e-02 -3.686847e-02 +9.000000e-02 1.670801e+03 -3.826159e-02 -3.900712e-02 +9.500000e-02 1.760598e+03 -4.034056e-02 -4.113457e-02 +1.000000e-01 1.850231e+03 -4.240793e-02 -4.325063e-02 +volume fraction= 0.092363 +fiber_centers_YZ= (0.012642,0.026697) (0.000292,0.012098) (0.012669,0.012006) (0.037642,0.026697) (0.025292,0.012098) (0.037669,0.012006) (0.050292,0.012098) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.0924_1_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.0924_1_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..e18b850c7169bf003bafdf201cfa00b77a837b24 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.0924_1_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 3.912438e+00 +1.000000e-02 7.825513e+00 +1.500000e-02 1.159946e+01 +2.000000e-02 1.491310e+01 +2.500000e-02 1.770289e+01 +3.000000e-02 1.964117e+01 +3.500000e-02 2.071094e+01 +4.000000e-02 2.144256e+01 +4.500000e-02 2.201151e+01 +5.000000e-02 2.246220e+01 +5.500000e-02 2.281794e+01 +6.000000e-02 2.309469e+01 +6.500000e-02 2.330431e+01 +7.000000e-02 2.345815e+01 +7.500000e-02 2.355966e+01 +8.000000e-02 2.361777e+01 +8.500000e-02 2.363654e+01 +9.000000e-02 2.362500e+01 +9.500000e-02 2.358431e+01 +1.000000e-01 2.352091e+01 +volume fraction= 0.092363 +fiber_centers_YZ= (0.012642,0.026697) (0.000292,0.012098) (0.012669,0.012006) (0.037642,0.026697) (0.025292,0.012098) (0.037669,0.012006) (0.050292,0.012098) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.0924_1_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.0924_1_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..ea1cbc83b9223312b71699337f6f5376e34c1974 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.0924_1_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 7.126832e+00 -1.586438e-04 -3.840261e-03 +1.000000e-02 1.420675e+01 -3.152653e-04 -7.651637e-03 +1.500000e-02 2.116959e+01 -4.686277e-04 -1.144152e-02 +2.000000e-02 2.756477e+01 -6.107443e-04 -1.525707e-02 +2.500000e-02 3.310972e+01 -7.354904e-04 -1.915182e-02 +3.000000e-02 3.742817e+01 -8.354733e-04 -2.319241e-02 +3.500000e-02 4.042300e+01 -9.092382e-04 -2.739902e-02 +4.000000e-02 4.239452e+01 -9.624490e-04 -3.172548e-02 +4.500000e-02 4.382027e+01 -1.003579e-03 -3.609810e-02 +5.000000e-02 4.491259e+01 -1.036532e-03 -4.048431e-02 +5.500000e-02 4.575605e+01 -1.063003e-03 -4.487124e-02 +6.000000e-02 4.639946e+01 -1.084054e-03 -4.925147e-02 +6.500000e-02 4.687838e+01 -1.100514e-03 -5.361955e-02 +7.000000e-02 4.722090e+01 -1.113074e-03 -5.797118e-02 +7.500000e-02 4.745015e+01 -1.122330e-03 -6.230278e-02 +8.000000e-02 4.758575e+01 -1.128796e-03 -6.661140e-02 +8.500000e-02 4.764442e+01 -1.132924e-03 -7.089452e-02 +9.000000e-02 4.763858e+01 -1.135003e-03 -7.515069e-02 +9.500000e-02 4.758390e+01 -1.135569e-03 -7.937698e-02 +1.000000e-01 4.748916e+01 -1.134821e-03 -8.357257e-02 +volume fraction= 0.092363 +fiber_centers_YZ= (0.012642,0.026697) (0.000292,0.012098) (0.012669,0.012006) (0.037642,0.026697) (0.025292,0.012098) (0.037669,0.012006) (0.050292,0.012098) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.0924_2_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.0924_2_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..585867cd4767a152ff025c2e464c826103246879 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.0924_2_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 9.634155e+01 -2.140903e-03 -2.184435e-03 +1.000000e-02 1.924632e+02 -4.265785e-03 -4.352648e-03 +1.500000e-02 2.883660e+02 -6.374833e-03 -6.504828e-03 +2.000000e-02 3.840513e+02 -8.468238e-03 -8.641166e-03 +2.500000e-02 4.795168e+02 -1.054638e-02 -1.076203e-02 +3.000000e-02 5.746931e+02 -1.261371e-02 -1.287170e-02 +3.500000e-02 6.689902e+02 -1.470539e-02 -1.500604e-02 +4.000000e-02 7.617582e+02 -1.685775e-02 -1.720887e-02 +4.500000e-02 8.537748e+02 -1.902727e-02 -1.943433e-02 +5.000000e-02 9.454567e+02 -2.119178e-02 -2.165631e-02 +5.500000e-02 1.036874e+03 -2.334782e-02 -2.387062e-02 +6.000000e-02 1.128048e+03 -2.549461e-02 -2.607636e-02 +6.500000e-02 1.218992e+03 -2.763169e-02 -2.827300e-02 +7.000000e-02 1.309718e+03 -2.975867e-02 -3.046011e-02 +7.500000e-02 1.400238e+03 -3.187522e-02 -3.263730e-02 +8.000000e-02 1.490561e+03 -3.398102e-02 -3.480422e-02 +8.500000e-02 1.580698e+03 -3.607579e-02 -3.696054e-02 +9.000000e-02 1.670656e+03 -3.815931e-02 -3.910600e-02 +9.500000e-02 1.760444e+03 -4.023134e-02 -4.124033e-02 +1.000000e-01 1.850069e+03 -4.229172e-02 -4.336332e-02 +volume fraction= 0.092363 +fiber_centers_YZ= (0.002068,0.033348) (0.015870,0.007678) (0.017432,0.033921) (0.027068,0.033348) (0.040870,0.007678) (0.042432,0.033921) (0.052068,0.033348) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.0924_2_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.0924_2_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..09170ebc34fdd270b81ba1d6129e7aade2f3905b --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.0924_2_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 3.933770e+00 +1.000000e-02 7.864406e+00 +1.500000e-02 1.160312e+01 +2.000000e-02 1.491663e+01 +2.500000e-02 1.770735e+01 +3.000000e-02 1.963637e+01 +3.500000e-02 2.070836e+01 +4.000000e-02 2.143589e+01 +4.500000e-02 2.199862e+01 +5.000000e-02 2.244398e+01 +5.500000e-02 2.279475e+01 +6.000000e-02 2.306679e+01 +6.500000e-02 2.327264e+01 +7.000000e-02 2.342025e+01 +7.500000e-02 2.351983e+01 +8.000000e-02 2.357815e+01 +8.500000e-02 2.360332e+01 +9.000000e-02 2.359986e+01 +9.500000e-02 2.357225e+01 +1.000000e-01 2.352237e+01 +volume fraction= 0.092363 +fiber_centers_YZ= (0.002068,0.033348) (0.015870,0.007678) (0.017432,0.033921) (0.027068,0.033348) (0.040870,0.007678) (0.042432,0.033921) (0.052068,0.033348) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.0924_2_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.0924_2_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..2c37384e30dcc5b825ad36fb2e8c7130ae31f42b --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.0924_2_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 7.146516e+00 -1.587544e-04 -3.844330e-03 +1.000000e-02 1.424523e+01 -3.154667e-04 -7.659832e-03 +1.500000e-02 2.123192e+01 -4.690461e-04 -1.145264e-02 +2.000000e-02 2.768913e+01 -6.123288e-04 -1.526290e-02 +2.500000e-02 3.338342e+01 -7.404530e-04 -1.913268e-02 +3.000000e-02 3.774040e+01 -8.417229e-04 -2.316633e-02 +3.500000e-02 4.072371e+01 -9.155843e-04 -2.737501e-02 +4.000000e-02 4.276117e+01 -9.702968e-04 -3.169074e-02 +4.500000e-02 4.423713e+01 -1.012734e-03 -3.605471e-02 +5.000000e-02 4.536267e+01 -1.046693e-03 -4.043502e-02 +5.500000e-02 4.623310e+01 -1.073987e-03 -4.481724e-02 +6.000000e-02 4.690113e+01 -1.095741e-03 -4.919333e-02 +6.500000e-02 4.739995e+01 -1.112741e-03 -5.355818e-02 +7.000000e-02 4.775305e+01 -1.125594e-03 -5.790811e-02 +7.500000e-02 4.798557e+01 -1.134923e-03 -6.223938e-02 +8.000000e-02 4.811431e+01 -1.141197e-03 -6.654935e-02 +8.500000e-02 4.815571e+01 -1.144864e-03 -7.083557e-02 +9.000000e-02 4.812438e+01 -1.146326e-03 -7.509590e-02 +9.500000e-02 4.803331e+01 -1.145946e-03 -7.932847e-02 +1.000000e-01 4.789414e+01 -1.144049e-03 -8.353171e-02 +volume fraction= 0.092363 +fiber_centers_YZ= (0.002068,0.033348) (0.015870,0.007678) (0.017432,0.033921) (0.027068,0.033348) (0.040870,0.007678) (0.042432,0.033921) (0.052068,0.033348) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.0924_3_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.0924_3_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..86b09ab55c0c817f96abb44af88e372bcd8c9ab8 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.0924_3_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 9.634870e+01 -2.176303e-03 -2.149507e-03 +1.000000e-02 1.924776e+02 -4.336414e-03 -4.282955e-03 +1.500000e-02 2.883878e+02 -6.480522e-03 -6.400534e-03 +2.000000e-02 3.840804e+02 -8.608816e-03 -8.502433e-03 +2.500000e-02 4.795535e+02 -1.072167e-02 -1.058903e-02 +3.000000e-02 5.747375e+02 -1.282342e-02 -1.266468e-02 +3.500000e-02 6.690423e+02 -1.494993e-02 -1.476449e-02 +4.000000e-02 7.618181e+02 -1.714340e-02 -1.692641e-02 +4.500000e-02 8.538426e+02 -1.935838e-02 -1.910660e-02 +5.000000e-02 9.455323e+02 -2.156958e-02 -2.128205e-02 +5.500000e-02 1.036958e+03 -2.377298e-02 -2.344913e-02 +6.000000e-02 1.128140e+03 -2.596769e-02 -2.560705e-02 +6.500000e-02 1.219092e+03 -2.815322e-02 -2.775533e-02 +7.000000e-02 1.309826e+03 -3.032913e-02 -2.989357e-02 +7.500000e-02 1.400353e+03 -3.249504e-02 -3.202144e-02 +8.000000e-02 1.490684e+03 -3.465063e-02 -3.413860e-02 +8.500000e-02 1.580829e+03 -3.679557e-02 -3.624477e-02 +9.000000e-02 1.670795e+03 -3.892960e-02 -3.833971e-02 +9.500000e-02 1.760591e+03 -4.105247e-02 -4.042320e-02 +1.000000e-01 1.850224e+03 -4.316398e-02 -4.249504e-02 +volume fraction= 0.092363 +fiber_centers_YZ= (0.002172,0.004473) (0.001171,0.045152) (0.013330,0.024553) (0.027172,0.004473) (0.026171,0.045152) (0.038330,0.024553) (0.052172,0.004473) (0.051171,0.045152) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.0924_3_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.0924_3_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..c83801cd4161763d08bd8964e2445710c2a54edd --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.0924_3_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 3.767755e+00 +1.000000e-02 7.536866e+00 +1.500000e-02 1.130066e+01 +2.000000e-02 1.486467e+01 +2.500000e-02 1.779199e+01 +3.000000e-02 1.963693e+01 +3.500000e-02 2.069469e+01 +4.000000e-02 2.144775e+01 +4.500000e-02 2.203141e+01 +5.000000e-02 2.248707e+01 +5.500000e-02 2.284078e+01 +6.000000e-02 2.311124e+01 +6.500000e-02 2.331237e+01 +7.000000e-02 2.345511e+01 +7.500000e-02 2.354360e+01 +8.000000e-02 2.359490e+01 +8.500000e-02 2.360786e+01 +9.000000e-02 2.359108e+01 +9.500000e-02 2.354582e+01 +1.000000e-01 2.347237e+01 +volume fraction= 0.092363 +fiber_centers_YZ= (0.002172,0.004473) (0.001171,0.045152) (0.013330,0.024553) (0.027172,0.004473) (0.026171,0.045152) (0.038330,0.024553) (0.052172,0.004473) (0.051171,0.045152) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.0924_3_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.0924_3_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..b33cbb821b786883e60f7b053100e8e0a402b0f6 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.0924_3_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 6.867440e+00 -1.550434e-04 -3.835434e-03 +1.000000e-02 1.369251e+01 -3.081366e-04 -7.642214e-03 +1.500000e-02 2.047350e+01 -4.592459e-04 -1.142106e-02 +2.000000e-02 2.713699e+01 -6.067108e-04 -1.518657e-02 +2.500000e-02 3.321397e+01 -7.417354e-04 -1.900720e-02 +3.000000e-02 3.770723e+01 -8.465517e-04 -2.301863e-02 +3.500000e-02 4.069158e+01 -9.221094e-04 -2.721994e-02 +4.000000e-02 4.270093e+01 -9.778071e-04 -3.153513e-02 +4.500000e-02 4.418869e+01 -1.021585e-03 -3.589513e-02 +5.000000e-02 4.535278e+01 -1.057080e-03 -4.026879e-02 +5.500000e-02 4.627010e+01 -1.085886e-03 -4.464361e-02 +6.000000e-02 4.698182e+01 -1.108981e-03 -4.901272e-02 +6.500000e-02 4.751797e+01 -1.127131e-03 -5.337112e-02 +7.000000e-02 4.790332e+01 -1.140995e-03 -5.771476e-02 +7.500000e-02 4.816088e+01 -1.151098e-03 -6.204053e-02 +8.000000e-02 4.830553e+01 -1.158033e-03 -6.634506e-02 +8.500000e-02 4.835520e+01 -1.162198e-03 -7.062620e-02 +9.000000e-02 4.832382e+01 -1.163978e-03 -7.488198e-02 +9.500000e-02 4.822150e+01 -1.163739e-03 -7.911060e-02 +1.000000e-01 4.806362e+01 -1.161737e-03 -8.331088e-02 +volume fraction= 0.092363 +fiber_centers_YZ= (0.002172,0.004473) (0.001171,0.045152) (0.013330,0.024553) (0.027172,0.004473) (0.026171,0.045152) (0.038330,0.024553) (0.052172,0.004473) (0.051171,0.045152) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.0924_4_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.0924_4_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..23aa453bbd8b4fd1e43a17dbfb6cb1e4494a9194 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.0924_4_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 9.634174e+01 -2.164087e-03 -2.162073e-03 +1.000000e-02 1.924637e+02 -4.312041e-03 -4.308022e-03 +1.500000e-02 2.883672e+02 -6.444052e-03 -6.438037e-03 +2.000000e-02 3.840532e+02 -8.560311e-03 -8.552308e-03 +2.500000e-02 4.795196e+02 -1.066119e-02 -1.065121e-02 +3.000000e-02 5.746972e+02 -1.275103e-02 -1.273909e-02 +3.500000e-02 6.689957e+02 -1.486526e-02 -1.485140e-02 +4.000000e-02 7.617649e+02 -1.704418e-02 -1.702809e-02 +4.500000e-02 8.537832e+02 -1.924311e-02 -1.922452e-02 +5.000000e-02 9.454667e+02 -2.143780e-02 -2.141665e-02 +5.500000e-02 1.036886e+03 -2.362441e-02 -2.360069e-02 +6.000000e-02 1.128062e+03 -2.580209e-02 -2.577578e-02 +6.500000e-02 1.219008e+03 -2.797037e-02 -2.794145e-02 +7.000000e-02 1.309735e+03 -3.012881e-02 -3.009728e-02 +7.500000e-02 1.400257e+03 -3.227707e-02 -3.224292e-02 +8.000000e-02 1.490582e+03 -3.441480e-02 -3.437803e-02 +8.500000e-02 1.580721e+03 -3.654171e-02 -3.650233e-02 +9.000000e-02 1.670681e+03 -3.865755e-02 -3.861555e-02 +9.500000e-02 1.760471e+03 -4.076208e-02 -4.071746e-02 +1.000000e-01 1.850098e+03 -4.285510e-02 -4.280788e-02 +volume fraction= 0.092363 +fiber_centers_YZ= (0.017336,0.044904) (0.002734,0.033180) (0.011406,0.009184) (0.042336,0.044904) (0.027734,0.033180) (0.036406,0.009184) (0.052734,0.033180) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.0924_4_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.0924_4_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..ad7c7466227816981623e2dd32d0dce8ff610004 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.0924_4_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 3.818678e+00 +1.000000e-02 7.638682e+00 +1.500000e-02 1.144526e+01 +2.000000e-02 1.497826e+01 +2.500000e-02 1.787009e+01 +3.000000e-02 1.971169e+01 +3.500000e-02 2.076282e+01 +4.000000e-02 2.149683e+01 +4.500000e-02 2.206210e+01 +5.000000e-02 2.250774e+01 +5.500000e-02 2.285769e+01 +6.000000e-02 2.312959e+01 +6.500000e-02 2.333540e+01 +7.000000e-02 2.348453e+01 +7.500000e-02 2.358465e+01 +8.000000e-02 2.364209e+01 +8.500000e-02 2.366193e+01 +9.000000e-02 2.364647e+01 +9.500000e-02 2.359497e+01 +1.000000e-01 2.349523e+01 +volume fraction= 0.092363 +fiber_centers_YZ= (0.017336,0.044904) (0.002734,0.033180) (0.011406,0.009184) (0.042336,0.044904) (0.027734,0.033180) (0.036406,0.009184) (0.052734,0.033180) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.0924_4_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.0924_4_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..bfa63d930ac644bdd0f8edd98e9f59fab95eed8c --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.0924_4_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 6.698706e+00 -1.503607e-04 -3.881566e-03 +1.000000e-02 1.335817e+01 -2.988072e-04 -7.733616e-03 +1.500000e-02 1.997918e+01 -4.453673e-04 -1.155644e-02 +2.000000e-02 2.653283e+01 -5.894925e-04 -1.535427e-02 +2.500000e-02 3.250204e+01 -7.217158e-04 -1.919928e-02 +3.000000e-02 3.690976e+01 -8.238615e-04 -2.323254e-02 +3.500000e-02 3.983726e+01 -8.969375e-04 -2.745371e-02 +4.000000e-02 4.183707e+01 -9.511016e-04 -3.177903e-02 +4.500000e-02 4.331578e+01 -9.936719e-04 -3.614586e-02 +5.000000e-02 4.445950e+01 -1.027965e-03 -4.052638e-02 +5.500000e-02 4.535081e+01 -1.055552e-03 -4.490830e-02 +6.000000e-02 4.603349e+01 -1.077389e-03 -4.928490e-02 +6.500000e-02 4.653806e+01 -1.094227e-03 -5.365134e-02 +7.000000e-02 4.688984e+01 -1.106720e-03 -5.800363e-02 +7.500000e-02 4.711101e+01 -1.115463e-03 -6.233827e-02 +8.000000e-02 4.722141e+01 -1.120991e-03 -6.665220e-02 +8.500000e-02 4.723791e+01 -1.123763e-03 -7.094291e-02 +9.000000e-02 4.717778e+01 -1.124260e-03 -7.520777e-02 +9.500000e-02 4.705414e+01 -1.122841e-03 -7.944497e-02 +1.000000e-01 4.687718e+01 -1.119725e-03 -8.365358e-02 +volume fraction= 0.092363 +fiber_centers_YZ= (0.017336,0.044904) (0.002734,0.033180) (0.011406,0.009184) (0.042336,0.044904) (0.027734,0.033180) (0.036406,0.009184) (0.052734,0.033180) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.0924_5_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.0924_5_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..36afcc499d26629b24ab14894d590cfe32140e87 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.0924_5_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 9.634416e+01 -2.140623e-03 -2.184621e-03 +1.000000e-02 1.924684e+02 -4.265224e-03 -4.353022e-03 +1.500000e-02 2.883738e+02 -6.373993e-03 -6.505390e-03 +2.000000e-02 3.840615e+02 -8.467119e-03 -8.641916e-03 +2.500000e-02 4.795296e+02 -1.054498e-02 -1.076297e-02 +3.000000e-02 5.747084e+02 -1.261203e-02 -1.287283e-02 +3.500000e-02 6.690079e+02 -1.470339e-02 -1.500742e-02 +4.000000e-02 7.617784e+02 -1.685529e-02 -1.721063e-02 +4.500000e-02 8.537975e+02 -1.902429e-02 -1.943654e-02 +5.000000e-02 9.454818e+02 -2.118823e-02 -2.165901e-02 +5.500000e-02 1.036902e+03 -2.334367e-02 -2.387385e-02 +6.000000e-02 1.128078e+03 -2.548982e-02 -2.608016e-02 +6.500000e-02 1.219024e+03 -2.762622e-02 -2.827741e-02 +7.000000e-02 1.309753e+03 -2.975250e-02 -3.046517e-02 +7.500000e-02 1.400275e+03 -3.186829e-02 -3.264304e-02 +8.000000e-02 1.490600e+03 -3.397330e-02 -3.481069e-02 +8.500000e-02 1.580739e+03 -3.606725e-02 -3.696778e-02 +9.000000e-02 1.670700e+03 -3.814990e-02 -3.911405e-02 +9.500000e-02 1.760490e+03 -4.022103e-02 -4.124923e-02 +1.000000e-01 1.850117e+03 -4.228046e-02 -4.337312e-02 +volume fraction= 0.092363 +fiber_centers_YZ= (0.015855,0.032987) (0.000178,0.031703) (0.016582,0.010803) (0.040855,0.032987) (0.025178,0.031703) (0.041582,0.010803) (0.050178,0.031703) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.0924_5_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.0924_5_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..771d591c6e99f5826dc9e6a92d7ff58bf4b53436 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.0924_5_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 3.935177e+00 +1.000000e-02 7.866165e+00 +1.500000e-02 1.160403e+01 +2.000000e-02 1.492245e+01 +2.500000e-02 1.770980e+01 +3.000000e-02 1.962951e+01 +3.500000e-02 2.070576e+01 +4.000000e-02 2.143627e+01 +4.500000e-02 2.200002e+01 +5.000000e-02 2.244555e+01 +5.500000e-02 2.279672e+01 +6.000000e-02 2.307068e+01 +6.500000e-02 2.327735e+01 +7.000000e-02 2.342847e+01 +7.500000e-02 2.353263e+01 +8.000000e-02 2.359706e+01 +8.500000e-02 2.362781e+01 +9.000000e-02 2.362992e+01 +9.500000e-02 2.360908e+01 +1.000000e-01 2.356749e+01 +volume fraction= 0.092363 +fiber_centers_YZ= (0.015855,0.032987) (0.000178,0.031703) (0.016582,0.010803) (0.040855,0.032987) (0.025178,0.031703) (0.041582,0.010803) (0.050178,0.031703) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.0924_5_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.0924_5_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..ed779385fe85537a66e495470a0354869d60f7a0 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.0924_5_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 7.143083e+00 -1.586513e-04 -3.845343e-03 +1.000000e-02 1.424042e+01 -3.153038e-04 -7.661568e-03 +1.500000e-02 2.122704e+01 -4.688389e-04 -1.145498e-02 +2.000000e-02 2.771239e+01 -6.125102e-04 -1.526407e-02 +2.500000e-02 3.337344e+01 -7.397303e-04 -1.914267e-02 +3.000000e-02 3.766507e+01 -8.395120e-04 -2.318930e-02 +3.500000e-02 4.059744e+01 -9.120907e-04 -2.740865e-02 +4.000000e-02 4.262770e+01 -9.662053e-04 -3.172857e-02 +4.500000e-02 4.410393e+01 -1.008212e-03 -3.609505e-02 +5.000000e-02 4.522269e+01 -1.041658e-03 -4.047857e-02 +5.500000e-02 4.608128e+01 -1.068397e-03 -4.486449e-02 +6.000000e-02 4.673151e+01 -1.089523e-03 -4.924488e-02 +6.500000e-02 4.721221e+01 -1.105914e-03 -5.361388e-02 +7.000000e-02 4.754855e+01 -1.118207e-03 -5.796757e-02 +7.500000e-02 4.776279e+01 -1.126972e-03 -6.230255e-02 +8.000000e-02 4.787222e+01 -1.132607e-03 -6.661661e-02 +8.500000e-02 4.789662e+01 -1.135757e-03 -7.090607e-02 +9.000000e-02 4.784944e+01 -1.136739e-03 -7.516931e-02 +9.500000e-02 4.774269e+01 -1.135825e-03 -7.940505e-02 +1.000000e-01 4.758938e+01 -1.133489e-03 -8.361079e-02 +volume fraction= 0.092363 +fiber_centers_YZ= (0.015855,0.032987) (0.000178,0.031703) (0.016582,0.010803) (0.040855,0.032987) (0.025178,0.031703) (0.041582,0.010803) (0.050178,0.031703) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.2155_1_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.2155_1_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..9f7c097fcf471ffa86105d30ec317143ad55d4d0 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.2155_1_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 2.186643e+02 -2.061148e-03 -2.066759e-03 +1.000000e-02 4.367392e+02 -4.107192e-03 -4.118381e-03 +1.500000e-02 6.542282e+02 -6.138309e-03 -6.155042e-03 +2.000000e-02 8.711348e+02 -8.154675e-03 -8.176919e-03 +2.500000e-02 1.087460e+03 -1.015663e-02 -1.018435e-02 +3.000000e-02 1.303151e+03 -1.214811e-02 -1.218123e-02 +3.500000e-02 1.517757e+03 -1.416067e-02 -1.419908e-02 +4.000000e-02 1.730818e+03 -1.622890e-02 -1.627342e-02 +4.500000e-02 1.942973e+03 -1.831356e-02 -1.836481e-02 +5.000000e-02 2.154553e+03 -2.039370e-02 -2.045180e-02 +5.500000e-02 2.365620e+03 -2.246600e-02 -2.253097e-02 +6.000000e-02 2.576195e+03 -2.452970e-02 -2.460155e-02 +6.500000e-02 2.786295e+03 -2.658437e-02 -2.666310e-02 +7.000000e-02 2.995935e+03 -2.862964e-02 -2.871525e-02 +7.500000e-02 3.205127e+03 -3.066518e-02 -3.075764e-02 +8.000000e-02 3.413883e+03 -3.269070e-02 -3.278999e-02 +8.500000e-02 3.622215e+03 -3.470592e-02 -3.481203e-02 +9.000000e-02 3.830132e+03 -3.671062e-02 -3.682350e-02 +9.500000e-02 4.037643e+03 -3.870460e-02 -3.882423e-02 +1.000000e-01 4.244757e+03 -4.068764e-02 -4.081398e-02 +volume fraction= 0.215513 +fiber_centers_YZ= (0.002000,0.004642) (0.018174,0.028044) (0.013935,0.042331) (0.018673,0.014337) (0.000417,0.020607) (0.010838,0.032072) (0.010821,0.024089) (0.027000,0.004642) (0.043174,0.028044) (0.038935,0.042331) (0.043673,0.014337) (0.025417,0.020607) (0.035838,0.032072) (0.035821,0.024089) (0.052000,0.004642) (0.050417,0.020607) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.2155_1_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.2155_1_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..1c2a3899787909bee819451a797c01321934a541 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.2155_1_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 5.030051e+00 +1.000000e-02 1.003683e+01 +1.500000e-02 1.449260e+01 +2.000000e-02 1.792775e+01 +2.500000e-02 2.020871e+01 +3.000000e-02 2.148983e+01 +3.500000e-02 2.225868e+01 +4.000000e-02 2.277209e+01 +4.500000e-02 2.313084e+01 +5.000000e-02 2.338552e+01 +5.500000e-02 2.356492e+01 +6.000000e-02 2.368698e+01 +6.500000e-02 2.376335e+01 +7.000000e-02 2.380115e+01 +7.500000e-02 2.380691e+01 +8.000000e-02 2.378253e+01 +8.500000e-02 2.373345e+01 +9.000000e-02 2.366052e+01 +9.500000e-02 2.356760e+01 +1.000000e-01 2.345636e+01 +volume fraction= 0.215513 +fiber_centers_YZ= (0.002000,0.004642) (0.018174,0.028044) (0.013935,0.042331) (0.018673,0.014337) (0.000417,0.020607) (0.010838,0.032072) (0.010821,0.024089) (0.027000,0.004642) (0.043174,0.028044) (0.038935,0.042331) (0.043673,0.014337) (0.025417,0.020607) (0.035838,0.032072) (0.035821,0.024089) (0.052000,0.004642) (0.050417,0.020607) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.2155_1_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.2155_1_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..7d06014caa242aee6d442c284098997cb4cd7b38 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.2155_1_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 8.917035e+00 -8.404049e-05 -3.815540e-03 +1.000000e-02 1.777967e+01 -1.671054e-04 -7.601256e-03 +1.500000e-02 2.643522e+01 -2.478919e-04 -1.137440e-02 +2.000000e-02 3.393474e+01 -3.185498e-04 -1.523687e-02 +2.500000e-02 3.944513e+01 -3.721413e-04 -1.929356e-02 +3.000000e-02 4.307065e+01 -4.093293e-04 -2.354696e-02 +3.500000e-02 4.546737e+01 -4.354651e-04 -2.791764e-02 +4.000000e-02 4.711589e+01 -4.544821e-04 -3.234485e-02 +4.500000e-02 4.825982e+01 -4.684042e-04 -3.679783e-02 +5.000000e-02 4.903372e+01 -4.783792e-04 -4.125981e-02 +5.500000e-02 4.952442e+01 -4.852178e-04 -4.571960e-02 +6.000000e-02 4.979414e+01 -4.895341e-04 -5.016924e-02 +6.500000e-02 4.989433e+01 -4.918878e-04 -5.460178e-02 +7.000000e-02 4.987024e+01 -4.927595e-04 -5.901150e-02 +7.500000e-02 4.975542e+01 -4.925047e-04 -6.339433e-02 +8.000000e-02 4.958278e+01 -4.914866e-04 -6.774620e-02 +8.500000e-02 4.937728e+01 -4.899780e-04 -7.206417e-02 +9.000000e-02 4.915762e+01 -4.881870e-04 -7.634613e-02 +9.500000e-02 4.893397e+01 -4.862306e-04 -8.059108e-02 +1.000000e-01 4.872045e+01 -4.842795e-04 -8.479740e-02 +volume fraction= 0.215513 +fiber_centers_YZ= (0.002000,0.004642) (0.018174,0.028044) (0.013935,0.042331) (0.018673,0.014337) (0.000417,0.020607) (0.010838,0.032072) (0.010821,0.024089) (0.027000,0.004642) (0.043174,0.028044) (0.038935,0.042331) (0.043673,0.014337) (0.025417,0.020607) (0.035838,0.032072) (0.035821,0.024089) (0.052000,0.004642) (0.050417,0.020607) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.2155_2_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.2155_2_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..97505e847408085b213894fd5ab41bcc3b68d43d --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.2155_2_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 2.186510e+02 -2.092680e-03 -2.034359e-03 +1.000000e-02 4.367122e+02 -4.170112e-03 -4.053735e-03 +1.500000e-02 6.541871e+02 -6.232471e-03 -6.058304e-03 +2.000000e-02 8.710793e+02 -8.279936e-03 -8.048242e-03 +2.500000e-02 1.087390e+03 -1.031284e-02 -1.002389e-02 +3.000000e-02 1.303066e+03 -1.233505e-02 -1.198927e-02 +3.500000e-02 1.517656e+03 -1.437924e-02 -1.397484e-02 +4.000000e-02 1.730702e+03 -1.648560e-02 -1.601042e-02 +4.500000e-02 1.942841e+03 -1.861244e-02 -1.805904e-02 +5.000000e-02 2.154405e+03 -2.073603e-02 -2.010204e-02 +5.500000e-02 2.365456e+03 -2.285253e-02 -2.213649e-02 +6.000000e-02 2.576015e+03 -2.496111e-02 -2.416172e-02 +6.500000e-02 2.786098e+03 -2.706127e-02 -2.617734e-02 +7.000000e-02 2.995721e+03 -2.915261e-02 -2.818300e-02 +7.500000e-02 3.204896e+03 -3.123475e-02 -3.017841e-02 +8.000000e-02 3.413636e+03 -3.330736e-02 -3.216331e-02 +8.500000e-02 3.621950e+03 -3.537013e-02 -3.413746e-02 +9.000000e-02 3.829851e+03 -3.742280e-02 -3.610065e-02 +9.500000e-02 4.037348e+03 -3.946528e-02 -3.805282e-02 +1.000000e-01 4.244442e+03 -4.149690e-02 -3.999349e-02 +volume fraction= 0.215513 +fiber_centers_YZ= (0.000815,0.015607) (0.019568,0.034273) (0.013596,0.007657) (0.001698,0.041579) (0.017217,0.045541) (0.015078,0.015849) (0.013042,0.024103) (0.025815,0.015607) (0.044568,0.034273) (0.038596,0.007657) (0.026698,0.041579) (0.042217,0.045541) (0.040078,0.015849) (0.038042,0.024103) (0.050815,0.015607) (0.051698,0.041579) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.2155_2_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.2155_2_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..e4cee9912ac0351afeacff49fee66b598d48a886 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.2155_2_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 4.867078e+00 +1.000000e-02 9.732648e+00 +1.500000e-02 1.428089e+01 +2.000000e-02 1.779626e+01 +2.500000e-02 2.007582e+01 +3.000000e-02 2.136594e+01 +3.500000e-02 2.216978e+01 +4.000000e-02 2.272484e+01 +4.500000e-02 2.311821e+01 +5.000000e-02 2.339330e+01 +5.500000e-02 2.357935e+01 +6.000000e-02 2.369094e+01 +6.500000e-02 2.374353e+01 +7.000000e-02 2.374723e+01 +7.500000e-02 2.371172e+01 +8.000000e-02 2.364152e+01 +8.500000e-02 2.354433e+01 +9.000000e-02 2.342482e+01 +9.500000e-02 2.329006e+01 +1.000000e-01 2.313542e+01 +volume fraction= 0.215513 +fiber_centers_YZ= (0.000815,0.015607) (0.019568,0.034273) (0.013596,0.007657) (0.001698,0.041579) (0.017217,0.045541) (0.015078,0.015849) (0.013042,0.024103) (0.025815,0.015607) (0.044568,0.034273) (0.038596,0.007657) (0.026698,0.041579) (0.042217,0.045541) (0.040078,0.015849) (0.038042,0.024103) (0.050815,0.015607) (0.051698,0.041579) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.2155_2_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.2155_2_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..1301d6809011c0343b21b91c1e89a339deee7cfb --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.2155_2_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 9.376406e+00 -8.977905e-05 -3.691929e-03 +1.000000e-02 1.866864e+01 -1.783505e-04 -7.359361e-03 +1.500000e-02 2.753100e+01 -2.622378e-04 -1.105943e-02 +2.000000e-02 3.497586e+01 -3.330492e-04 -1.490860e-02 +2.500000e-02 4.035923e+01 -3.856540e-04 -1.898042e-02 +3.000000e-02 4.397247e+01 -4.226698e-04 -2.324076e-02 +3.500000e-02 4.638445e+01 -4.489328e-04 -2.761527e-02 +4.000000e-02 4.806731e+01 -4.683510e-04 -3.204244e-02 +4.500000e-02 4.928941e+01 -4.831461e-04 -3.648786e-02 +5.000000e-02 5.017978e+01 -4.944505e-04 -4.093521e-02 +5.500000e-02 5.081336e+01 -5.029641e-04 -4.537519e-02 +6.000000e-02 5.123979e+01 -5.091424e-04 -4.980219e-02 +6.500000e-02 5.150359e+01 -5.134876e-04 -5.421014e-02 +7.000000e-02 5.163354e+01 -5.162711e-04 -5.859614e-02 +7.500000e-02 5.165529e+01 -5.177655e-04 -6.295726e-02 +8.000000e-02 5.159079e+01 -5.182083e-04 -6.729107e-02 +8.500000e-02 5.145913e+01 -5.178086e-04 -7.159545e-02 +9.000000e-02 5.127710e+01 -5.167521e-04 -7.586859e-02 +9.500000e-02 5.105943e+01 -5.152030e-04 -8.010892e-02 +1.000000e-01 5.081891e+01 -5.133052e-04 -8.431512e-02 +volume fraction= 0.215513 +fiber_centers_YZ= (0.000815,0.015607) (0.019568,0.034273) (0.013596,0.007657) (0.001698,0.041579) (0.017217,0.045541) (0.015078,0.015849) (0.013042,0.024103) (0.025815,0.015607) (0.044568,0.034273) (0.038596,0.007657) (0.026698,0.041579) (0.042217,0.045541) (0.040078,0.015849) (0.038042,0.024103) (0.050815,0.015607) (0.051698,0.041579) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.2155_3_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.2155_3_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..a94b6865f24175a8ffa55efec27d030fd4437555 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.2155_3_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 2.186738e+02 -2.066038e-03 -2.062452e-03 +1.000000e-02 4.367585e+02 -4.116925e-03 -4.109804e-03 +1.500000e-02 6.542576e+02 -6.152837e-03 -6.142231e-03 +2.000000e-02 8.711744e+02 -8.173951e-03 -8.159909e-03 +2.500000e-02 1.087510e+03 -1.018061e-02 -1.016318e-02 +3.000000e-02 1.303212e+03 -1.217671e-02 -1.215594e-02 +3.500000e-02 1.517829e+03 -1.419381e-02 -1.416964e-02 +4.000000e-02 1.730901e+03 -1.626707e-02 -1.623928e-02 +4.500000e-02 1.943067e+03 -1.835703e-02 -1.832564e-02 +5.000000e-02 2.154658e+03 -2.044248e-02 -2.040756e-02 +5.500000e-02 2.365736e+03 -2.252005e-02 -2.248167e-02 +6.000000e-02 2.576323e+03 -2.458898e-02 -2.454721e-02 +6.500000e-02 2.786434e+03 -2.664883e-02 -2.660375e-02 +7.000000e-02 2.996085e+03 -2.869922e-02 -2.865090e-02 +7.500000e-02 3.205288e+03 -3.073983e-02 -3.068835e-02 +8.000000e-02 3.414056e+03 -3.277035e-02 -3.271579e-02 +8.500000e-02 3.622399e+03 -3.479052e-02 -3.473296e-02 +9.000000e-02 3.830327e+03 -3.680011e-02 -3.673962e-02 +9.500000e-02 4.037850e+03 -3.879889e-02 -3.873556e-02 +1.000000e-01 4.244974e+03 -4.078673e-02 -4.072060e-02 +volume fraction= 0.215513 +fiber_centers_YZ= (0.002089,0.026999) (0.015709,0.026555) (0.009082,0.037124) (0.013980,0.044879) (0.015552,0.012662) (0.001019,0.014405) (0.008588,0.005458) (0.027089,0.026999) (0.040709,0.026555) (0.034082,0.037124) (0.038980,0.044879) (0.040552,0.012662) (0.026019,0.014405) (0.033588,0.005458) (0.052089,0.026999) (0.051019,0.014405) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.2155_3_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.2155_3_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..908a38292054bcb908c1d8a053a6e461b193df20 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.2155_3_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 4.963171e+00 +1.000000e-02 9.922561e+00 +1.500000e-02 1.448274e+01 +2.000000e-02 1.797669e+01 +2.500000e-02 2.026464e+01 +3.000000e-02 2.152516e+01 +3.500000e-02 2.231419e+01 +4.000000e-02 2.285618e+01 +4.500000e-02 2.323610e+01 +5.000000e-02 2.349856e+01 +5.500000e-02 2.366719e+01 +6.000000e-02 2.375570e+01 +6.500000e-02 2.376288e+01 +7.000000e-02 2.367369e+01 +7.500000e-02 2.343609e+01 +8.000000e-02 2.297400e+01 +8.500000e-02 2.241358e+01 +9.000000e-02 2.202711e+01 +9.500000e-02 2.190164e+01 +1.000000e-01 2.198694e+01 +volume fraction= 0.215513 +fiber_centers_YZ= (0.002089,0.026999) (0.015709,0.026555) (0.009082,0.037124) (0.013980,0.044879) (0.015552,0.012662) (0.001019,0.014405) (0.008588,0.005458) (0.027089,0.026999) (0.040709,0.026555) (0.034082,0.037124) (0.038980,0.044879) (0.040552,0.012662) (0.026019,0.014405) (0.033588,0.005458) (0.052089,0.026999) (0.051019,0.014405) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.2155_3_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.2155_3_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..162698655f7137fca424c5b7526b59fa1016d397 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.2155_3_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 8.833252e+00 -8.344245e-05 -3.817068e-03 +1.000000e-02 1.759615e+01 -1.657555e-04 -7.606264e-03 +1.500000e-02 2.615134e+01 -2.458463e-04 -1.138097e-02 +2.000000e-02 3.341531e+01 -3.149092e-04 -1.525468e-02 +2.500000e-02 3.871025e+01 -3.667834e-04 -1.932870e-02 +3.000000e-02 4.225450e+01 -4.032649e-04 -2.358525e-02 +3.500000e-02 4.457258e+01 -4.287347e-04 -2.796022e-02 +4.000000e-02 4.615753e+01 -4.471743e-04 -3.239191e-02 +4.500000e-02 4.726992e+01 -4.607542e-04 -3.684680e-02 +5.000000e-02 4.803886e+01 -4.706282e-04 -4.130811e-02 +5.500000e-02 4.854463e+01 -4.775677e-04 -4.576537e-02 +6.000000e-02 4.884640e+01 -4.821716e-04 -5.021079e-02 +6.500000e-02 4.899081e+01 -4.849292e-04 -5.463826e-02 +7.000000e-02 4.901567e+01 -4.862478e-04 -5.904281e-02 +7.500000e-02 4.895195e+01 -4.864662e-04 -6.342044e-02 +8.000000e-02 4.882479e+01 -4.858643e-04 -6.776792e-02 +8.500000e-02 4.865441e+01 -4.846704e-04 -7.208273e-02 +9.000000e-02 4.845666e+01 -4.830673e-04 -7.636297e-02 +9.500000e-02 4.824375e+01 -4.811990e-04 -8.060725e-02 +1.000000e-01 4.802484e+01 -4.791760e-04 -8.481466e-02 +volume fraction= 0.215513 +fiber_centers_YZ= (0.002089,0.026999) (0.015709,0.026555) (0.009082,0.037124) (0.013980,0.044879) (0.015552,0.012662) (0.001019,0.014405) (0.008588,0.005458) (0.027089,0.026999) (0.040709,0.026555) (0.034082,0.037124) (0.038980,0.044879) (0.040552,0.012662) (0.026019,0.014405) (0.033588,0.005458) (0.052089,0.026999) (0.051019,0.014405) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.2155_4_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.2155_4_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..8fd7b4a65c0880e7d4cb82803e5b9340fe701ec5 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.2155_4_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 2.186361e+02 -2.063483e-03 -2.064663e-03 +1.000000e-02 4.366830e+02 -4.111834e-03 -4.114214e-03 +1.500000e-02 6.541442e+02 -6.145230e-03 -6.148829e-03 +2.000000e-02 8.710231e+02 -8.163847e-03 -8.168684e-03 +2.500000e-02 1.087321e+03 -1.016803e-02 -1.017412e-02 +3.000000e-02 1.302985e+03 -1.216169e-02 -1.216902e-02 +3.500000e-02 1.517564e+03 -1.417644e-02 -1.418480e-02 +4.000000e-02 1.730598e+03 -1.624710e-02 -1.625682e-02 +4.500000e-02 1.942725e+03 -1.833427e-02 -1.834581e-02 +5.000000e-02 2.154278e+03 -2.041691e-02 -2.043041e-02 +5.500000e-02 2.365318e+03 -2.249165e-02 -2.250723e-02 +6.000000e-02 2.575867e+03 -2.455775e-02 -2.457550e-02 +6.500000e-02 2.785940e+03 -2.661476e-02 -2.663479e-02 +7.000000e-02 2.995553e+03 -2.866231e-02 -2.868472e-02 +7.500000e-02 3.204718e+03 -3.070006e-02 -3.072496e-02 +8.000000e-02 3.413448e+03 -3.272772e-02 -3.275521e-02 +8.500000e-02 3.621753e+03 -3.474503e-02 -3.477521e-02 +9.000000e-02 3.829644e+03 -3.675173e-02 -3.678472e-02 +9.500000e-02 4.037129e+03 -3.874764e-02 -3.878354e-02 +1.000000e-01 4.244217e+03 -4.073255e-02 -4.077147e-02 +volume fraction= 0.215513 +fiber_centers_YZ= (0.001199,0.004688) (0.015655,0.016349) (0.012142,0.045054) (0.007976,0.020778) (0.018675,0.031954) (0.011233,0.009706) (0.003341,0.029173) (0.026199,0.004688) (0.040655,0.016349) (0.037142,0.045054) (0.032976,0.020778) (0.043675,0.031954) (0.036233,0.009706) (0.028341,0.029173) (0.051199,0.004688) (0.053341,0.029173) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.2155_4_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.2155_4_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..6e176e00ed2331af097ac2c9bb7ca8290318556d --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.2155_4_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 5.011644e+00 +1.000000e-02 1.001863e+01 +1.500000e-02 1.461361e+01 +2.000000e-02 1.806395e+01 +2.500000e-02 2.030402e+01 +3.000000e-02 2.159421e+01 +3.500000e-02 2.237660e+01 +4.000000e-02 2.290436e+01 +4.500000e-02 2.327263e+01 +5.000000e-02 2.352851e+01 +5.500000e-02 2.369901e+01 +6.000000e-02 2.379451e+01 +6.500000e-02 2.382147e+01 +7.000000e-02 2.376790e+01 +7.500000e-02 2.357666e+01 +8.000000e-02 2.319008e+01 +8.500000e-02 2.281074e+01 +9.000000e-02 2.262249e+01 +9.500000e-02 2.260076e+01 +1.000000e-01 2.267075e+01 +volume fraction= 0.215513 +fiber_centers_YZ= (0.001199,0.004688) (0.015655,0.016349) (0.012142,0.045054) (0.007976,0.020778) (0.018675,0.031954) (0.011233,0.009706) (0.003341,0.029173) (0.026199,0.004688) (0.040655,0.016349) (0.037142,0.045054) (0.032976,0.020778) (0.043675,0.031954) (0.036233,0.009706) (0.028341,0.029173) (0.051199,0.004688) (0.053341,0.029173) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.2155_4_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.2155_4_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..0fc2160e490a1d84824c236b531ba721bc77028d --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.2155_4_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 8.562340e+00 -8.077917e-05 -3.857429e-03 +1.000000e-02 1.707291e+01 -1.605863e-04 -7.684359e-03 +1.500000e-02 2.545938e+01 -2.388000e-04 -1.148970e-02 +2.000000e-02 3.289028e+01 -3.083334e-04 -1.537339e-02 +2.500000e-02 3.827107e+01 -3.601847e-04 -1.946473e-02 +3.000000e-02 4.178122e+01 -3.959288e-04 -2.374481e-02 +3.500000e-02 4.411959e+01 -4.211850e-04 -2.813215e-02 +4.000000e-02 4.574732e+01 -4.396686e-04 -3.257009e-02 +4.500000e-02 4.690648e+01 -4.533771e-04 -3.702858e-02 +5.000000e-02 4.771743e+01 -4.633759e-04 -4.149225e-02 +5.500000e-02 4.825733e+01 -4.704012e-04 -4.595112e-02 +6.000000e-02 4.858224e+01 -4.750189e-04 -5.039789e-02 +6.500000e-02 4.873288e+01 -4.776350e-04 -5.482758e-02 +7.000000e-02 4.875182e+01 -4.787439e-04 -5.923429e-02 +7.500000e-02 4.866485e+01 -4.785901e-04 -6.361531e-02 +8.000000e-02 4.850034e+01 -4.775136e-04 -6.796685e-02 +8.500000e-02 4.827741e+01 -4.757217e-04 -7.228676e-02 +9.000000e-02 4.801456e+01 -4.734183e-04 -7.657300e-02 +9.500000e-02 4.772710e+01 -4.707742e-04 -8.082396e-02 +1.000000e-01 4.742842e+01 -4.679385e-04 -8.503829e-02 +volume fraction= 0.215513 +fiber_centers_YZ= (0.001199,0.004688) (0.015655,0.016349) (0.012142,0.045054) (0.007976,0.020778) (0.018675,0.031954) (0.011233,0.009706) (0.003341,0.029173) (0.026199,0.004688) (0.040655,0.016349) (0.037142,0.045054) (0.032976,0.020778) (0.043675,0.031954) (0.036233,0.009706) (0.028341,0.029173) (0.051199,0.004688) (0.053341,0.029173) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.2155_5_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.2155_5_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..91b7acf42e2dfbac034ee3438304835fe440cae2 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.2155_5_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 2.186529e+02 -2.061029e-03 -2.067506e-03 +1.000000e-02 4.367167e+02 -4.106965e-03 -4.119856e-03 +1.500000e-02 6.541950e+02 -6.137983e-03 -6.157223e-03 +2.000000e-02 8.710912e+02 -8.154260e-03 -8.179787e-03 +2.500000e-02 1.087406e+03 -1.015614e-02 -1.018788e-02 +3.000000e-02 1.303087e+03 -1.214753e-02 -1.218541e-02 +3.500000e-02 1.517684e+03 -1.415998e-02 -1.420377e-02 +4.000000e-02 1.730736e+03 -1.622827e-02 -1.627840e-02 +4.500000e-02 1.942881e+03 -1.831310e-02 -1.836993e-02 +5.000000e-02 2.154452e+03 -2.039347e-02 -2.045697e-02 +5.500000e-02 2.365509e+03 -2.246606e-02 -2.253611e-02 +6.000000e-02 2.576076e+03 -2.453010e-02 -2.460657e-02 +6.500000e-02 2.786167e+03 -2.658516e-02 -2.666793e-02 +7.000000e-02 2.995797e+03 -2.863088e-02 -2.871979e-02 +7.500000e-02 3.204980e+03 -3.066692e-02 -3.076184e-02 +8.000000e-02 3.413728e+03 -3.269298e-02 -3.279378e-02 +8.500000e-02 3.622051e+03 -3.470881e-02 -3.481532e-02 +9.000000e-02 3.829959e+03 -3.671416e-02 -3.682625e-02 +9.500000e-02 4.037462e+03 -3.870883e-02 -3.882635e-02 +1.000000e-01 4.244567e+03 -4.069263e-02 -4.081543e-02 +volume fraction= 0.215513 +fiber_centers_YZ= (0.015516,0.004222) (0.007385,0.014347) (0.016845,0.020002) (0.012166,0.041409) (0.002251,0.025252) (0.016590,0.034673) (0.001464,0.037143) (0.040516,0.004222) (0.032385,0.014347) (0.041845,0.020002) (0.037166,0.041409) (0.027251,0.025252) (0.041590,0.034673) (0.026464,0.037143) (0.052251,0.025252) (0.051464,0.037143) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.2155_5_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.2155_5_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..a3ed757ee047e4e3ca2910be8fae628ea1661a4e --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.2155_5_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 5.037704e+00 +1.000000e-02 1.006274e+01 +1.500000e-02 1.457124e+01 +2.000000e-02 1.795253e+01 +2.500000e-02 2.019027e+01 +3.000000e-02 2.146449e+01 +3.500000e-02 2.224834e+01 +4.000000e-02 2.278365e+01 +4.500000e-02 2.315796e+01 +5.000000e-02 2.341543e+01 +5.500000e-02 2.358241e+01 +6.000000e-02 2.366859e+01 +6.500000e-02 2.367700e+01 +7.000000e-02 2.359407e+01 +7.500000e-02 2.334582e+01 +8.000000e-02 2.278729e+01 +8.500000e-02 2.216362e+01 +9.000000e-02 2.187332e+01 +9.500000e-02 2.192226e+01 +1.000000e-01 2.218535e+01 +volume fraction= 0.215513 +fiber_centers_YZ= (0.015516,0.004222) (0.007385,0.014347) (0.016845,0.020002) (0.012166,0.041409) (0.002251,0.025252) (0.016590,0.034673) (0.001464,0.037143) (0.040516,0.004222) (0.032385,0.014347) (0.041845,0.020002) (0.037166,0.041409) (0.027251,0.025252) (0.041590,0.034673) (0.026464,0.037143) (0.052251,0.025252) (0.051464,0.037143) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.2155_5_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.2155_5_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..3c941fff2f47e91611b6bab258d4847d8833663d --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.2155_5_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 8.919159e+00 -8.405677e-05 -3.815307e-03 +1.000000e-02 1.777994e+01 -1.670945e-04 -7.600955e-03 +1.500000e-02 2.640986e+01 -2.476065e-04 -1.137766e-02 +2.000000e-02 3.390039e+01 -3.179673e-04 -1.524930e-02 +2.500000e-02 3.931260e+01 -3.702055e-04 -1.933631e-02 +3.000000e-02 4.287721e+01 -4.064826e-04 -2.360989e-02 +3.500000e-02 4.524735e+01 -4.321319e-04 -2.799150e-02 +4.000000e-02 4.687800e+01 -4.507691e-04 -3.242642e-02 +4.500000e-02 4.802546e+01 -4.645422e-04 -3.688272e-02 +5.000000e-02 4.882101e+01 -4.745712e-04 -4.134449e-02 +5.500000e-02 4.934849e+01 -4.816474e-04 -4.580121e-02 +6.000000e-02 4.967061e+01 -4.863956e-04 -5.024496e-02 +6.500000e-02 4.983394e+01 -4.892469e-04 -5.467051e-02 +7.000000e-02 4.988868e+01 -4.908794e-04 -5.906958e-02 +7.500000e-02 4.985664e+01 -4.913910e-04 -6.344130e-02 +8.000000e-02 4.976484e+01 -4.911310e-04 -6.778167e-02 +8.500000e-02 4.963194e+01 -4.903157e-04 -7.208838e-02 +9.000000e-02 4.947200e+01 -4.891121e-04 -7.635979e-02 +9.500000e-02 4.929591e+01 -4.876508e-04 -8.059473e-02 +1.000000e-01 4.911026e+01 -4.859792e-04 -8.479308e-02 +volume fraction= 0.215513 +fiber_centers_YZ= (0.015516,0.004222) (0.007385,0.014347) (0.016845,0.020002) (0.012166,0.041409) (0.002251,0.025252) (0.016590,0.034673) (0.001464,0.037143) (0.040516,0.004222) (0.032385,0.014347) (0.041845,0.020002) (0.037166,0.041409) (0.027251,0.025252) (0.041590,0.034673) (0.026464,0.037143) (0.052251,0.025252) (0.051464,0.037143) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.3079_1_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.3079_1_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..d2f175c1eec5309a1a01dcd2fd88711b1cdc7402 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.3079_1_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 3.103405e+02 -1.983597e-03 -1.998420e-03 +1.000000e-02 6.197532e+02 -3.952857e-03 -3.982405e-03 +1.500000e-02 9.282441e+02 -5.907945e-03 -5.952118e-03 +2.000000e-02 1.235819e+03 -7.849028e-03 -7.907730e-03 +2.500000e-02 1.542483e+03 -9.776426e-03 -9.849551e-03 +3.000000e-02 1.848195e+03 -1.169377e-02 -1.178111e-02 +3.500000e-02 2.152600e+03 -1.362902e-02 -1.373118e-02 +4.000000e-02 2.455361e+03 -1.561219e-02 -1.573195e-02 +4.500000e-02 2.757020e+03 -1.760893e-02 -1.774758e-02 +5.000000e-02 3.057852e+03 -1.960082e-02 -1.975874e-02 +5.500000e-02 3.357912e+03 -2.158490e-02 -2.176232e-02 +6.000000e-02 3.657224e+03 -2.356050e-02 -2.375763e-02 +6.500000e-02 3.955806e+03 -2.552723e-02 -2.574426e-02 +7.000000e-02 4.253675e+03 -2.748476e-02 -2.772186e-02 +7.500000e-02 4.550846e+03 -2.943279e-02 -2.969012e-02 +8.000000e-02 4.847331e+03 -3.137106e-02 -3.164876e-02 +8.500000e-02 5.143145e+03 -3.329932e-02 -3.359752e-02 +9.000000e-02 5.438297e+03 -3.521740e-02 -3.553622e-02 +9.500000e-02 5.732799e+03 -3.712508e-02 -3.746462e-02 +1.000000e-01 6.026663e+03 -3.902234e-02 -3.938270e-02 +volume fraction= 0.307876 +fiber_centers_YZ= (0.019701,0.042746) (0.007984,0.018078) (0.017744,0.032469) (0.002956,0.033442) (0.007795,0.044074) (0.000659,0.009909) (0.015410,0.023308) (0.017907,0.010733) (0.009938,0.004512) (0.000663,0.025886) (0.044701,0.042746) (0.032984,0.018078) (0.042744,0.032469) (0.027956,0.033442) (0.032795,0.044074) (0.025659,0.009909) (0.040410,0.023308) (0.042907,0.010733) (0.034938,0.004512) (0.025663,0.025886) (0.052956,0.033442) (0.050659,0.009909) (0.050663,0.025886) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.3079_1_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.3079_1_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..cd533a4adfc2e4980359827b2bbcea353d7e5bfa --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.3079_1_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 6.253522e+00 +1.000000e-02 1.223874e+01 +1.500000e-02 1.700549e+01 +2.000000e-02 1.997315e+01 +2.500000e-02 2.170517e+01 +3.000000e-02 2.267044e+01 +3.500000e-02 2.324036e+01 +4.000000e-02 2.359532e+01 +4.500000e-02 2.381432e+01 +5.000000e-02 2.393781e+01 +5.500000e-02 2.398655e+01 +6.000000e-02 2.397004e+01 +6.500000e-02 2.389116e+01 +7.000000e-02 2.378297e+01 +7.500000e-02 2.371044e+01 +8.000000e-02 2.370203e+01 +8.500000e-02 2.373904e+01 +9.000000e-02 2.378273e+01 +9.500000e-02 2.381176e+01 +1.000000e-01 2.381935e+01 +volume fraction= 0.307876 +fiber_centers_YZ= (0.019701,0.042746) (0.007984,0.018078) (0.017744,0.032469) (0.002956,0.033442) (0.007795,0.044074) (0.000659,0.009909) (0.015410,0.023308) (0.017907,0.010733) (0.009938,0.004512) (0.000663,0.025886) (0.044701,0.042746) (0.032984,0.018078) (0.042744,0.032469) (0.027956,0.033442) (0.032795,0.044074) (0.025659,0.009909) (0.040410,0.023308) (0.042907,0.010733) (0.034938,0.004512) (0.025663,0.025886) (0.052956,0.033442) (0.050659,0.009909) (0.050663,0.025886) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.3079_1_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.3079_1_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..05f5e242b4461e3642ed3c98493432b8787d3ace --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.3079_1_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.109866e+01 -7.095280e-05 -3.742112e-03 +1.000000e-02 2.210879e+01 -1.410129e-04 -7.455884e-03 +1.500000e-02 3.235905e+01 -2.062412e-04 -1.120742e-02 +2.000000e-02 3.974062e+01 -2.545526e-04 -1.520067e-02 +2.500000e-02 4.424413e+01 -2.855720e-04 -1.945628e-02 +3.000000e-02 4.701730e+01 -3.057433e-04 -2.386370e-02 +3.500000e-02 4.875839e+01 -3.190492e-04 -2.834869e-02 +4.000000e-02 4.982342e+01 -3.276764e-04 -3.287089e-02 +4.500000e-02 5.041632e+01 -3.329583e-04 -3.740643e-02 +5.000000e-02 5.067370e+01 -3.357717e-04 -4.194008e-02 +5.500000e-02 5.070358e+01 -3.368768e-04 -4.645918e-02 +6.000000e-02 5.059100e+01 -3.368709e-04 -5.095404e-02 +6.500000e-02 5.040736e+01 -3.362580e-04 -5.541666e-02 +7.000000e-02 5.021058e+01 -3.354482e-04 -5.984073e-02 +7.500000e-02 5.003904e+01 -3.347179e-04 -6.422224e-02 +8.000000e-02 4.990898e+01 -3.341916e-04 -6.855975e-02 +8.500000e-02 4.982042e+01 -3.338804e-04 -7.285373e-02 +9.000000e-02 4.977406e+01 -3.338209e-04 -7.710416e-02 +9.500000e-02 4.975331e+01 -3.338506e-04 -8.131428e-02 +1.000000e-01 4.977371e+01 -3.341409e-04 -8.548192e-02 +volume fraction= 0.307876 +fiber_centers_YZ= (0.019701,0.042746) (0.007984,0.018078) (0.017744,0.032469) (0.002956,0.033442) (0.007795,0.044074) (0.000659,0.009909) (0.015410,0.023308) (0.017907,0.010733) (0.009938,0.004512) (0.000663,0.025886) (0.044701,0.042746) (0.032984,0.018078) (0.042744,0.032469) (0.027956,0.033442) (0.032795,0.044074) (0.025659,0.009909) (0.040410,0.023308) (0.042907,0.010733) (0.034938,0.004512) (0.025663,0.025886) (0.052956,0.033442) (0.050659,0.009909) (0.050663,0.025886) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.3079_2_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.3079_2_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..ad09b9218f92be0842b479ff86780e2ff5f70681 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.3079_2_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 3.103580e+02 -2.000431e-03 -1.984946e-03 +1.000000e-02 6.197902e+02 -3.986456e-03 -3.955481e-03 +1.500000e-02 9.283028e+02 -5.958242e-03 -5.911771e-03 +2.000000e-02 1.235902e+03 -7.915955e-03 -7.853984e-03 +2.500000e-02 1.542591e+03 -9.859903e-03 -9.782437e-03 +3.000000e-02 1.848331e+03 -1.179353e-02 -1.170070e-02 +3.500000e-02 2.152764e+03 -1.374505e-02 -1.363695e-02 +4.000000e-02 2.455555e+03 -1.574776e-02 -1.562063e-02 +4.500000e-02 2.757245e+03 -1.776615e-02 -1.761695e-02 +5.000000e-02 3.058109e+03 -1.978027e-02 -1.960805e-02 +5.500000e-02 3.358203e+03 -2.178689e-02 -2.159111e-02 +6.000000e-02 3.657550e+03 -2.378529e-02 -2.356548e-02 +6.500000e-02 3.956168e+03 -2.577506e-02 -2.553079e-02 +7.000000e-02 4.254073e+03 -2.775586e-02 -2.748672e-02 +7.500000e-02 4.551280e+03 -2.972736e-02 -2.943298e-02 +8.000000e-02 4.847803e+03 -3.168930e-02 -3.136932e-02 +8.500000e-02 5.143655e+03 -3.364144e-02 -3.329554e-02 +9.000000e-02 5.438845e+03 -3.558348e-02 -3.521136e-02 +9.500000e-02 5.733386e+03 -3.751533e-02 -3.711671e-02 +1.000000e-01 6.027285e+03 -3.943674e-02 -3.901136e-02 +volume fraction= 0.307876 +fiber_centers_YZ= (0.001457,0.031936) (0.013897,0.019972) (0.014197,0.043216) (0.004526,0.021493) (0.001838,0.006664) (0.015351,0.032482) (0.013795,0.005512) (0.001459,0.042850) (0.007504,0.013412) (0.020671,0.012612) (0.026457,0.031936) (0.038897,0.019972) (0.039197,0.043216) (0.029526,0.021493) (0.026838,0.006664) (0.040351,0.032482) (0.038795,0.005512) (0.026459,0.042850) (0.032504,0.013412) (0.045671,0.012612) (0.051457,0.031936) (0.051838,0.006664) (0.051459,0.042850) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.3079_2_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.3079_2_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..54565ad1cc9d72994b7f70b133cd527632ad1ebd --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.3079_2_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 6.121002e+00 +1.000000e-02 1.220615e+01 +1.500000e-02 1.713146e+01 +2.000000e-02 2.013668e+01 +2.500000e-02 2.182119e+01 +3.000000e-02 2.274048e+01 +3.500000e-02 2.328188e+01 +4.000000e-02 2.361169e+01 +4.500000e-02 2.381259e+01 +5.000000e-02 2.392960e+01 +5.500000e-02 2.397975e+01 +6.000000e-02 2.397586e+01 +6.500000e-02 2.391930e+01 +7.000000e-02 2.379820e+01 +7.500000e-02 2.357984e+01 +8.000000e-02 2.326312e+01 +8.500000e-02 2.294725e+01 +9.000000e-02 2.277726e+01 +9.500000e-02 2.277661e+01 +1.000000e-01 2.291166e+01 +volume fraction= 0.307876 +fiber_centers_YZ= (0.001457,0.031936) (0.013897,0.019972) (0.014197,0.043216) (0.004526,0.021493) (0.001838,0.006664) (0.015351,0.032482) (0.013795,0.005512) (0.001459,0.042850) (0.007504,0.013412) (0.020671,0.012612) (0.026457,0.031936) (0.038897,0.019972) (0.039197,0.043216) (0.029526,0.021493) (0.026838,0.006664) (0.040351,0.032482) (0.038795,0.005512) (0.026459,0.042850) (0.032504,0.013412) (0.045671,0.012612) (0.051457,0.031936) (0.051838,0.006664) (0.051459,0.042850) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.3079_2_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.3079_2_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..068d3252579edc429da48fd9cec341d7a1e62853 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.3079_2_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.116420e+01 -7.199091e-05 -3.694288e-03 +1.000000e-02 2.223255e+01 -1.430664e-04 -7.361176e-03 +1.500000e-02 3.251817e+01 -2.091478e-04 -1.107234e-02 +2.000000e-02 3.948674e+01 -2.554141e-04 -1.508899e-02 +2.500000e-02 4.365436e+01 -2.844677e-04 -1.937654e-02 +3.000000e-02 4.629624e+01 -3.036862e-04 -2.379933e-02 +3.500000e-02 4.798773e+01 -3.164765e-04 -2.829329e-02 +4.000000e-02 4.902034e+01 -3.246562e-04 -3.282475e-02 +4.500000e-02 4.957604e+01 -3.294399e-04 -3.737173e-02 +5.000000e-02 4.977856e+01 -3.316475e-04 -4.191988e-02 +5.500000e-02 4.972966e+01 -3.319832e-04 -4.645735e-02 +6.000000e-02 4.951197e+01 -3.310483e-04 -5.097404e-02 +6.500000e-02 4.920132e+01 -3.293462e-04 -5.546180e-02 +7.000000e-02 4.886997e+01 -3.273986e-04 -5.991224e-02 +7.500000e-02 4.857087e+01 -3.255807e-04 -6.431944e-02 +8.000000e-02 4.833122e+01 -3.240829e-04 -6.868068e-02 +8.500000e-02 4.815493e+01 -3.229372e-04 -7.299596e-02 +9.000000e-02 4.805966e+01 -3.223014e-04 -7.726327e-02 +9.500000e-02 4.802834e+01 -3.220532e-04 -8.148520e-02 +1.000000e-01 4.805722e+01 -3.221755e-04 -8.566259e-02 +volume fraction= 0.307876 +fiber_centers_YZ= (0.001457,0.031936) (0.013897,0.019972) (0.014197,0.043216) (0.004526,0.021493) (0.001838,0.006664) (0.015351,0.032482) (0.013795,0.005512) (0.001459,0.042850) (0.007504,0.013412) (0.020671,0.012612) (0.026457,0.031936) (0.038897,0.019972) (0.039197,0.043216) (0.029526,0.021493) (0.026838,0.006664) (0.040351,0.032482) (0.038795,0.005512) (0.026459,0.042850) (0.032504,0.013412) (0.045671,0.012612) (0.051457,0.031936) (0.051838,0.006664) (0.051459,0.042850) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.3079_3_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.3079_3_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..38d26318b63c9ccae7ea36b3c6eab72a7accb1d0 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.3079_3_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 3.103734e+02 -2.018920e-03 -1.962273e-03 +1.000000e-02 6.198182e+02 -4.023355e-03 -3.910272e-03 +1.500000e-02 9.283407e+02 -6.013468e-03 -5.844161e-03 +2.000000e-02 1.235947e+03 -7.989429e-03 -7.764107e-03 +2.500000e-02 1.542641e+03 -9.951546e-03 -9.670436e-03 +3.000000e-02 1.848382e+03 -1.190332e-02 -1.156684e-02 +3.500000e-02 2.152817e+03 -1.387476e-02 -1.348015e-02 +4.000000e-02 2.455608e+03 -1.590234e-02 -1.543595e-02 +4.500000e-02 2.757296e+03 -1.794814e-02 -1.740201e-02 +5.000000e-02 3.058156e+03 -1.999070e-02 -1.936202e-02 +5.500000e-02 3.358244e+03 -2.202653e-02 -2.131341e-02 +6.000000e-02 3.657585e+03 -2.405486e-02 -2.325557e-02 +6.500000e-02 3.956194e+03 -2.607524e-02 -2.518816e-02 +7.000000e-02 4.254091e+03 -2.808728e-02 -2.711087e-02 +7.500000e-02 4.551288e+03 -3.009064e-02 -2.902346e-02 +8.000000e-02 4.847801e+03 -3.208498e-02 -3.092570e-02 +8.500000e-02 5.143642e+03 -3.407005e-02 -3.281738e-02 +9.000000e-02 5.438821e+03 -3.604556e-02 -3.469832e-02 +9.500000e-02 5.733350e+03 -3.801134e-02 -3.656842e-02 +1.000000e-01 6.027237e+03 -3.996705e-02 -3.842745e-02 +volume fraction= 0.307876 +fiber_centers_YZ= (0.004899,0.030396) (0.002636,0.043127) (0.016469,0.018543) (0.008650,0.014169) (0.009588,0.004385) (0.015648,0.034111) (0.017890,0.044037) (0.020329,0.010422) (0.000172,0.020451) (0.014979,0.026429) (0.029899,0.030396) (0.027636,0.043127) (0.041469,0.018543) (0.033650,0.014169) (0.034588,0.004385) (0.040648,0.034111) (0.042890,0.044037) (0.045329,0.010422) (0.025172,0.020451) (0.039979,0.026429) (0.052636,0.043127) (0.050172,0.020451) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.3079_3_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.3079_3_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..b57533b525999e0ddb2eb83285a8b82c0be8dcc3 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.3079_3_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 6.030158e+00 +1.000000e-02 1.196007e+01 +1.500000e-02 1.677821e+01 +2.000000e-02 1.987920e+01 +2.500000e-02 2.163121e+01 +3.000000e-02 2.261580e+01 +3.500000e-02 2.320591e+01 +4.000000e-02 2.356411e+01 +4.500000e-02 2.377899e+01 +5.000000e-02 2.388022e+01 +5.500000e-02 2.389875e+01 +6.000000e-02 2.385025e+01 +6.500000e-02 2.374457e+01 +7.000000e-02 2.358812e+01 +7.500000e-02 2.338832e+01 +8.000000e-02 2.319568e+01 +8.500000e-02 2.310486e+01 +9.000000e-02 2.311594e+01 +9.500000e-02 2.315783e+01 +1.000000e-01 2.318155e+01 +volume fraction= 0.307876 +fiber_centers_YZ= (0.004899,0.030396) (0.002636,0.043127) (0.016469,0.018543) (0.008650,0.014169) (0.009588,0.004385) (0.015648,0.034111) (0.017890,0.044037) (0.020329,0.010422) (0.000172,0.020451) (0.014979,0.026429) (0.029899,0.030396) (0.027636,0.043127) (0.041469,0.018543) (0.033650,0.014169) (0.034588,0.004385) (0.040648,0.034111) (0.042890,0.044037) (0.045329,0.010422) (0.025172,0.020451) (0.039979,0.026429) (0.052636,0.043127) (0.050172,0.020451) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.3079_3_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.3079_3_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..796d4a422718e0c2693137dc9fa1ffc93826831a --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.3079_3_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.187155e+01 -7.729820e-05 -3.566429e-03 +1.000000e-02 2.362661e+01 -1.535968e-04 -7.110031e-03 +1.500000e-02 3.440330e+01 -2.233846e-04 -1.073724e-02 +2.000000e-02 4.217809e+01 -2.748197e-04 -1.466038e-02 +2.500000e-02 4.702473e+01 -3.084505e-04 -1.886907e-02 +3.000000e-02 5.008096e+01 -3.308067e-04 -2.324054e-02 +3.500000e-02 5.201357e+01 -3.457591e-04 -2.770212e-02 +4.000000e-02 5.321223e+01 -3.556303e-04 -3.221054e-02 +4.500000e-02 5.392149e+01 -3.619614e-04 -3.673778e-02 +5.000000e-02 5.432183e+01 -3.659711e-04 -4.126223e-02 +5.500000e-02 5.454216e+01 -3.685381e-04 -4.576868e-02 +6.000000e-02 5.467485e+01 -3.703425e-04 -5.024556e-02 +6.500000e-02 5.476755e+01 -3.717253e-04 -5.468728e-02 +7.000000e-02 5.485790e+01 -3.730424e-04 -5.908812e-02 +7.500000e-02 5.493724e+01 -3.741761e-04 -6.345057e-02 +8.000000e-02 5.502105e+01 -3.752856e-04 -6.777231e-02 +8.500000e-02 5.511212e+01 -3.764048e-04 -7.205321e-02 +9.000000e-02 5.521157e+01 -3.775512e-04 -7.629346e-02 +9.500000e-02 5.532016e+01 -3.787373e-04 -8.049334e-02 +1.000000e-01 5.543851e+01 -3.799719e-04 -8.465323e-02 +volume fraction= 0.307876 +fiber_centers_YZ= (0.004899,0.030396) (0.002636,0.043127) (0.016469,0.018543) (0.008650,0.014169) (0.009588,0.004385) (0.015648,0.034111) (0.017890,0.044037) (0.020329,0.010422) (0.000172,0.020451) (0.014979,0.026429) (0.029899,0.030396) (0.027636,0.043127) (0.041469,0.018543) (0.033650,0.014169) (0.034588,0.004385) (0.040648,0.034111) (0.042890,0.044037) (0.045329,0.010422) (0.025172,0.020451) (0.039979,0.026429) (0.052636,0.043127) (0.050172,0.020451) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.3079_4_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.3079_4_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..51f1ee9e11dba6812281398779c276a9e88b085b --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.3079_4_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 3.103581e+02 -2.007007e-03 -1.975754e-03 +1.000000e-02 6.197888e+02 -3.999537e-03 -3.937203e-03 +1.500000e-02 9.282981e+02 -5.977754e-03 -5.884511e-03 +2.000000e-02 1.235892e+03 -7.941829e-03 -7.817846e-03 +2.500000e-02 1.542575e+03 -9.892074e-03 -9.737524e-03 +3.000000e-02 1.848306e+03 -1.183206e-02 -1.164710e-02 +3.500000e-02 2.152731e+03 -1.379093e-02 -1.357421e-02 +4.000000e-02 2.455513e+03 -1.580227e-02 -1.554750e-02 +4.500000e-02 2.757192e+03 -1.782962e-02 -1.753316e-02 +5.000000e-02 3.058045e+03 -1.985287e-02 -1.951354e-02 +5.500000e-02 3.358127e+03 -2.186880e-02 -2.148584e-02 +6.000000e-02 3.657460e+03 -2.387666e-02 -2.344942e-02 +6.500000e-02 3.956064e+03 -2.587603e-02 -2.540390e-02 +7.000000e-02 4.253955e+03 -2.786655e-02 -2.734897e-02 +7.500000e-02 4.551148e+03 -2.984791e-02 -2.928433e-02 +8.000000e-02 4.847656e+03 -3.181981e-02 -3.120975e-02 +8.500000e-02 5.143492e+03 -3.378200e-02 -3.312501e-02 +9.000000e-02 5.438667e+03 -3.573422e-02 -3.502988e-02 +9.500000e-02 5.733191e+03 -3.767632e-02 -3.692424e-02 +1.000000e-01 6.027075e+03 -3.960804e-02 -3.880787e-02 +volume fraction= 0.307876 +fiber_centers_YZ= (0.011053,0.019840) (0.019166,0.041008) (0.012895,0.005806) (0.001433,0.026533) (0.008868,0.045590) (0.015820,0.027015) (0.001486,0.013381) (0.010492,0.034266) (0.016607,0.012729) (0.002452,0.004428) (0.036053,0.019840) (0.044166,0.041008) (0.037895,0.005806) (0.026433,0.026533) (0.033868,0.045590) (0.040820,0.027015) (0.026486,0.013381) (0.035492,0.034266) (0.041607,0.012729) (0.027452,0.004428) (0.051433,0.026533) (0.051486,0.013381) (0.052452,0.004428) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.3079_4_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.3079_4_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..71ea0958b7f7a2fd768ccc7a8936803165ae74cf --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.3079_4_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 6.029630e+00 +1.000000e-02 1.199138e+01 +1.500000e-02 1.690074e+01 +2.000000e-02 2.004015e+01 +2.500000e-02 2.178549e+01 +3.000000e-02 2.275396e+01 +3.500000e-02 2.332629e+01 +4.000000e-02 2.366855e+01 +4.500000e-02 2.386170e+01 +5.000000e-02 2.393315e+01 +5.500000e-02 2.390496e+01 +6.000000e-02 2.376400e+01 +6.500000e-02 2.338714e+01 +7.000000e-02 2.285845e+01 +7.500000e-02 2.265819e+01 +8.000000e-02 2.276024e+01 +8.500000e-02 2.300672e+01 +9.000000e-02 2.329645e+01 +9.500000e-02 2.353887e+01 +1.000000e-01 2.368718e+01 +volume fraction= 0.307876 +fiber_centers_YZ= (0.011053,0.019840) (0.019166,0.041008) (0.012895,0.005806) (0.001433,0.026533) (0.008868,0.045590) (0.015820,0.027015) (0.001486,0.013381) (0.010492,0.034266) (0.016607,0.012729) (0.002452,0.004428) (0.036053,0.019840) (0.044166,0.041008) (0.037895,0.005806) (0.026433,0.026533) (0.033868,0.045590) (0.040820,0.027015) (0.026486,0.013381) (0.035492,0.034266) (0.041607,0.012729) (0.027452,0.004428) (0.051433,0.026533) (0.051486,0.013381) (0.052452,0.004428) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.3079_4_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.3079_4_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..0912d2cb152cdc5a6ccfbdf77045a3b7ab45e232 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.3079_4_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.090044e+01 -7.051271e-05 -3.709587e-03 +1.000000e-02 2.169341e+01 -1.400080e-04 -7.394588e-03 +1.500000e-02 3.173206e+01 -2.044606e-04 -1.113136e-02 +2.000000e-02 3.924843e+01 -2.535873e-04 -1.510171e-02 +2.500000e-02 4.409086e+01 -2.866596e-04 -1.932073e-02 +3.000000e-02 4.711169e+01 -3.085425e-04 -2.370032e-02 +3.500000e-02 4.906340e+01 -3.235371e-04 -2.816029e-02 +4.000000e-02 5.034105e+01 -3.339285e-04 -3.265724e-02 +4.500000e-02 5.115259e+01 -3.409930e-04 -3.716751e-02 +5.000000e-02 5.162402e+01 -3.455522e-04 -4.167668e-02 +5.500000e-02 5.184645e+01 -3.482254e-04 -4.617437e-02 +6.000000e-02 5.189294e+01 -3.495234e-04 -5.065232e-02 +6.500000e-02 5.182414e+01 -3.498786e-04 -5.510370e-02 +7.000000e-02 5.168871e+01 -3.496429e-04 -5.952311e-02 +7.500000e-02 5.152261e+01 -3.490818e-04 -6.390665e-02 +8.000000e-02 5.135893e+01 -3.484621e-04 -6.825052e-02 +8.500000e-02 5.119355e+01 -3.477274e-04 -7.255611e-02 +9.000000e-02 5.104383e+01 -3.470320e-04 -7.682156e-02 +9.500000e-02 5.091337e+01 -3.464098e-04 -8.104689e-02 +1.000000e-01 5.080309e+01 -3.458748e-04 -8.523245e-02 +volume fraction= 0.307876 +fiber_centers_YZ= (0.011053,0.019840) (0.019166,0.041008) (0.012895,0.005806) (0.001433,0.026533) (0.008868,0.045590) (0.015820,0.027015) (0.001486,0.013381) (0.010492,0.034266) (0.016607,0.012729) (0.002452,0.004428) (0.036053,0.019840) (0.044166,0.041008) (0.037895,0.005806) (0.026433,0.026533) (0.033868,0.045590) (0.040820,0.027015) (0.026486,0.013381) (0.035492,0.034266) (0.041607,0.012729) (0.027452,0.004428) (0.051433,0.026533) (0.051486,0.013381) (0.052452,0.004428) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.3079_5_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.3079_5_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..cbec9d3695c96cd61aa16deb05a554eee8bb0981 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.3079_5_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 3.103384e+02 -2.009885e-03 -1.973678e-03 +1.000000e-02 6.197499e+02 -4.005291e-03 -3.933044e-03 +1.500000e-02 9.282407e+02 -5.986384e-03 -5.878262e-03 +2.000000e-02 1.235817e+03 -7.953332e-03 -7.809500e-03 +2.500000e-02 1.542482e+03 -9.906446e-03 -9.727074e-03 +3.000000e-02 1.848197e+03 -1.184924e-02 -1.163455e-02 +3.500000e-02 2.152605e+03 -1.381074e-02 -1.355949e-02 +4.000000e-02 2.455370e+03 -1.582525e-02 -1.553003e-02 +4.500000e-02 2.757033e+03 -1.785624e-02 -1.751249e-02 +5.000000e-02 3.057870e+03 -1.988323e-02 -1.948955e-02 +5.500000e-02 3.357936e+03 -2.190290e-02 -2.145846e-02 +6.000000e-02 3.657254e+03 -2.391452e-02 -2.341860e-02 +6.500000e-02 3.955842e+03 -2.591766e-02 -2.536961e-02 +7.000000e-02 4.253718e+03 -2.791194e-02 -2.731117e-02 +7.500000e-02 4.550895e+03 -2.989705e-02 -2.924301e-02 +8.000000e-02 4.847388e+03 -3.187269e-02 -3.116489e-02 +8.500000e-02 5.143209e+03 -3.383858e-02 -3.307659e-02 +9.000000e-02 5.438369e+03 -3.579452e-02 -3.497793e-02 +9.500000e-02 5.732882e+03 -3.774037e-02 -3.686881e-02 +1.000000e-01 6.026748e+03 -3.967566e-02 -3.874885e-02 +volume fraction= 0.307876 +fiber_centers_YZ= (0.004975,0.004886) (0.012758,0.031071) (0.015502,0.043503) (0.000185,0.030935) (0.009653,0.011005) (0.001014,0.044432) (0.014367,0.019764) (0.002777,0.021819) (0.020585,0.005643) (0.002194,0.013735) (0.029975,0.004886) (0.037758,0.031071) (0.040502,0.043503) (0.025185,0.030935) (0.034653,0.011005) (0.026014,0.044432) (0.039367,0.019764) (0.027777,0.021819) (0.045585,0.005643) (0.027194,0.013735) (0.050185,0.030935) (0.051014,0.044432) (0.052777,0.021819) (0.052194,0.013735) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.3079_5_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.3079_5_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..71fa5ca70a3557116346d5f400ed4294ec4cd106 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.3079_5_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 6.036773e+00 +1.000000e-02 1.200818e+01 +1.500000e-02 1.692886e+01 +2.000000e-02 2.000512e+01 +2.500000e-02 2.175528e+01 +3.000000e-02 2.275826e+01 +3.500000e-02 2.335088e+01 +4.000000e-02 2.371209e+01 +4.500000e-02 2.392907e+01 +5.000000e-02 2.404729e+01 +5.500000e-02 2.409416e+01 +6.000000e-02 2.407455e+01 +6.500000e-02 2.398950e+01 +7.000000e-02 2.382012e+01 +7.500000e-02 2.356461e+01 +8.000000e-02 2.328551e+01 +8.500000e-02 2.305887e+01 +9.000000e-02 2.295739e+01 +9.500000e-02 2.298364e+01 +1.000000e-01 2.311200e+01 +volume fraction= 0.307876 +fiber_centers_YZ= (0.004975,0.004886) (0.012758,0.031071) (0.015502,0.043503) (0.000185,0.030935) (0.009653,0.011005) (0.001014,0.044432) (0.014367,0.019764) (0.002777,0.021819) (0.020585,0.005643) (0.002194,0.013735) (0.029975,0.004886) (0.037758,0.031071) (0.040502,0.043503) (0.025185,0.030935) (0.034653,0.011005) (0.026014,0.044432) (0.039367,0.019764) (0.027777,0.021819) (0.045585,0.005643) (0.027194,0.013735) (0.050185,0.030935) (0.051014,0.044432) (0.052777,0.021819) (0.052194,0.013735) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.3079_5_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.3079_5_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..9697b9ec826d9f4f4f2cec7a36f43494dce437c2 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.3079_5_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.173485e+01 -7.606536e-05 -3.604905e-03 +1.000000e-02 2.332333e+01 -1.509477e-04 -7.188129e-03 +1.500000e-02 3.381074e+01 -2.188054e-04 -1.085465e-02 +2.000000e-02 4.118395e+01 -2.680018e-04 -1.480861e-02 +2.500000e-02 4.576106e+01 -3.004368e-04 -1.901906e-02 +3.000000e-02 4.868941e+01 -3.223608e-04 -2.338169e-02 +3.500000e-02 5.060480e+01 -3.374502e-04 -2.782854e-02 +4.000000e-02 5.185588e+01 -3.478422e-04 -3.231795e-02 +4.500000e-02 5.265539e+01 -3.549694e-04 -3.682249e-02 +5.000000e-02 5.313775e+01 -3.597463e-04 -4.132526e-02 +5.500000e-02 5.339290e+01 -3.627471e-04 -4.581599e-02 +6.000000e-02 5.348954e+01 -3.644947e-04 -5.028576e-02 +6.500000e-02 5.347883e+01 -3.653661e-04 -5.472833e-02 +7.000000e-02 5.339953e+01 -3.656512e-04 -5.913911e-02 +7.500000e-02 5.328115e+01 -3.655732e-04 -6.351475e-02 +8.000000e-02 5.314614e+01 -3.653022e-04 -6.785288e-02 +8.500000e-02 5.301122e+01 -3.649662e-04 -7.215187e-02 +9.000000e-02 5.288849e+01 -3.646588e-04 -7.641070e-02 +9.500000e-02 5.278629e+01 -3.644460e-04 -8.062882e-02 +1.000000e-01 5.271003e+01 -3.643718e-04 -8.480606e-02 +volume fraction= 0.307876 +fiber_centers_YZ= (0.004975,0.004886) (0.012758,0.031071) (0.015502,0.043503) (0.000185,0.030935) (0.009653,0.011005) (0.001014,0.044432) (0.014367,0.019764) (0.002777,0.021819) (0.020585,0.005643) (0.002194,0.013735) (0.029975,0.004886) (0.037758,0.031071) (0.040502,0.043503) (0.025185,0.030935) (0.034653,0.011005) (0.026014,0.044432) (0.039367,0.019764) (0.027777,0.021819) (0.045585,0.005643) (0.027194,0.013735) (0.050185,0.030935) (0.051014,0.044432) (0.052777,0.021819) (0.052194,0.013735) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4002_1_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4002_1_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..1f4b77ae75efd7df4e391c6f94d5c7500287e818 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4002_1_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 4.020382e+02 -1.906188e-03 -1.928834e-03 +1.000000e-02 8.027559e+02 -3.798734e-03 -3.844014e-03 +1.500000e-02 1.202163e+03 -5.677794e-03 -5.745698e-03 +2.000000e-02 1.600268e+03 -7.543527e-03 -7.634042e-03 +2.500000e-02 1.997079e+03 -9.396247e-03 -9.509326e-03 +3.000000e-02 2.392569e+03 -1.123955e-02 -1.137459e-02 +3.500000e-02 2.786473e+03 -1.309870e-02 -1.325518e-02 +4.000000e-02 3.178561e+03 -1.499694e-02 -1.518102e-02 +4.500000e-02 3.569278e+03 -1.690471e-02 -1.712060e-02 +5.000000e-02 3.958853e+03 -1.880695e-02 -1.905600e-02 +5.500000e-02 4.347337e+03 -2.070124e-02 -2.098431e-02 +6.000000e-02 4.734755e+03 -2.258702e-02 -2.290488e-02 +6.500000e-02 5.121127e+03 -2.446394e-02 -2.481733e-02 +7.000000e-02 5.506473e+03 -2.633170e-02 -2.672135e-02 +7.500000e-02 5.890810e+03 -2.819006e-02 -2.861665e-02 +8.000000e-02 6.274154e+03 -3.003878e-02 -3.050297e-02 +8.500000e-02 6.656519e+03 -3.187766e-02 -3.238005e-02 +9.000000e-02 7.037919e+03 -3.370651e-02 -3.424779e-02 +9.500000e-02 7.418366e+03 -3.552518e-02 -3.610588e-02 +1.000000e-01 7.797871e+03 -3.733355e-02 -3.795427e-02 +volume fraction= 0.400239 +fiber_centers_YZ= (0.006208,0.009898) (0.010559,0.037626) (0.009958,0.017931) (0.001900,0.032000) (0.015525,0.008074) (0.014489,0.027594) (0.007187,0.044826) (0.017275,0.044136) (0.000008,0.004774) (0.000705,0.017612) (0.000615,0.039995) (0.005887,0.024722) (0.017262,0.020381) (0.031208,0.009898) (0.035559,0.037626) (0.034958,0.017931) (0.026900,0.032000) (0.040525,0.008074) (0.039489,0.027594) (0.032187,0.044826) (0.042275,0.044136) (0.025008,0.004774) (0.025705,0.017612) (0.025615,0.039995) (0.030887,0.024722) (0.042262,0.020381) (0.051900,0.032000) (0.050008,0.004774) (0.050705,0.017612) (0.050615,0.039995) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4002_1_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4002_1_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..ab4181af4844984e08775b3380d0d26e2df70c9a --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4002_1_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 7.933366e+00 +1.000000e-02 1.492240e+01 +1.500000e-02 1.945836e+01 +2.000000e-02 2.195662e+01 +2.500000e-02 2.321301e+01 +3.000000e-02 2.383368e+01 +3.500000e-02 2.411111e+01 +4.000000e-02 2.417650e+01 +4.500000e-02 2.410677e+01 +5.000000e-02 2.394235e+01 +5.500000e-02 2.374419e+01 +6.000000e-02 2.359025e+01 +6.500000e-02 2.354153e+01 +7.000000e-02 2.358408e+01 +7.500000e-02 2.368458e+01 +8.000000e-02 2.381820e+01 +8.500000e-02 2.397361e+01 +9.000000e-02 2.415178e+01 +9.500000e-02 2.434046e+01 +1.000000e-01 2.452872e+01 +volume fraction= 0.400239 +fiber_centers_YZ= (0.006208,0.009898) (0.010559,0.037626) (0.009958,0.017931) (0.001900,0.032000) (0.015525,0.008074) (0.014489,0.027594) (0.007187,0.044826) (0.017275,0.044136) (0.000008,0.004774) (0.000705,0.017612) (0.000615,0.039995) (0.005887,0.024722) (0.017262,0.020381) (0.031208,0.009898) (0.035559,0.037626) (0.034958,0.017931) (0.026900,0.032000) (0.040525,0.008074) (0.039489,0.027594) (0.032187,0.044826) (0.042275,0.044136) (0.025008,0.004774) (0.025705,0.017612) (0.025615,0.039995) (0.030887,0.024722) (0.042262,0.020381) (0.051900,0.032000) (0.050008,0.004774) (0.050705,0.017612) (0.050615,0.039995) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4002_1_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4002_1_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..64a12861dc35e1f168f1be432930d90643199c22 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4002_1_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.449865e+01 -6.880558e-05 -3.620365e-03 +1.000000e-02 2.832396e+01 -1.345105e-04 -7.245779e-03 +1.500000e-02 3.908358e+01 -1.868320e-04 -1.105455e-02 +2.000000e-02 4.577502e+01 -2.207676e-04 -1.517837e-02 +2.500000e-02 4.975701e+01 -2.419339e-04 -1.952667e-02 +3.000000e-02 5.212494e+01 -2.552983e-04 -2.399601e-02 +3.500000e-02 5.352429e+01 -2.637363e-04 -2.852570e-02 +4.000000e-02 5.433380e+01 -2.690460e-04 -3.307795e-02 +4.500000e-02 5.479229e+01 -2.723843e-04 -3.762961e-02 +5.000000e-02 5.506559e+01 -2.746234e-04 -4.216348e-02 +5.500000e-02 5.526302e+01 -2.762841e-04 -4.666878e-02 +6.000000e-02 5.544683e+01 -2.777439e-04 -5.113751e-02 +6.500000e-02 5.564626e+01 -2.791840e-04 -5.556552e-02 +7.000000e-02 5.586975e+01 -2.806750e-04 -5.995102e-02 +7.500000e-02 5.611519e+01 -2.822276e-04 -6.429367e-02 +8.000000e-02 5.638012e+01 -2.838769e-04 -6.859297e-02 +8.500000e-02 5.665113e+01 -2.854893e-04 -7.285152e-02 +9.000000e-02 5.694249e+01 -2.871630e-04 -7.706803e-02 +9.500000e-02 5.721789e+01 -2.888000e-04 -8.124468e-02 +1.000000e-01 5.750073e+01 -2.904181e-04 -8.538164e-02 +volume fraction= 0.400239 +fiber_centers_YZ= (0.006208,0.009898) (0.010559,0.037626) (0.009958,0.017931) (0.001900,0.032000) (0.015525,0.008074) (0.014489,0.027594) (0.007187,0.044826) (0.017275,0.044136) (0.000008,0.004774) (0.000705,0.017612) (0.000615,0.039995) (0.005887,0.024722) (0.017262,0.020381) (0.031208,0.009898) (0.035559,0.037626) (0.034958,0.017931) (0.026900,0.032000) (0.040525,0.008074) (0.039489,0.027594) (0.032187,0.044826) (0.042275,0.044136) (0.025008,0.004774) (0.025705,0.017612) (0.025615,0.039995) (0.030887,0.024722) (0.042262,0.020381) (0.051900,0.032000) (0.050008,0.004774) (0.050705,0.017612) (0.050615,0.039995) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4002_2_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4002_2_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..9e6fbbba04b64d07b0447c90b88c611b2302e194 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4002_2_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 4.020162e+02 -1.923122e-03 -1.906172e-03 +1.000000e-02 8.027072e+02 -3.832586e-03 -3.798779e-03 +1.500000e-02 1.202083e+03 -5.728548e-03 -5.677979e-03 +2.000000e-02 1.600152e+03 -7.611167e-03 -7.543927e-03 +2.500000e-02 1.996923e+03 -9.480761e-03 -9.396916e-03 +3.000000e-02 2.392368e+03 -1.134103e-02 -1.124020e-02 +3.500000e-02 2.786226e+03 -1.321821e-02 -1.309853e-02 +4.000000e-02 3.178266e+03 -1.513893e-02 -1.499745e-02 +4.500000e-02 3.568931e+03 -1.707233e-02 -1.690715e-02 +5.000000e-02 3.958451e+03 -1.900142e-02 -1.881176e-02 +5.500000e-02 4.346876e+03 -2.092339e-02 -2.070869e-02 +6.000000e-02 4.734233e+03 -2.283761e-02 -2.259737e-02 +6.500000e-02 5.120542e+03 -2.474369e-02 -2.447742e-02 +7.000000e-02 5.505824e+03 -2.664131e-02 -2.634857e-02 +7.500000e-02 5.890095e+03 -2.853019e-02 -2.821053e-02 +8.000000e-02 6.273372e+03 -3.041006e-02 -3.006308e-02 +8.500000e-02 6.655669e+03 -3.228069e-02 -3.190600e-02 +9.000000e-02 7.037000e+03 -3.414187e-02 -3.373907e-02 +9.500000e-02 7.417380e+03 -3.599357e-02 -3.556231e-02 +1.000000e-01 7.796811e+03 -3.783515e-02 -3.737527e-02 +volume fraction= 0.400239 +fiber_centers_YZ= (0.008001,0.011806) (0.016178,0.016453) (0.003354,0.028396) (0.008697,0.038703) (0.011320,0.023485) (0.000851,0.017942) (0.018432,0.005149) (0.005557,0.004257) (0.000218,0.036403) (0.002128,0.045598) (0.017285,0.035741) (0.018446,0.043652) (0.010903,0.031219) (0.033001,0.011806) (0.041178,0.016453) (0.028354,0.028396) (0.033697,0.038703) (0.036320,0.023485) (0.025851,0.017942) (0.043432,0.005149) (0.030557,0.004257) (0.025218,0.036403) (0.027128,0.045598) (0.042285,0.035741) (0.043446,0.043652) (0.035903,0.031219) (0.053354,0.028396) (0.050851,0.017942) (0.050218,0.036403) (0.052128,0.045598) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4002_2_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4002_2_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..b3f2642571f05ce8f9415533f26cb7fb4d87dabe --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4002_2_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 7.915629e+00 +1.000000e-02 1.465198e+01 +1.500000e-02 1.919255e+01 +2.000000e-02 2.171770e+01 +2.500000e-02 2.293046e+01 +3.000000e-02 2.352835e+01 +3.500000e-02 2.382452e+01 +4.000000e-02 2.395935e+01 +4.500000e-02 2.399978e+01 +5.000000e-02 2.396549e+01 +5.500000e-02 2.384615e+01 +6.000000e-02 2.367075e+01 +6.500000e-02 2.359417e+01 +7.000000e-02 2.367480e+01 +7.500000e-02 2.383749e+01 +8.000000e-02 2.399851e+01 +8.500000e-02 2.412493e+01 +9.000000e-02 2.422524e+01 +9.500000e-02 2.430927e+01 +1.000000e-01 2.439049e+01 +volume fraction= 0.400239 +fiber_centers_YZ= (0.008001,0.011806) (0.016178,0.016453) (0.003354,0.028396) (0.008697,0.038703) (0.011320,0.023485) (0.000851,0.017942) (0.018432,0.005149) (0.005557,0.004257) (0.000218,0.036403) (0.002128,0.045598) (0.017285,0.035741) (0.018446,0.043652) (0.010903,0.031219) (0.033001,0.011806) (0.041178,0.016453) (0.028354,0.028396) (0.033697,0.038703) (0.036320,0.023485) (0.025851,0.017942) (0.043432,0.005149) (0.030557,0.004257) (0.025218,0.036403) (0.027128,0.045598) (0.042285,0.035741) (0.043446,0.043652) (0.035903,0.031219) (0.053354,0.028396) (0.050851,0.017942) (0.050218,0.036403) (0.052128,0.045598) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4002_2_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4002_2_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..4f1d5ac6a099adcc0b3d591fe624715c23d0a688 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4002_2_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.572529e+01 -7.535923e-05 -3.448395e-03 +1.000000e-02 3.053514e+01 -1.466699e-04 -6.918570e-03 +1.500000e-02 4.220170e+01 -2.038128e-04 -1.060934e-02 +2.000000e-02 4.951490e+01 -2.408475e-04 -1.468046e-02 +2.500000e-02 5.373070e+01 -2.634114e-04 -1.901780e-02 +3.000000e-02 5.632425e+01 -2.779657e-04 -2.348299e-02 +3.500000e-02 5.797944e+01 -2.877022e-04 -2.800762e-02 +4.000000e-02 5.904532e+01 -2.942944e-04 -3.255549e-02 +4.500000e-02 5.974343e+01 -2.988817e-04 -3.710201e-02 +5.000000e-02 6.022424e+01 -3.022375e-04 -4.163065e-02 +5.500000e-02 6.059731e+01 -3.049491e-04 -4.612921e-02 +6.000000e-02 6.093220e+01 -3.073893e-04 -5.059010e-02 +6.500000e-02 6.127396e+01 -3.098276e-04 -5.500829e-02 +7.000000e-02 6.164620e+01 -3.124072e-04 -5.938153e-02 +7.500000e-02 6.204799e+01 -3.150905e-04 -6.371108e-02 +8.000000e-02 6.248860e+01 -3.179580e-04 -6.799612e-02 +8.500000e-02 6.296838e+01 -3.210160e-04 -7.223724e-02 +9.000000e-02 6.349268e+01 -3.243200e-04 -7.643417e-02 +9.500000e-02 6.404573e+01 -3.277439e-04 -8.058982e-02 +1.000000e-01 6.463136e+01 -3.313346e-04 -8.470405e-02 +volume fraction= 0.400239 +fiber_centers_YZ= (0.008001,0.011806) (0.016178,0.016453) (0.003354,0.028396) (0.008697,0.038703) (0.011320,0.023485) (0.000851,0.017942) (0.018432,0.005149) (0.005557,0.004257) (0.000218,0.036403) (0.002128,0.045598) (0.017285,0.035741) (0.018446,0.043652) (0.010903,0.031219) (0.033001,0.011806) (0.041178,0.016453) (0.028354,0.028396) (0.033697,0.038703) (0.036320,0.023485) (0.025851,0.017942) (0.043432,0.005149) (0.030557,0.004257) (0.025218,0.036403) (0.027128,0.045598) (0.042285,0.035741) (0.043446,0.043652) (0.035903,0.031219) (0.053354,0.028396) (0.050851,0.017942) (0.050218,0.036403) (0.052128,0.045598) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4002_3_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4002_3_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..8bdd5ed6a66f6d4689e530ed775cfbcb84a273b9 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4002_3_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 4.020242e+02 -1.924149e-03 -1.899958e-03 +1.000000e-02 8.027189e+02 -3.834623e-03 -3.786430e-03 +1.500000e-02 1.202094e+03 -5.731577e-03 -5.659570e-03 +2.000000e-02 1.600158e+03 -7.615170e-03 -7.519537e-03 +2.500000e-02 1.996920e+03 -9.485690e-03 -9.366683e-03 +3.000000e-02 2.392353e+03 -1.134647e-02 -1.120509e-02 +3.500000e-02 2.786198e+03 -1.322415e-02 -1.305924e-02 +4.000000e-02 3.178223e+03 -1.514640e-02 -1.495226e-02 +4.500000e-02 3.568867e+03 -1.708146e-02 -1.685609e-02 +5.000000e-02 3.958362e+03 -1.901221e-02 -1.875508e-02 +5.500000e-02 4.346760e+03 -2.093583e-02 -2.064665e-02 +6.000000e-02 4.734088e+03 -2.285166e-02 -2.253021e-02 +6.500000e-02 5.120366e+03 -2.475931e-02 -2.440540e-02 +7.000000e-02 5.505614e+03 -2.665844e-02 -2.627194e-02 +7.500000e-02 5.889850e+03 -2.854877e-02 -2.812956e-02 +8.000000e-02 6.273090e+03 -3.043001e-02 -2.997802e-02 +8.500000e-02 6.655357e+03 -3.230218e-02 -3.181755e-02 +9.000000e-02 7.036640e+03 -3.416417e-02 -3.364669e-02 +9.500000e-02 7.416977e+03 -3.601692e-02 -3.546646e-02 +1.000000e-01 7.796369e+03 -3.785955e-02 -3.727643e-02 +volume fraction= 0.400239 +fiber_centers_YZ= (0.013346,0.012601) (0.016323,0.029035) (0.015811,0.043383) (0.003426,0.038091) (0.008048,0.044356) (0.002887,0.023364) (0.019672,0.020408) (0.000692,0.007280) (0.016479,0.004227) (0.001491,0.015601) (0.008457,0.004925) (0.000409,0.030925) (0.000250,0.045601) (0.038346,0.012601) (0.041323,0.029035) (0.040811,0.043383) (0.028426,0.038091) (0.033048,0.044356) (0.027887,0.023364) (0.044672,0.020408) (0.025692,0.007280) (0.041479,0.004227) (0.026491,0.015601) (0.033457,0.004925) (0.025409,0.030925) (0.025250,0.045601) (0.053426,0.038091) (0.052887,0.023364) (0.050692,0.007280) (0.051491,0.015601) (0.050409,0.030925) (0.050250,0.045601) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4002_3_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4002_3_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..efdc86e751b6528c99763387cf4027acb8993966 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4002_3_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 7.945839e+00 +1.000000e-02 1.460343e+01 +1.500000e-02 1.911051e+01 +2.000000e-02 2.165730e+01 +2.500000e-02 2.291173e+01 +3.000000e-02 2.355392e+01 +3.500000e-02 2.389532e+01 +4.000000e-02 2.407090e+01 +4.500000e-02 2.415500e+01 +5.000000e-02 2.415777e+01 +5.500000e-02 2.407755e+01 +6.000000e-02 2.389071e+01 +6.500000e-02 2.364558e+01 +7.000000e-02 2.352278e+01 +7.500000e-02 2.355179e+01 +8.000000e-02 2.362518e+01 +8.500000e-02 2.369502e+01 +9.000000e-02 2.378878e+01 +9.500000e-02 2.392684e+01 +1.000000e-01 2.408365e+01 +volume fraction= 0.400239 +fiber_centers_YZ= (0.013346,0.012601) (0.016323,0.029035) (0.015811,0.043383) (0.003426,0.038091) (0.008048,0.044356) (0.002887,0.023364) (0.019672,0.020408) (0.000692,0.007280) (0.016479,0.004227) (0.001491,0.015601) (0.008457,0.004925) (0.000409,0.030925) (0.000250,0.045601) (0.038346,0.012601) (0.041323,0.029035) (0.040811,0.043383) (0.028426,0.038091) (0.033048,0.044356) (0.027887,0.023364) (0.044672,0.020408) (0.025692,0.007280) (0.041479,0.004227) (0.026491,0.015601) (0.033457,0.004925) (0.025409,0.030925) (0.025250,0.045601) (0.053426,0.038091) (0.052887,0.023364) (0.050692,0.007280) (0.051491,0.015601) (0.050409,0.030925) (0.050250,0.045601) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4002_3_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4002_3_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..e0a56edd57224e8ae1b0615e480a6b307aa41fb1 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4002_3_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.703304e+01 -8.171064e-05 -3.317155e-03 +1.000000e-02 3.255172e+01 -1.566709e-04 -6.710911e-03 +1.500000e-02 4.407061e+01 -2.133715e-04 -1.041110e-02 +2.000000e-02 5.162502e+01 -2.517689e-04 -1.444791e-02 +2.500000e-02 5.617221e+01 -2.762741e-04 -1.873825e-02 +3.000000e-02 5.906031e+01 -2.927725e-04 -2.315668e-02 +3.500000e-02 6.102425e+01 -3.045824e-04 -2.763108e-02 +4.000000e-02 6.242602e+01 -3.134143e-04 -3.212501e-02 +4.500000e-02 6.348082e+01 -3.203154e-04 -3.661671e-02 +5.000000e-02 6.432553e+01 -3.259857e-04 -4.109188e-02 +5.500000e-02 6.505017e+01 -3.309079e-04 -4.554083e-02 +6.000000e-02 6.571340e+01 -3.354084e-04 -4.995712e-02 +6.500000e-02 6.635177e+01 -3.397059e-04 -5.433657e-02 +7.000000e-02 6.699048e+01 -3.439235e-04 -5.867720e-02 +7.500000e-02 6.764311e+01 -3.481557e-04 -6.297750e-02 +8.000000e-02 6.831908e+01 -3.524611e-04 -6.723684e-02 +8.500000e-02 6.902794e+01 -3.569148e-04 -7.145426e-02 +9.000000e-02 6.976665e+01 -3.614727e-04 -7.563124e-02 +9.500000e-02 7.054025e+01 -3.661845e-04 -7.976737e-02 +1.000000e-01 7.134899e+01 -3.710568e-04 -8.386311e-02 +volume fraction= 0.400239 +fiber_centers_YZ= (0.013346,0.012601) (0.016323,0.029035) (0.015811,0.043383) (0.003426,0.038091) (0.008048,0.044356) (0.002887,0.023364) (0.019672,0.020408) (0.000692,0.007280) (0.016479,0.004227) (0.001491,0.015601) (0.008457,0.004925) (0.000409,0.030925) (0.000250,0.045601) (0.038346,0.012601) (0.041323,0.029035) (0.040811,0.043383) (0.028426,0.038091) (0.033048,0.044356) (0.027887,0.023364) (0.044672,0.020408) (0.025692,0.007280) (0.041479,0.004227) (0.026491,0.015601) (0.033457,0.004925) (0.025409,0.030925) (0.025250,0.045601) (0.053426,0.038091) (0.052887,0.023364) (0.050692,0.007280) (0.051491,0.015601) (0.050409,0.030925) (0.050250,0.045601) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4002_4_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4002_4_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..782893895378904751471ea8b054f640046ed968 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4002_4_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 4.020445e+02 -1.927473e-03 -1.898502e-03 +1.000000e-02 8.027609e+02 -3.841300e-03 -3.783479e-03 +1.500000e-02 1.202159e+03 -5.741636e-03 -5.655085e-03 +2.000000e-02 1.600248e+03 -7.628638e-03 -7.513479e-03 +2.500000e-02 1.997036e+03 -9.502600e-03 -9.358994e-03 +3.000000e-02 2.392496e+03 -1.136686e-02 -1.119552e-02 +3.500000e-02 2.786368e+03 -1.324780e-02 -1.304797e-02 +4.000000e-02 3.178422e+03 -1.517431e-02 -1.493876e-02 +4.500000e-02 3.569097e+03 -1.711432e-02 -1.683967e-02 +5.000000e-02 3.958626e+03 -1.905023e-02 -1.873547e-02 +5.500000e-02 4.347058e+03 -2.097915e-02 -2.062364e-02 +6.000000e-02 4.734422e+03 -2.290043e-02 -2.250360e-02 +6.500000e-02 5.120737e+03 -2.481367e-02 -2.437500e-02 +7.000000e-02 5.506024e+03 -2.671852e-02 -2.623754e-02 +7.500000e-02 5.890299e+03 -2.861470e-02 -2.809097e-02 +8.000000e-02 6.273580e+03 -3.050192e-02 -2.993506e-02 +8.500000e-02 6.655888e+03 -3.238025e-02 -3.176996e-02 +9.000000e-02 7.037214e+03 -3.424848e-02 -3.359438e-02 +9.500000e-02 7.417594e+03 -3.610754e-02 -3.540924e-02 +1.000000e-01 7.797031e+03 -3.795669e-02 -3.721407e-02 +volume fraction= 0.400239 +fiber_centers_YZ= (0.016168,0.012562) (0.000731,0.007279) (0.017102,0.042118) (0.016608,0.028169) (0.007164,0.018537) (0.004738,0.039401) (0.001396,0.029459) (0.018032,0.020267) (0.015596,0.004765) (0.012551,0.035838) (0.009165,0.045744) (0.007855,0.004299) (0.000018,0.045689) (0.041168,0.012562) (0.025731,0.007279) (0.042102,0.042118) (0.041608,0.028169) (0.032164,0.018537) (0.029738,0.039401) (0.026396,0.029459) (0.043032,0.020267) (0.040596,0.004765) (0.037551,0.035838) (0.034165,0.045744) (0.032855,0.004299) (0.025018,0.045689) (0.050731,0.007279) (0.051396,0.029459) (0.050018,0.045689) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4002_4_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4002_4_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..4cbccc071ba8668af30c02b4101b1020e7916890 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4002_4_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 7.972294e+00 +1.000000e-02 1.470402e+01 +1.500000e-02 1.921808e+01 +2.000000e-02 2.176527e+01 +2.500000e-02 2.302652e+01 +3.000000e-02 2.367210e+01 +3.500000e-02 2.400433e+01 +4.000000e-02 2.415053e+01 +4.500000e-02 2.415217e+01 +5.000000e-02 2.401810e+01 +5.500000e-02 2.370209e+01 +6.000000e-02 2.322232e+01 +6.500000e-02 2.287721e+01 +7.000000e-02 2.288147e+01 +7.500000e-02 2.313251e+01 +8.000000e-02 2.339354e+01 +8.500000e-02 2.352899e+01 +9.000000e-02 2.361351e+01 +9.500000e-02 2.375242e+01 +1.000000e-01 2.394950e+01 +volume fraction= 0.400239 +fiber_centers_YZ= (0.016168,0.012562) (0.000731,0.007279) (0.017102,0.042118) (0.016608,0.028169) (0.007164,0.018537) (0.004738,0.039401) (0.001396,0.029459) (0.018032,0.020267) (0.015596,0.004765) (0.012551,0.035838) (0.009165,0.045744) (0.007855,0.004299) (0.000018,0.045689) (0.041168,0.012562) (0.025731,0.007279) (0.042102,0.042118) (0.041608,0.028169) (0.032164,0.018537) (0.029738,0.039401) (0.026396,0.029459) (0.043032,0.020267) (0.040596,0.004765) (0.037551,0.035838) (0.034165,0.045744) (0.032855,0.004299) (0.025018,0.045689) (0.050731,0.007279) (0.051396,0.029459) (0.050018,0.045689) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4002_4_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4002_4_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..38fc5958fe603dbbb5f2d11975eccaacdfa4ac72 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4002_4_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.574748e+01 -7.562141e-05 -3.432271e-03 +1.000000e-02 3.055266e+01 -1.470216e-04 -6.893168e-03 +1.500000e-02 4.198932e+01 -2.031812e-04 -1.059759e-02 +2.000000e-02 4.936880e+01 -2.407810e-04 -1.463957e-02 +2.500000e-02 5.381396e+01 -2.647267e-04 -1.893037e-02 +3.000000e-02 5.652807e+01 -2.802632e-04 -2.336010e-02 +3.500000e-02 5.819527e+01 -2.905227e-04 -2.785817e-02 +4.000000e-02 5.920441e+01 -2.972774e-04 -3.238574e-02 +4.500000e-02 5.981649e+01 -3.018250e-04 -3.691558e-02 +5.000000e-02 6.021573e+01 -3.051021e-04 -4.142859e-02 +5.500000e-02 6.052054e+01 -3.076874e-04 -4.591308e-02 +6.000000e-02 6.079349e+01 -3.099546e-04 -5.036140e-02 +6.500000e-02 6.106648e+01 -3.120974e-04 -5.476966e-02 +7.000000e-02 6.135353e+01 -3.142132e-04 -5.913605e-02 +7.500000e-02 6.165998e+01 -3.163494e-04 -6.345985e-02 +8.000000e-02 6.199058e+01 -3.185827e-04 -6.773984e-02 +8.500000e-02 6.233885e+01 -3.208134e-04 -7.197836e-02 +9.000000e-02 6.270766e+01 -3.231059e-04 -7.617451e-02 +9.500000e-02 6.309722e+01 -3.254694e-04 -8.032849e-02 +1.000000e-01 6.350736e+01 -3.279098e-04 -8.444056e-02 +volume fraction= 0.400239 +fiber_centers_YZ= (0.016168,0.012562) (0.000731,0.007279) (0.017102,0.042118) (0.016608,0.028169) (0.007164,0.018537) (0.004738,0.039401) (0.001396,0.029459) (0.018032,0.020267) (0.015596,0.004765) (0.012551,0.035838) (0.009165,0.045744) (0.007855,0.004299) (0.000018,0.045689) (0.041168,0.012562) (0.025731,0.007279) (0.042102,0.042118) (0.041608,0.028169) (0.032164,0.018537) (0.029738,0.039401) (0.026396,0.029459) (0.043032,0.020267) (0.040596,0.004765) (0.037551,0.035838) (0.034165,0.045744) (0.032855,0.004299) (0.025018,0.045689) (0.050731,0.007279) (0.051396,0.029459) (0.050018,0.045689) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4002_5_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4002_5_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..2edfcea588279fdcc5ba4f300455d7feff9965f0 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4002_5_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 4.020278e+02 -1.918829e-03 -1.919159e-03 +1.000000e-02 8.027375e+02 -3.824005e-03 -3.824640e-03 +1.500000e-02 1.202139e+03 -5.715684e-03 -5.716601e-03 +2.000000e-02 1.600241e+03 -7.594023e-03 -7.595200e-03 +2.500000e-02 1.997051e+03 -9.459315e-03 -9.460730e-03 +3.000000e-02 2.392543e+03 -1.131480e-02 -1.131645e-02 +3.500000e-02 2.786449e+03 -1.318568e-02 -1.318760e-02 +4.000000e-02 3.178541e+03 -1.509898e-02 -1.510085e-02 +4.500000e-02 3.569265e+03 -1.702398e-02 -1.702557e-02 +5.000000e-02 3.958848e+03 -1.894411e-02 -1.894532e-02 +5.500000e-02 4.347342e+03 -2.085668e-02 -2.085747e-02 +6.000000e-02 4.734771e+03 -2.276108e-02 -2.276141e-02 +6.500000e-02 5.121156e+03 -2.465696e-02 -2.465678e-02 +7.000000e-02 5.506516e+03 -2.654401e-02 -2.654328e-02 +7.500000e-02 5.890867e+03 -2.842196e-02 -2.842066e-02 +8.000000e-02 6.274227e+03 -3.029056e-02 -3.028867e-02 +8.500000e-02 6.656609e+03 -3.214959e-02 -3.214709e-02 +9.000000e-02 7.038026e+03 -3.399891e-02 -3.399578e-02 +9.500000e-02 7.418490e+03 -3.583823e-02 -3.583448e-02 +1.000000e-01 7.798014e+03 -3.766752e-02 -3.766314e-02 +volume fraction= 0.400239 +fiber_centers_YZ= (0.012216,0.020358) (0.002638,0.006389) (0.009346,0.044697) (0.020435,0.044685) (0.019742,0.005130) (0.000949,0.038775) (0.018926,0.012888) (0.002642,0.018601) (0.008046,0.032314) (0.018666,0.028329) (0.001884,0.026631) (0.016722,0.036290) (0.011138,0.012154) (0.037216,0.020358) (0.027638,0.006389) (0.034346,0.044697) (0.045435,0.044685) (0.044742,0.005130) (0.025949,0.038775) (0.043926,0.012888) (0.027642,0.018601) (0.033046,0.032314) (0.043666,0.028329) (0.026884,0.026631) (0.041722,0.036290) (0.036138,0.012154) (0.052638,0.006389) (0.050949,0.038775) (0.052642,0.018601) (0.051884,0.026631) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4002_5_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4002_5_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..3904f89706dfa58b92a0c6056c8c677c7929ebe9 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4002_5_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 7.819913e+00 +1.000000e-02 1.487649e+01 +1.500000e-02 1.940473e+01 +2.000000e-02 2.183420e+01 +2.500000e-02 2.307547e+01 +3.000000e-02 2.367701e+01 +3.500000e-02 2.395522e+01 +4.000000e-02 2.406996e+01 +4.500000e-02 2.408701e+01 +5.000000e-02 2.401553e+01 +5.500000e-02 2.382564e+01 +6.000000e-02 2.368586e+01 +6.500000e-02 2.376800e+01 +7.000000e-02 2.389358e+01 +7.500000e-02 2.395971e+01 +8.000000e-02 2.397449e+01 +8.500000e-02 2.396689e+01 +9.000000e-02 2.396544e+01 +9.500000e-02 2.397618e+01 +1.000000e-01 2.400140e+01 +volume fraction= 0.400239 +fiber_centers_YZ= (0.012216,0.020358) (0.002638,0.006389) (0.009346,0.044697) (0.020435,0.044685) (0.019742,0.005130) (0.000949,0.038775) (0.018926,0.012888) (0.002642,0.018601) (0.008046,0.032314) (0.018666,0.028329) (0.001884,0.026631) (0.016722,0.036290) (0.011138,0.012154) (0.037216,0.020358) (0.027638,0.006389) (0.034346,0.044697) (0.045435,0.044685) (0.044742,0.005130) (0.025949,0.038775) (0.043926,0.012888) (0.027642,0.018601) (0.033046,0.032314) (0.043666,0.028329) (0.026884,0.026631) (0.041722,0.036290) (0.036138,0.012154) (0.052638,0.006389) (0.050949,0.038775) (0.052642,0.018601) (0.051884,0.026631) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4002_5_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4002_5_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..a2ba311d0f4df2792d24e27739d89ab3ed062309 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4002_5_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.414913e+01 -6.758215e-05 -3.615114e-03 +1.000000e-02 2.805513e+01 -1.338008e-04 -7.212973e-03 +1.500000e-02 3.933728e+01 -1.879990e-04 -1.100390e-02 +2.000000e-02 4.590650e+01 -2.208767e-04 -1.518270e-02 +2.500000e-02 4.963447e+01 -2.405646e-04 -1.958552e-02 +3.000000e-02 5.177592e+01 -2.524624e-04 -2.410161e-02 +3.500000e-02 5.291607e+01 -2.592592e-04 -2.867659e-02 +4.000000e-02 5.340789e+01 -2.626698e-04 -3.327561e-02 +4.500000e-02 5.349894e+01 -2.638997e-04 -3.787448e-02 +5.000000e-02 5.338703e+01 -2.639787e-04 -4.245297e-02 +5.500000e-02 5.319894e+01 -2.635462e-04 -4.699871e-02 +6.000000e-02 5.301243e+01 -2.630192e-04 -5.150388e-02 +6.500000e-02 5.286820e+01 -2.626232e-04 -5.596457e-02 +7.000000e-02 5.278569e+01 -2.624618e-04 -6.037934e-02 +7.500000e-02 5.277319e+01 -2.625884e-04 -6.474773e-02 +8.000000e-02 5.283873e+01 -2.630916e-04 -6.906868e-02 +8.500000e-02 5.298187e+01 -2.639358e-04 -7.334351e-02 +9.000000e-02 5.320119e+01 -2.651305e-04 -7.757260e-02 +9.500000e-02 5.349380e+01 -2.666666e-04 -8.175669e-02 +1.000000e-01 5.385482e+01 -2.685243e-04 -8.589670e-02 +volume fraction= 0.400239 +fiber_centers_YZ= (0.012216,0.020358) (0.002638,0.006389) (0.009346,0.044697) (0.020435,0.044685) (0.019742,0.005130) (0.000949,0.038775) (0.018926,0.012888) (0.002642,0.018601) (0.008046,0.032314) (0.018666,0.028329) (0.001884,0.026631) (0.016722,0.036290) (0.011138,0.012154) (0.037216,0.020358) (0.027638,0.006389) (0.034346,0.044697) (0.045435,0.044685) (0.044742,0.005130) (0.025949,0.038775) (0.043926,0.012888) (0.027642,0.018601) (0.033046,0.032314) (0.043666,0.028329) (0.026884,0.026631) (0.041722,0.036290) (0.036138,0.012154) (0.052638,0.006389) (0.050949,0.038775) (0.052642,0.018601) (0.051884,0.026631) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4926_1_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4926_1_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..9f4832fc793797c7e0323c254c849215df2129a2 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4926_1_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 4.936989e+02 -1.832105e-03 -1.860677e-03 +1.000000e-02 9.856362e+02 -3.651300e-03 -3.708359e-03 +1.500000e-02 1.475826e+03 -5.457735e-03 -5.543194e-03 +2.000000e-02 1.964280e+03 -7.251557e-03 -7.365329e-03 +2.500000e-02 2.451012e+03 -9.033043e-03 -9.175035e-03 +3.000000e-02 2.936008e+03 -1.080519e-02 -1.097523e-02 +3.500000e-02 3.419080e+03 -1.258901e-02 -1.278873e-02 +4.000000e-02 3.900090e+03 -1.440370e-02 -1.464055e-02 +4.500000e-02 4.379395e+03 -1.622497e-02 -1.650330e-02 +5.000000e-02 4.857181e+03 -1.804023e-02 -1.836167e-02 +5.500000e-02 5.333496e+03 -1.984744e-02 -2.021315e-02 +6.000000e-02 5.808367e+03 -2.164612e-02 -2.205718e-02 +6.500000e-02 6.281818e+03 -2.343599e-02 -2.389341e-02 +7.000000e-02 6.753870e+03 -2.521682e-02 -2.572156e-02 +7.500000e-02 7.224544e+03 -2.698840e-02 -2.754139e-02 +8.000000e-02 7.693858e+03 -2.875054e-02 -2.935267e-02 +8.500000e-02 8.161835e+03 -3.050325e-02 -3.115546e-02 +9.000000e-02 8.628480e+03 -3.224610e-02 -3.294908e-02 +9.500000e-02 9.093803e+03 -3.397884e-02 -3.473316e-02 +1.000000e-01 9.557837e+03 -3.570190e-02 -3.650839e-02 +volume fraction= 0.492602 +fiber_centers_YZ= (0.001527,0.013279) (0.012335,0.012924) (0.007803,0.004605) (0.008206,0.019814) (0.020360,0.028768) (0.008479,0.044081) (0.017173,0.019542) (0.000380,0.022011) (0.017267,0.045544) (0.000509,0.034798) (0.009117,0.036197) (0.000060,0.045364) (0.000059,0.005617) (0.017088,0.037259) (0.017056,0.004345) (0.010358,0.027917) (0.026527,0.013279) (0.037335,0.012924) (0.032803,0.004605) (0.033206,0.019814) (0.045360,0.028768) (0.033479,0.044081) (0.042173,0.019542) (0.025380,0.022011) (0.042267,0.045544) (0.025509,0.034798) (0.034117,0.036197) (0.025060,0.045364) (0.025059,0.005617) (0.042088,0.037259) (0.042056,0.004345) (0.035358,0.027917) (0.051527,0.013279) (0.050380,0.022011) (0.050509,0.034798) (0.050060,0.045364) (0.050059,0.005617) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4926_1_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4926_1_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..4c875bd59ca67e300b7ee8c9282ec57975d68fe6 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4926_1_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 1.012534e+01 +1.000000e-02 1.755059e+01 +1.500000e-02 2.153428e+01 +2.000000e-02 2.335745e+01 +2.500000e-02 2.406378e+01 +3.000000e-02 2.428049e+01 +3.500000e-02 2.425552e+01 +4.000000e-02 2.412880e+01 +4.500000e-02 2.402195e+01 +5.000000e-02 2.401614e+01 +5.500000e-02 2.408773e+01 +6.000000e-02 2.424202e+01 +6.500000e-02 2.441488e+01 +7.000000e-02 2.454089e+01 +7.500000e-02 2.459730e+01 +8.000000e-02 2.461854e+01 +8.500000e-02 2.464311e+01 +9.000000e-02 2.461414e+01 +9.500000e-02 2.451271e+01 +1.000000e-01 2.444670e+01 +volume fraction= 0.492602 +fiber_centers_YZ= (0.001527,0.013279) (0.012335,0.012924) (0.007803,0.004605) (0.008206,0.019814) (0.020360,0.028768) (0.008479,0.044081) (0.017173,0.019542) (0.000380,0.022011) (0.017267,0.045544) (0.000509,0.034798) (0.009117,0.036197) (0.000060,0.045364) (0.000059,0.005617) (0.017088,0.037259) (0.017056,0.004345) (0.010358,0.027917) (0.026527,0.013279) (0.037335,0.012924) (0.032803,0.004605) (0.033206,0.019814) (0.045360,0.028768) (0.033479,0.044081) (0.042173,0.019542) (0.025380,0.022011) (0.042267,0.045544) (0.025509,0.034798) (0.034117,0.036197) (0.025060,0.045364) (0.025059,0.005617) (0.042088,0.037259) (0.042056,0.004345) (0.035358,0.027917) (0.051527,0.013279) (0.050380,0.022011) (0.050509,0.034798) (0.050060,0.045364) (0.050059,0.005617) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4926_1_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4926_1_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..fc4c96c2a6943e91e4731e60deac5bfce12e64f9 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4926_1_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 2.303329e+01 -8.574396e-05 -3.198721e-03 +1.000000e-02 4.263979e+01 -1.599807e-04 -6.542070e-03 +1.500000e-02 5.423743e+01 -2.057907e-04 -1.039497e-02 +2.000000e-02 6.049808e+01 -2.315970e-04 -1.465044e-02 +2.500000e-02 6.420355e+01 -2.475663e-04 -1.909258e-02 +3.000000e-02 6.680427e+01 -2.591271e-04 -2.359785e-02 +3.500000e-02 6.894002e+01 -2.687618e-04 -2.810723e-02 +4.000000e-02 7.083952e+01 -2.773996e-04 -3.259794e-02 +4.500000e-02 7.258451e+01 -2.853999e-04 -3.706139e-02 +5.000000e-02 7.422405e+01 -2.929423e-04 -4.149401e-02 +5.500000e-02 7.579691e+01 -3.002257e-04 -4.589193e-02 +6.000000e-02 7.732469e+01 -3.072860e-04 -5.025476e-02 +6.500000e-02 7.884207e+01 -3.142934e-04 -5.457927e-02 +7.000000e-02 8.037330e+01 -3.213465e-04 -5.886367e-02 +7.500000e-02 8.193478e+01 -3.285145e-04 -6.310683e-02 +8.000000e-02 8.353549e+01 -3.358380e-04 -6.730825e-02 +8.500000e-02 8.517834e+01 -3.433333e-04 -7.146793e-02 +9.000000e-02 8.686200e+01 -3.509998e-04 -7.558630e-02 +9.500000e-02 8.858249e+01 -3.588265e-04 -7.966397e-02 +1.000000e-01 9.033458e+01 -3.667972e-04 -8.370172e-02 +volume fraction= 0.492602 +fiber_centers_YZ= (0.001527,0.013279) (0.012335,0.012924) (0.007803,0.004605) (0.008206,0.019814) (0.020360,0.028768) (0.008479,0.044081) (0.017173,0.019542) (0.000380,0.022011) (0.017267,0.045544) (0.000509,0.034798) (0.009117,0.036197) (0.000060,0.045364) (0.000059,0.005617) (0.017088,0.037259) (0.017056,0.004345) (0.010358,0.027917) (0.026527,0.013279) (0.037335,0.012924) (0.032803,0.004605) (0.033206,0.019814) (0.045360,0.028768) (0.033479,0.044081) (0.042173,0.019542) (0.025380,0.022011) (0.042267,0.045544) (0.025509,0.034798) (0.034117,0.036197) (0.025060,0.045364) (0.025059,0.005617) (0.042088,0.037259) (0.042056,0.004345) (0.035358,0.027917) (0.051527,0.013279) (0.050380,0.022011) (0.050509,0.034798) (0.050060,0.045364) (0.050059,0.005617) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4926_2_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4926_2_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..364e23910fb07afa448aacb31a485bd9075ca778 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4926_2_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 4.937061e+02 -1.831851e-03 -1.862324e-03 +1.000000e-02 9.856520e+02 -3.650807e-03 -3.711623e-03 +1.500000e-02 1.475851e+03 -5.457014e-03 -5.548046e-03 +2.000000e-02 1.964317e+03 -7.250622e-03 -7.371740e-03 +2.500000e-02 2.451062e+03 -9.031902e-03 -9.182974e-03 +3.000000e-02 2.936071e+03 -1.080378e-02 -1.098464e-02 +3.500000e-02 3.419158e+03 -1.258715e-02 -1.279944e-02 +4.000000e-02 3.900181e+03 -1.440149e-02 -1.465249e-02 +4.500000e-02 4.379502e+03 -1.622253e-02 -1.651630e-02 +5.000000e-02 4.857304e+03 -1.803763e-02 -1.837559e-02 +5.500000e-02 5.333636e+03 -1.984473e-02 -2.022787e-02 +6.000000e-02 5.808524e+03 -2.164335e-02 -2.207256e-02 +6.500000e-02 6.281992e+03 -2.343323e-02 -2.390933e-02 +7.000000e-02 6.754062e+03 -2.521412e-02 -2.573790e-02 +7.500000e-02 7.224753e+03 -2.698584e-02 -2.755802e-02 +8.000000e-02 7.694085e+03 -2.874819e-02 -2.936947e-02 +8.500000e-02 8.162074e+03 -3.050104e-02 -3.117204e-02 +9.000000e-02 8.628735e+03 -3.224421e-02 -3.296552e-02 +9.500000e-02 9.094085e+03 -3.397765e-02 -3.474981e-02 +1.000000e-01 9.558134e+03 -3.570116e-02 -3.652467e-02 +volume fraction= 0.492602 +fiber_centers_YZ= (0.008086,0.004285) (0.017019,0.028553) (0.000066,0.030433) (0.008571,0.013653) (0.013443,0.021141) (0.000213,0.004603) (0.009444,0.044909) (0.006774,0.036262) (0.001277,0.042062) (0.018824,0.037390) (0.016996,0.013333) (0.000100,0.012385) (0.007480,0.027201) (0.002148,0.021054) (0.016124,0.005681) (0.017273,0.045461) (0.033086,0.004285) (0.042019,0.028553) (0.025066,0.030433) (0.033571,0.013653) (0.038443,0.021141) (0.025213,0.004603) (0.034444,0.044909) (0.031774,0.036262) (0.026277,0.042062) (0.043824,0.037390) (0.041996,0.013333) (0.025100,0.012385) (0.032480,0.027201) (0.027148,0.021054) (0.041124,0.005681) (0.042273,0.045461) (0.050066,0.030433) (0.050213,0.004603) (0.051277,0.042062) (0.050100,0.012385) (0.052148,0.021054) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4926_2_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4926_2_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..97c6a0220b9d76fa4a3b414745fa97bf289e3a36 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4926_2_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 1.012021e+01 +1.000000e-02 1.762667e+01 +1.500000e-02 2.162710e+01 +2.000000e-02 2.338509e+01 +2.500000e-02 2.405668e+01 +3.000000e-02 2.423458e+01 +3.500000e-02 2.417111e+01 +4.000000e-02 2.400414e+01 +4.500000e-02 2.383946e+01 +5.000000e-02 2.377077e+01 +5.500000e-02 2.382933e+01 +6.000000e-02 2.398203e+01 +6.500000e-02 2.419498e+01 +7.000000e-02 2.440299e+01 +7.500000e-02 2.454223e+01 +8.000000e-02 2.460781e+01 +8.500000e-02 2.465730e+01 +9.000000e-02 2.473182e+01 +9.500000e-02 2.482209e+01 +1.000000e-01 2.491561e+01 +volume fraction= 0.492602 +fiber_centers_YZ= (0.008086,0.004285) (0.017019,0.028553) (0.000066,0.030433) (0.008571,0.013653) (0.013443,0.021141) (0.000213,0.004603) (0.009444,0.044909) (0.006774,0.036262) (0.001277,0.042062) (0.018824,0.037390) (0.016996,0.013333) (0.000100,0.012385) (0.007480,0.027201) (0.002148,0.021054) (0.016124,0.005681) (0.017273,0.045461) (0.033086,0.004285) (0.042019,0.028553) (0.025066,0.030433) (0.033571,0.013653) (0.038443,0.021141) (0.025213,0.004603) (0.034444,0.044909) (0.031774,0.036262) (0.026277,0.042062) (0.043824,0.037390) (0.041996,0.013333) (0.025100,0.012385) (0.032480,0.027201) (0.027148,0.021054) (0.041124,0.005681) (0.042273,0.045461) (0.050066,0.030433) (0.050213,0.004603) (0.051277,0.042062) (0.050100,0.012385) (0.052148,0.021054) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4926_2_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4926_2_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..28f78bd212b1764b30c5e4a8a795bce706c6c73a --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4926_2_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 2.258475e+01 -8.405848e-05 -3.234895e-03 +1.000000e-02 4.198248e+01 -1.572865e-04 -6.611160e-03 +1.500000e-02 5.343033e+01 -2.020329e-04 -1.051334e-02 +2.000000e-02 5.955785e+01 -2.269740e-04 -1.480720e-02 +2.500000e-02 6.328437e+01 -2.427344e-04 -1.926589e-02 +3.000000e-02 6.586694e+01 -2.540158e-04 -2.378369e-02 +3.500000e-02 6.786585e+01 -2.629794e-04 -2.831102e-02 +4.000000e-02 6.959607e+01 -2.708631e-04 -3.282005e-02 +4.500000e-02 7.124174e+01 -2.783878e-04 -3.729487e-02 +5.000000e-02 7.289879e+01 -2.859742e-04 -4.172611e-02 +5.500000e-02 7.459850e+01 -2.937215e-04 -4.611184e-02 +6.000000e-02 7.635820e+01 -3.017322e-04 -5.045019e-02 +6.500000e-02 7.817654e+01 -3.100102e-04 -5.474159e-02 +7.000000e-02 8.004460e+01 -3.185258e-04 -5.898728e-02 +7.500000e-02 8.195058e+01 -3.272351e-04 -6.318886e-02 +8.000000e-02 8.388197e+01 -3.360880e-04 -6.734804e-02 +8.500000e-02 8.582635e+01 -3.450336e-04 -7.146655e-02 +9.000000e-02 8.777111e+01 -3.540193e-04 -7.554611e-02 +9.500000e-02 8.970384e+01 -3.629927e-04 -7.958846e-02 +1.000000e-01 9.161244e+01 -3.719025e-04 -8.359524e-02 +volume fraction= 0.492602 +fiber_centers_YZ= (0.008086,0.004285) (0.017019,0.028553) (0.000066,0.030433) (0.008571,0.013653) (0.013443,0.021141) (0.000213,0.004603) (0.009444,0.044909) (0.006774,0.036262) (0.001277,0.042062) (0.018824,0.037390) (0.016996,0.013333) (0.000100,0.012385) (0.007480,0.027201) (0.002148,0.021054) (0.016124,0.005681) (0.017273,0.045461) (0.033086,0.004285) (0.042019,0.028553) (0.025066,0.030433) (0.033571,0.013653) (0.038443,0.021141) (0.025213,0.004603) (0.034444,0.044909) (0.031774,0.036262) (0.026277,0.042062) (0.043824,0.037390) (0.041996,0.013333) (0.025100,0.012385) (0.032480,0.027201) (0.027148,0.021054) (0.041124,0.005681) (0.042273,0.045461) (0.050066,0.030433) (0.050213,0.004603) (0.051277,0.042062) (0.050100,0.012385) (0.052148,0.021054) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4926_3_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4926_3_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..c8d8137259a0440a8cd02d2005a09cc06ab905ec --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4926_3_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 4.936879e+02 -1.844645e-03 -1.854132e-03 +1.000000e-02 9.856203e+02 -3.676366e-03 -3.695222e-03 +1.500000e-02 1.475811e+03 -5.495309e-03 -5.523420e-03 +2.000000e-02 1.964272e+03 -7.301623e-03 -7.338875e-03 +2.500000e-02 2.451017e+03 -9.095569e-03 -9.141857e-03 +3.000000e-02 2.936031e+03 -1.087989e-02 -1.093529e-02 +3.500000e-02 3.419124e+03 -1.267587e-02 -1.274125e-02 +4.000000e-02 3.900157e+03 -1.450662e-02 -1.458218e-02 +4.500000e-02 4.379494e+03 -1.634619e-02 -1.643178e-02 +5.000000e-02 4.857316e+03 -1.818056e-02 -1.827597e-02 +5.500000e-02 5.333672e+03 -2.000747e-02 -2.011245e-02 +6.000000e-02 5.808588e+03 -2.182641e-02 -2.194070e-02 +6.500000e-02 6.282087e+03 -2.363708e-02 -2.376041e-02 +7.000000e-02 6.754191e+03 -2.543925e-02 -2.557131e-02 +7.500000e-02 7.224919e+03 -2.723269e-02 -2.737317e-02 +8.000000e-02 7.694290e+03 -2.901720e-02 -2.916579e-02 +8.500000e-02 8.162324e+03 -3.079274e-02 -3.094909e-02 +9.000000e-02 8.629027e+03 -3.255876e-02 -3.272259e-02 +9.500000e-02 9.094423e+03 -3.431552e-02 -3.448646e-02 +1.000000e-01 9.558522e+03 -3.606277e-02 -3.624048e-02 +volume fraction= 0.492602 +fiber_centers_YZ= (0.000239,0.009268) (0.000386,0.043904) (0.016632,0.033639) (0.007719,0.020635) (0.000294,0.035141) (0.007807,0.028684) (0.009524,0.036726) (0.016733,0.023487) (0.006604,0.004551) (0.016923,0.043932) (0.009308,0.045575) (0.000653,0.017092) (0.017151,0.006000) (0.015745,0.015027) (0.000495,0.025011) (0.007132,0.012868) (0.025239,0.009268) (0.025386,0.043904) (0.041632,0.033639) (0.032719,0.020635) (0.025294,0.035141) (0.032807,0.028684) (0.034524,0.036726) (0.041733,0.023487) (0.031604,0.004551) (0.041923,0.043932) (0.034308,0.045575) (0.025653,0.017092) (0.042151,0.006000) (0.040745,0.015027) (0.025495,0.025011) (0.032132,0.012868) (0.050239,0.009268) (0.050386,0.043904) (0.050294,0.035141) (0.050653,0.017092) (0.050495,0.025011) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4926_3_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4926_3_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..b4eac8ca8f3f3de421b58c45b2763949682d740d --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4926_3_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 9.928838e+00 +1.000000e-02 1.760814e+01 +1.500000e-02 2.131890e+01 +2.000000e-02 2.301237e+01 +2.500000e-02 2.371715e+01 +3.000000e-02 2.393779e+01 +3.500000e-02 2.389267e+01 +4.000000e-02 2.366351e+01 +4.500000e-02 2.331173e+01 +5.000000e-02 2.299292e+01 +5.500000e-02 2.285303e+01 +6.000000e-02 2.290085e+01 +6.500000e-02 2.308902e+01 +7.000000e-02 2.337412e+01 +7.500000e-02 2.368618e+01 +8.000000e-02 2.394335e+01 +8.500000e-02 2.411347e+01 +9.000000e-02 2.421628e+01 +9.500000e-02 2.431744e+01 +1.000000e-01 2.444730e+01 +volume fraction= 0.492602 +fiber_centers_YZ= (0.000239,0.009268) (0.000386,0.043904) (0.016632,0.033639) (0.007719,0.020635) (0.000294,0.035141) (0.007807,0.028684) (0.009524,0.036726) (0.016733,0.023487) (0.006604,0.004551) (0.016923,0.043932) (0.009308,0.045575) (0.000653,0.017092) (0.017151,0.006000) (0.015745,0.015027) (0.000495,0.025011) (0.007132,0.012868) (0.025239,0.009268) (0.025386,0.043904) (0.041632,0.033639) (0.032719,0.020635) (0.025294,0.035141) (0.032807,0.028684) (0.034524,0.036726) (0.041733,0.023487) (0.031604,0.004551) (0.041923,0.043932) (0.034308,0.045575) (0.025653,0.017092) (0.042151,0.006000) (0.040745,0.015027) (0.025495,0.025011) (0.032132,0.012868) (0.050239,0.009268) (0.050386,0.043904) (0.050294,0.035141) (0.050653,0.017092) (0.050495,0.025011) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4926_3_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4926_3_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..ac99a2569ddb1d226d09b5349b3d1ac85bc4cfd0 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4926_3_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 2.361441e+01 -8.853604e-05 -3.092251e-03 +1.000000e-02 4.481078e+01 -1.686930e-04 -6.304779e-03 +1.500000e-02 5.789765e+01 -2.199527e-04 -1.006097e-02 +2.000000e-02 6.517624e+01 -2.497755e-04 -1.424100e-02 +2.500000e-02 6.957291e+01 -2.686645e-04 -1.862234e-02 +3.000000e-02 7.276520e+01 -2.828929e-04 -2.306413e-02 +3.500000e-02 7.543609e+01 -2.950935e-04 -2.750687e-02 +4.000000e-02 7.788225e+01 -3.064572e-04 -3.192413e-02 +4.500000e-02 8.025581e+01 -3.175863e-04 -3.630307e-02 +5.000000e-02 8.263949e+01 -3.288111e-04 -4.063688e-02 +5.500000e-02 8.508031e+01 -3.403195e-04 -4.492219e-02 +6.000000e-02 8.758908e+01 -3.521626e-04 -4.915811e-02 +6.500000e-02 9.017164e+01 -3.644032e-04 -5.334345e-02 +7.000000e-02 9.281915e+01 -3.769402e-04 -5.748109e-02 +7.500000e-02 9.552864e+01 -3.897972e-04 -6.157070e-02 +8.000000e-02 9.829041e+01 -4.029355e-04 -6.561337e-02 +8.500000e-02 1.010909e+02 -4.162997e-04 -6.961041e-02 +9.000000e-02 1.039146e+02 -4.298217e-04 -7.356323e-02 +9.500000e-02 1.067443e+02 -4.434255e-04 -7.747333e-02 +1.000000e-01 1.095618e+02 -4.570299e-04 -8.134221e-02 +volume fraction= 0.492602 +fiber_centers_YZ= (0.000239,0.009268) (0.000386,0.043904) (0.016632,0.033639) (0.007719,0.020635) (0.000294,0.035141) (0.007807,0.028684) (0.009524,0.036726) (0.016733,0.023487) (0.006604,0.004551) (0.016923,0.043932) (0.009308,0.045575) (0.000653,0.017092) (0.017151,0.006000) (0.015745,0.015027) (0.000495,0.025011) (0.007132,0.012868) (0.025239,0.009268) (0.025386,0.043904) (0.041632,0.033639) (0.032719,0.020635) (0.025294,0.035141) (0.032807,0.028684) (0.034524,0.036726) (0.041733,0.023487) (0.031604,0.004551) (0.041923,0.043932) (0.034308,0.045575) (0.025653,0.017092) (0.042151,0.006000) (0.040745,0.015027) (0.025495,0.025011) (0.032132,0.012868) (0.050239,0.009268) (0.050386,0.043904) (0.050294,0.035141) (0.050653,0.017092) (0.050495,0.025011) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4926_4_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4926_4_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..4b17b481b8b3d9b18a22e29ec945a3b45aab88dc --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4926_4_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 4.936788e+02 -1.842444e-03 -1.854972e-03 +1.000000e-02 9.856008e+02 -3.672008e-03 -3.696880e-03 +1.500000e-02 1.475779e+03 -5.488838e-03 -5.525873e-03 +2.000000e-02 1.964228e+03 -7.293082e-03 -7.342100e-03 +2.500000e-02 2.450959e+03 -9.084994e-03 -9.145840e-03 +3.000000e-02 2.935957e+03 -1.086724e-02 -1.094013e-02 +3.500000e-02 3.419034e+03 -1.266133e-02 -1.274684e-02 +4.000000e-02 3.900050e+03 -1.449085e-02 -1.458784e-02 +4.500000e-02 4.379368e+03 -1.632950e-02 -1.643729e-02 +5.000000e-02 4.857172e+03 -1.816317e-02 -1.828117e-02 +5.500000e-02 5.333508e+03 -1.998961e-02 -2.011717e-02 +6.000000e-02 5.808403e+03 -2.180831e-02 -2.194476e-02 +6.500000e-02 6.281881e+03 -2.361896e-02 -2.376364e-02 +7.000000e-02 6.753963e+03 -2.542132e-02 -2.557355e-02 +7.500000e-02 7.224669e+03 -2.721516e-02 -2.737425e-02 +8.000000e-02 7.694018e+03 -2.900029e-02 -2.916556e-02 +8.500000e-02 8.162026e+03 -3.077649e-02 -3.094726e-02 +9.000000e-02 8.628708e+03 -3.254363e-02 -3.271923e-02 +9.500000e-02 9.094082e+03 -3.430162e-02 -3.448137e-02 +1.000000e-01 9.558155e+03 -3.605015e-02 -3.623338e-02 +volume fraction= 0.492602 +fiber_centers_YZ= (0.001786,0.024699) (0.016735,0.008560) (0.010624,0.013614) (0.009294,0.005873) (0.007714,0.037828) (0.000011,0.044697) (0.000222,0.033962) (0.016435,0.045191) (0.008027,0.045660) (0.009221,0.021258) (0.016404,0.035529) (0.020311,0.019364) (0.008727,0.029942) (0.002780,0.016979) (0.000281,0.005866) (0.019699,0.027767) (0.026786,0.024699) (0.041735,0.008560) (0.035624,0.013614) (0.034294,0.005873) (0.032714,0.037828) (0.025011,0.044697) (0.025222,0.033962) (0.041435,0.045191) (0.033027,0.045660) (0.034221,0.021258) (0.041404,0.035529) (0.045311,0.019364) (0.033727,0.029942) (0.027780,0.016979) (0.025281,0.005866) (0.044699,0.027767) (0.051786,0.024699) (0.050011,0.044697) (0.050222,0.033962) (0.052780,0.016979) (0.050281,0.005866) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4926_4_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4926_4_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..1e91357d178ac927ac11fe6e1f40391ac1e86fef --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4926_4_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 1.013702e+01 +1.000000e-02 1.796668e+01 +1.500000e-02 2.160999e+01 +2.000000e-02 2.327603e+01 +2.500000e-02 2.393633e+01 +3.000000e-02 2.413992e+01 +3.500000e-02 2.417065e+01 +4.000000e-02 2.412859e+01 +4.500000e-02 2.405090e+01 +5.000000e-02 2.396111e+01 +5.500000e-02 2.387828e+01 +6.000000e-02 2.381377e+01 +6.500000e-02 2.377676e+01 +7.000000e-02 2.377187e+01 +7.500000e-02 2.380462e+01 +8.000000e-02 2.385563e+01 +8.500000e-02 2.393900e+01 +9.000000e-02 2.404291e+01 +9.500000e-02 2.414741e+01 +1.000000e-01 2.425432e+01 +volume fraction= 0.492602 +fiber_centers_YZ= (0.001786,0.024699) (0.016735,0.008560) (0.010624,0.013614) (0.009294,0.005873) (0.007714,0.037828) (0.000011,0.044697) (0.000222,0.033962) (0.016435,0.045191) (0.008027,0.045660) (0.009221,0.021258) (0.016404,0.035529) (0.020311,0.019364) (0.008727,0.029942) (0.002780,0.016979) (0.000281,0.005866) (0.019699,0.027767) (0.026786,0.024699) (0.041735,0.008560) (0.035624,0.013614) (0.034294,0.005873) (0.032714,0.037828) (0.025011,0.044697) (0.025222,0.033962) (0.041435,0.045191) (0.033027,0.045660) (0.034221,0.021258) (0.041404,0.035529) (0.045311,0.019364) (0.033727,0.029942) (0.027780,0.016979) (0.025281,0.005866) (0.044699,0.027767) (0.051786,0.024699) (0.050011,0.044697) (0.050222,0.033962) (0.052780,0.016979) (0.050281,0.005866) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4926_4_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4926_4_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..777e53c2c8bb810efb71c87825a88d8f6db01c08 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4926_4_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 2.325578e+01 -8.708033e-05 -3.131443e-03 +1.000000e-02 4.378982e+01 -1.647326e-04 -6.398872e-03 +1.500000e-02 5.642821e+01 -2.145287e-04 -1.017200e-02 +2.000000e-02 6.339739e+01 -2.432349e-04 -1.436555e-02 +2.500000e-02 6.760573e+01 -2.613552e-04 -1.875446e-02 +3.000000e-02 7.058490e+01 -2.746404e-04 -2.321133e-02 +3.500000e-02 7.303957e+01 -2.858420e-04 -2.767433e-02 +4.000000e-02 7.528835e+01 -2.962325e-04 -3.211434e-02 +4.500000e-02 7.749795e+01 -3.064993e-04 -3.651592e-02 +5.000000e-02 7.973981e+01 -3.169502e-04 -4.087202e-02 +5.500000e-02 8.204178e+01 -3.277258e-04 -4.517952e-02 +6.000000e-02 8.441380e+01 -3.388565e-04 -4.943821e-02 +6.500000e-02 8.685337e+01 -3.503694e-04 -5.364786e-02 +7.000000e-02 8.934011e+01 -3.621420e-04 -5.781163e-02 +7.500000e-02 9.186369e+01 -3.741534e-04 -6.193066e-02 +8.000000e-02 9.441057e+01 -3.863415e-04 -6.600686e-02 +8.500000e-02 9.695671e+01 -3.985721e-04 -7.004354e-02 +9.000000e-02 9.950473e+01 -4.108937e-04 -7.404025e-02 +9.500000e-02 1.020317e+02 -4.231810e-04 -7.799999e-02 +1.000000e-01 1.045245e+02 -4.353335e-04 -8.192541e-02 +volume fraction= 0.492602 +fiber_centers_YZ= (0.001786,0.024699) (0.016735,0.008560) (0.010624,0.013614) (0.009294,0.005873) (0.007714,0.037828) (0.000011,0.044697) (0.000222,0.033962) (0.016435,0.045191) (0.008027,0.045660) (0.009221,0.021258) (0.016404,0.035529) (0.020311,0.019364) (0.008727,0.029942) (0.002780,0.016979) (0.000281,0.005866) (0.019699,0.027767) (0.026786,0.024699) (0.041735,0.008560) (0.035624,0.013614) (0.034294,0.005873) (0.032714,0.037828) (0.025011,0.044697) (0.025222,0.033962) (0.041435,0.045191) (0.033027,0.045660) (0.034221,0.021258) (0.041404,0.035529) (0.045311,0.019364) (0.033727,0.029942) (0.027780,0.016979) (0.025281,0.005866) (0.044699,0.027767) (0.051786,0.024699) (0.050011,0.044697) (0.050222,0.033962) (0.052780,0.016979) (0.050281,0.005866) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4926_5_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4926_5_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..278fa6b42f6041b446225946db90167d4aa714ac --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4926_5_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 4.937131e+02 -1.843363e-03 -1.853161e-03 +1.000000e-02 9.856682e+02 -3.673801e-03 -3.693305e-03 +1.500000e-02 1.475879e+03 -5.491461e-03 -5.520579e-03 +2.000000e-02 1.964359e+03 -7.296491e-03 -7.335135e-03 +2.500000e-02 2.451120e+03 -9.089156e-03 -9.137242e-03 +3.000000e-02 2.936147e+03 -1.087225e-02 -1.092986e-02 +3.500000e-02 3.419253e+03 -1.266721e-02 -1.273503e-02 +4.000000e-02 3.900298e+03 -1.449644e-02 -1.457546e-02 +4.500000e-02 4.379643e+03 -1.633421e-02 -1.642485e-02 +5.000000e-02 4.857472e+03 -1.816671e-02 -1.826898e-02 +5.500000e-02 5.333832e+03 -1.999171e-02 -2.010552e-02 +6.000000e-02 5.808751e+03 -2.180870e-02 -2.193394e-02 +6.500000e-02 6.282251e+03 -2.361739e-02 -2.375392e-02 +7.000000e-02 6.754355e+03 -2.541754e-02 -2.556519e-02 +7.500000e-02 7.225082e+03 -2.720894e-02 -2.736753e-02 +8.000000e-02 7.694451e+03 -2.899138e-02 -2.916071e-02 +8.500000e-02 8.162483e+03 -3.076489e-02 -3.094473e-02 +9.000000e-02 8.629180e+03 -3.252877e-02 -3.271890e-02 +9.500000e-02 9.094570e+03 -3.428338e-02 -3.448355e-02 +1.000000e-01 9.558669e+03 -3.602873e-02 -3.623866e-02 +volume fraction= 0.492602 +fiber_centers_YZ= (0.016876,0.013814) (0.009132,0.004296) (0.008548,0.027941) (0.008910,0.012333) (0.000586,0.004643) (0.008382,0.035880) (0.009393,0.043720) (0.017112,0.025572) (0.016932,0.005568) (0.001731,0.039915) (0.000609,0.013129) (0.020628,0.045721) (0.016129,0.034767) (0.011300,0.020047) (0.002026,0.021632) (0.000331,0.030353) (0.041876,0.013814) (0.034132,0.004296) (0.033548,0.027941) (0.033910,0.012333) (0.025586,0.004643) (0.033382,0.035880) (0.034393,0.043720) (0.042112,0.025572) (0.041932,0.005568) (0.026731,0.039915) (0.025609,0.013129) (0.045628,0.045721) (0.041129,0.034767) (0.036300,0.020047) (0.027026,0.021632) (0.025331,0.030353) (0.050586,0.004643) (0.051731,0.039915) (0.050609,0.013129) (0.052026,0.021632) (0.050331,0.030353) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4926_5_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4926_5_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..0b03a44f10c33b69f0c2eee8ea81ad9842f21959 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4926_5_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 9.931031e+00 +1.000000e-02 1.763321e+01 +1.500000e-02 2.152744e+01 +2.000000e-02 2.333421e+01 +2.500000e-02 2.409006e+01 +3.000000e-02 2.430519e+01 +3.500000e-02 2.427598e+01 +4.000000e-02 2.413860e+01 +4.500000e-02 2.395927e+01 +5.000000e-02 2.379968e+01 +5.500000e-02 2.368486e+01 +6.000000e-02 2.360759e+01 +6.500000e-02 2.354499e+01 +7.000000e-02 2.354064e+01 +7.500000e-02 2.363023e+01 +8.000000e-02 2.375801e+01 +8.500000e-02 2.386563e+01 +9.000000e-02 2.392905e+01 +9.500000e-02 2.399420e+01 +1.000000e-01 2.411129e+01 +volume fraction= 0.492602 +fiber_centers_YZ= (0.016876,0.013814) (0.009132,0.004296) (0.008548,0.027941) (0.008910,0.012333) (0.000586,0.004643) (0.008382,0.035880) (0.009393,0.043720) (0.017112,0.025572) (0.016932,0.005568) (0.001731,0.039915) (0.000609,0.013129) (0.020628,0.045721) (0.016129,0.034767) (0.011300,0.020047) (0.002026,0.021632) (0.000331,0.030353) (0.041876,0.013814) (0.034132,0.004296) (0.033548,0.027941) (0.033910,0.012333) (0.025586,0.004643) (0.033382,0.035880) (0.034393,0.043720) (0.042112,0.025572) (0.041932,0.005568) (0.026731,0.039915) (0.025609,0.013129) (0.045628,0.045721) (0.041129,0.034767) (0.036300,0.020047) (0.027026,0.021632) (0.025331,0.030353) (0.050586,0.004643) (0.051731,0.039915) (0.050609,0.013129) (0.052026,0.021632) (0.050331,0.030353) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4926_5_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4926_5_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..d77626e29c51d1507e124562bf06db7ed2cfb53d --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/CPP_0.4926_5_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 2.300362e+01 -8.616979e-05 -3.146935e-03 +1.000000e-02 4.331452e+01 -1.630987e-04 -6.421383e-03 +1.500000e-02 5.608065e+01 -2.130715e-04 -1.019903e-02 +2.000000e-02 6.323730e+01 -2.423931e-04 -1.438484e-02 +2.500000e-02 6.756084e+01 -2.610247e-04 -1.876869e-02 +3.000000e-02 7.056507e+01 -2.745382e-04 -2.322656e-02 +3.500000e-02 7.294209e+01 -2.855587e-04 -2.769923e-02 +4.000000e-02 7.502932e+01 -2.954022e-04 -3.215645e-02 +4.500000e-02 7.700175e+01 -3.047681e-04 -3.658222e-02 +5.000000e-02 7.895068e+01 -3.140297e-04 -4.096846e-02 +5.500000e-02 8.092364e+01 -3.233911e-04 -4.531112e-02 +6.000000e-02 8.295129e+01 -3.330022e-04 -4.960771e-02 +6.500000e-02 8.503289e+01 -3.428231e-04 -5.385991e-02 +7.000000e-02 8.717621e+01 -3.529215e-04 -5.806692e-02 +7.500000e-02 8.938039e+01 -3.633004e-04 -6.222940e-02 +8.000000e-02 9.163990e+01 -3.739429e-04 -6.634840e-02 +8.500000e-02 9.394640e+01 -3.848199e-04 -7.042517e-02 +9.000000e-02 9.629013e+01 -3.958954e-04 -7.446110e-02 +9.500000e-02 9.864537e+01 -4.070305e-04 -7.845963e-02 +1.000000e-01 1.010221e+02 -4.182982e-04 -8.241985e-02 +volume fraction= 0.492602 +fiber_centers_YZ= (0.016876,0.013814) (0.009132,0.004296) (0.008548,0.027941) (0.008910,0.012333) (0.000586,0.004643) (0.008382,0.035880) (0.009393,0.043720) (0.017112,0.025572) (0.016932,0.005568) (0.001731,0.039915) (0.000609,0.013129) (0.020628,0.045721) (0.016129,0.034767) (0.011300,0.020047) (0.002026,0.021632) (0.000331,0.030353) (0.041876,0.013814) (0.034132,0.004296) (0.033548,0.027941) (0.033910,0.012333) (0.025586,0.004643) (0.033382,0.035880) (0.034393,0.043720) (0.042112,0.025572) (0.041932,0.005568) (0.026731,0.039915) (0.025609,0.013129) (0.045628,0.045721) (0.041129,0.034767) (0.036300,0.020047) (0.027026,0.021632) (0.025331,0.030353) (0.050586,0.004643) (0.051731,0.039915) (0.050609,0.013129) (0.052026,0.021632) (0.050331,0.030353) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.0924_1_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.0924_1_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..2d957bd9aa979e0f54b346c55031050c21ecc112 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.0924_1_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 3.547777e+01 -2.251171e-03 -2.272478e-03 +1.000000e-02 7.094373e+01 -4.485698e-03 -4.528220e-03 +1.500000e-02 1.062223e+02 -6.708881e-03 -6.772354e-03 +2.000000e-02 1.406844e+02 -8.938696e-03 -9.023081e-03 +2.500000e-02 1.742458e+02 -1.117693e-02 -1.128351e-02 +3.000000e-02 2.074650e+02 -1.340820e-02 -1.353787e-02 +3.500000e-02 2.405897e+02 -1.562582e-02 -1.577894e-02 +4.000000e-02 2.736719e+02 -1.782865e-02 -1.800537e-02 +4.500000e-02 3.067222e+02 -2.001657e-02 -2.021703e-02 +5.000000e-02 3.397444e+02 -2.218966e-02 -2.241398e-02 +5.500000e-02 3.727408e+02 -2.434802e-02 -2.459632e-02 +6.000000e-02 4.057127e+02 -2.649182e-02 -2.676421e-02 +6.500000e-02 4.386621e+02 -2.862115e-02 -2.891775e-02 +7.000000e-02 4.715904e+02 -3.073615e-02 -3.105707e-02 +7.500000e-02 5.044994e+02 -3.283693e-02 -3.318227e-02 +8.000000e-02 5.373902e+02 -3.492362e-02 -3.529349e-02 +8.500000e-02 5.702641e+02 -3.699636e-02 -3.739084e-02 +9.000000e-02 6.031226e+02 -3.905525e-02 -3.947446e-02 +9.500000e-02 6.359665e+02 -4.110044e-02 -4.154446e-02 +1.000000e-01 6.687970e+02 -4.313204e-02 -4.360097e-02 +volume fraction= 0.092363 +fiber_centers_YZ= (0.009684,0.039422) (0.009627,0.015471) (0.018021,0.009378) (0.034684,0.039422) (0.034627,0.015471) (0.043021,0.009378) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.0924_1_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.0924_1_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..984a09ea30f36f84af5690da71da58b2bba50bd9 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.0924_1_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 2.864533e+00 +1.000000e-02 5.611667e+00 +1.500000e-02 7.685502e+00 +2.000000e-02 8.913633e+00 +2.500000e-02 9.757625e+00 +3.000000e-02 1.047969e+01 +3.500000e-02 1.113880e+01 +4.000000e-02 1.174934e+01 +4.500000e-02 1.231737e+01 +5.000000e-02 1.284703e+01 +5.500000e-02 1.334180e+01 +6.000000e-02 1.380476e+01 +6.500000e-02 1.423871e+01 +7.000000e-02 1.464620e+01 +7.500000e-02 1.502959e+01 +8.000000e-02 1.539109e+01 +8.500000e-02 1.573272e+01 +9.000000e-02 1.605638e+01 +9.500000e-02 1.636380e+01 +1.000000e-01 1.665662e+01 +volume fraction= 0.092363 +fiber_centers_YZ= (0.009684,0.039422) (0.009627,0.015471) (0.018021,0.009378) (0.034684,0.039422) (0.034627,0.015471) (0.043021,0.009378) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.0924_1_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.0924_1_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..6b3d68f71aa737b764671ec524c151840913bbb6 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.0924_1_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 5.353123e+00 -3.397067e-04 -4.272330e-03 +1.000000e-02 1.056904e+01 -6.689388e-04 -8.521772e-03 +1.500000e-02 1.471401e+01 -9.372446e-04 -1.285761e-02 +2.000000e-02 1.728299e+01 -1.117107e-03 -1.733986e-02 +2.500000e-02 1.906225e+01 -1.249826e-03 -2.187730e-02 +3.000000e-02 2.055171e+01 -1.362246e-03 -2.641068e-02 +3.500000e-02 2.190236e+01 -1.463047e-03 -3.092165e-02 +4.000000e-02 2.315445e+01 -1.555019e-03 -3.540507e-02 +4.500000e-02 2.432262e+01 -1.639495e-03 -3.985897e-02 +5.000000e-02 2.541035e+01 -1.716842e-03 -4.428316e-02 +5.500000e-02 2.643288e+01 -1.788769e-03 -4.867522e-02 +6.000000e-02 2.739128e+01 -1.855378e-03 -5.303543e-02 +6.500000e-02 2.829049e+01 -1.917173e-03 -5.736339e-02 +7.000000e-02 2.913507e+01 -1.974604e-03 -6.165881e-02 +7.500000e-02 2.992937e+01 -2.028075e-03 -6.592143e-02 +8.000000e-02 3.067745e+01 -2.077949e-03 -7.015109e-02 +8.500000e-02 3.138308e+01 -2.124556e-03 -7.434768e-02 +9.000000e-02 3.204978e+01 -2.168194e-03 -7.851112e-02 +9.500000e-02 3.268077e+01 -2.209135e-03 -8.264141e-02 +1.000000e-01 3.327894e+01 -2.247615e-03 -8.673858e-02 +volume fraction= 0.092363 +fiber_centers_YZ= (0.009684,0.039422) (0.009627,0.015471) (0.018021,0.009378) (0.034684,0.039422) (0.034627,0.015471) (0.043021,0.009378) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.0924_2_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.0924_2_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..2f134357718d969d0ade25ff8ea787a9e8b4f6fd --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.0924_2_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 3.547930e+01 -2.233363e-03 -2.289604e-03 +1.000000e-02 7.094662e+01 -4.450153e-03 -4.562409e-03 +1.500000e-02 1.062260e+02 -6.655667e-03 -6.823601e-03 +2.000000e-02 1.406883e+02 -8.867201e-03 -9.092150e-03 +2.500000e-02 1.742499e+02 -1.108563e-02 -1.137202e-02 +3.000000e-02 2.074689e+02 -1.329621e-02 -1.364675e-02 +3.500000e-02 2.405935e+02 -1.549274e-02 -1.590860e-02 +4.000000e-02 2.736754e+02 -1.767420e-02 -1.815611e-02 +4.500000e-02 3.067255e+02 -1.984052e-02 -2.038909e-02 +5.000000e-02 3.397474e+02 -2.199178e-02 -2.260759e-02 +5.500000e-02 3.727436e+02 -2.412809e-02 -2.481170e-02 +6.000000e-02 4.057151e+02 -2.624965e-02 -2.700156e-02 +6.500000e-02 4.386639e+02 -2.835655e-02 -2.917727e-02 +7.000000e-02 4.715917e+02 -3.044894e-02 -3.133893e-02 +7.500000e-02 5.044999e+02 -3.252694e-02 -3.348667e-02 +8.000000e-02 5.373900e+02 -3.459068e-02 -3.562060e-02 +8.500000e-02 5.702632e+02 -3.664030e-02 -3.774082e-02 +9.000000e-02 6.031207e+02 -3.867592e-02 -3.984747e-02 +9.500000e-02 6.359636e+02 -4.069768e-02 -4.194066e-02 +1.000000e-01 6.687930e+02 -4.270570e-02 -4.402051e-02 +volume fraction= 0.092363 +fiber_centers_YZ= (0.001883,0.015790) (0.019166,0.027494) (0.011945,0.031888) (0.026883,0.015790) (0.044166,0.027494) (0.036945,0.031888) (0.051883,0.015790) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.0924_2_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.0924_2_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..f17d153ec1ddf4be6d6d0bb706bbb41b0a2b6bef --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.0924_2_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 2.907393e+00 +1.000000e-02 5.654393e+00 +1.500000e-02 7.733031e+00 +2.000000e-02 8.973927e+00 +2.500000e-02 9.817857e+00 +3.000000e-02 1.053676e+01 +3.500000e-02 1.119250e+01 +4.000000e-02 1.179939e+01 +4.500000e-02 1.236349e+01 +5.000000e-02 1.288904e+01 +5.500000e-02 1.337965e+01 +6.000000e-02 1.383852e+01 +6.500000e-02 1.426855e+01 +7.000000e-02 1.467240e+01 +7.500000e-02 1.505247e+01 +8.000000e-02 1.541102e+01 +8.500000e-02 1.574986e+01 +9.000000e-02 1.607126e+01 +9.500000e-02 1.637684e+01 +1.000000e-01 1.666815e+01 +volume fraction= 0.092363 +fiber_centers_YZ= (0.001883,0.015790) (0.019166,0.027494) (0.011945,0.031888) (0.026883,0.015790) (0.044166,0.027494) (0.036945,0.031888) (0.051883,0.015790) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.0924_2_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.0924_2_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..866f92b855bc85cdf160ab62f59421f43673fff0 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.0924_2_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 5.317741e+00 -3.347221e-04 -4.284331e-03 +1.000000e-02 1.048382e+01 -6.587368e-04 -8.545723e-03 +1.500000e-02 1.460873e+01 -9.259579e-04 -1.288283e-02 +2.000000e-02 1.718070e+01 -1.106717e-03 -1.736303e-02 +2.500000e-02 1.890266e+01 -1.235961e-03 -2.190792e-02 +3.000000e-02 2.032906e+01 -1.343956e-03 -2.645046e-02 +3.500000e-02 2.161947e+01 -1.440194e-03 -3.097053e-02 +4.000000e-02 2.281192e+01 -1.527494e-03 -3.546299e-02 +4.500000e-02 2.391928e+01 -1.607155e-03 -3.992600e-02 +5.000000e-02 2.494944e+01 -1.680072e-03 -4.435851e-02 +5.500000e-02 2.590834e+01 -1.746942e-03 -4.875980e-02 +6.000000e-02 2.680164e+01 -1.808371e-03 -5.312934e-02 +6.500000e-02 2.763430e+01 -1.864872e-03 -5.746671e-02 +7.000000e-02 2.841086e+01 -1.916893e-03 -6.177162e-02 +7.500000e-02 2.913559e+01 -1.964830e-03 -6.604385e-02 +8.000000e-02 2.981257e+01 -2.009048e-03 -7.028325e-02 +8.500000e-02 3.043948e+01 -2.049077e-03 -7.449114e-02 +9.000000e-02 3.103204e+01 -2.086785e-03 -7.866461e-02 +9.500000e-02 3.158747e+01 -2.121674e-03 -8.280507e-02 +1.000000e-01 3.210855e+01 -2.153971e-03 -8.691256e-02 +volume fraction= 0.092363 +fiber_centers_YZ= (0.001883,0.015790) (0.019166,0.027494) (0.011945,0.031888) (0.026883,0.015790) (0.044166,0.027494) (0.036945,0.031888) (0.051883,0.015790) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.0924_3_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.0924_3_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..d1f2e0eaf5e793bc2a1b7e2d23aa10af20e96066 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.0924_3_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 3.547632e+01 -2.265088e-03 -2.258601e-03 +1.000000e-02 7.094084e+01 -4.513465e-03 -4.500533e-03 +1.500000e-02 1.062181e+02 -6.750256e-03 -6.731083e-03 +2.000000e-02 1.406790e+02 -8.993397e-03 -8.968461e-03 +2.500000e-02 1.742393e+02 -1.124556e-02 -1.121493e-02 +3.000000e-02 2.074573e+02 -1.349122e-02 -1.345486e-02 +3.500000e-02 2.405809e+02 -1.572337e-02 -1.568137e-02 +4.000000e-02 2.736619e+02 -1.794073e-02 -1.789323e-02 +4.500000e-02 3.067113e+02 -2.014318e-02 -2.009031e-02 +5.000000e-02 3.397325e+02 -2.233081e-02 -2.227269e-02 +5.500000e-02 3.727281e+02 -2.450368e-02 -2.444047e-02 +6.000000e-02 4.056992e+02 -2.666199e-02 -2.659380e-02 +6.500000e-02 4.386478e+02 -2.880583e-02 -2.873278e-02 +7.000000e-02 4.715756e+02 -3.093532e-02 -3.085754e-02 +7.500000e-02 5.044839e+02 -3.305059e-02 -3.296819e-02 +8.000000e-02 5.373742e+02 -3.515175e-02 -3.506488e-02 +8.500000e-02 5.702476e+02 -3.723894e-02 -3.714772e-02 +9.000000e-02 6.031055e+02 -3.931228e-02 -3.921683e-02 +9.500000e-02 6.359488e+02 -4.137191e-02 -4.127233e-02 +1.000000e-01 6.687788e+02 -4.341794e-02 -4.331436e-02 +volume fraction= 0.092363 +fiber_centers_YZ= (0.012614,0.045027) (0.002013,0.006327) (0.000528,0.021144) (0.037614,0.045027) (0.027013,0.006327) (0.025528,0.021144) (0.052013,0.006327) (0.050528,0.021144) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.0924_3_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.0924_3_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..8134d08f7ee83314ea1c71b918d0c86f91e135a7 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.0924_3_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 2.831131e+00 +1.000000e-02 5.573348e+00 +1.500000e-02 7.658520e+00 +2.000000e-02 8.863369e+00 +2.500000e-02 9.693018e+00 +3.000000e-02 1.040632e+01 +3.500000e-02 1.105876e+01 +4.000000e-02 1.166354e+01 +4.500000e-02 1.222633e+01 +5.000000e-02 1.275107e+01 +5.500000e-02 1.324107e+01 +6.000000e-02 1.369930e+01 +6.500000e-02 1.412844e+01 +7.000000e-02 1.453096e+01 +7.500000e-02 1.490916e+01 +8.000000e-02 1.526515e+01 +8.500000e-02 1.560092e+01 +9.000000e-02 1.591830e+01 +9.500000e-02 1.621902e+01 +1.000000e-01 1.650467e+01 +volume fraction= 0.092363 +fiber_centers_YZ= (0.012614,0.045027) (0.002013,0.006327) (0.000528,0.021144) (0.037614,0.045027) (0.027013,0.006327) (0.025528,0.021144) (0.052013,0.006327) (0.050528,0.021144) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.0924_3_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.0924_3_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..636e27c9c7e917c9b60e929e5ca5690957d5eeba --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.0924_3_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 5.357959e+00 -3.421191e-04 -4.266040e-03 +1.000000e-02 1.058926e+01 -6.742981e-04 -8.508229e-03 +1.500000e-02 1.478446e+01 -9.469062e-04 -1.283433e-02 +2.000000e-02 1.740147e+01 -1.131084e-03 -1.730803e-02 +2.500000e-02 1.919636e+01 -1.266438e-03 -2.184053e-02 +3.000000e-02 2.069320e+01 -1.380887e-03 -2.637014e-02 +3.500000e-02 2.205103e+01 -1.483467e-03 -3.087772e-02 +4.000000e-02 2.331039e+01 -1.577025e-03 -3.535808e-02 +4.500000e-02 2.448190e+01 -1.662519e-03 -3.980985e-02 +5.000000e-02 2.557976e+01 -1.741591e-03 -4.423082e-02 +5.500000e-02 2.660685e+01 -1.814593e-03 -4.862081e-02 +6.000000e-02 2.756883e+01 -1.882144e-03 -5.297921e-02 +6.500000e-02 2.847043e+01 -1.944750e-03 -5.730563e-02 +7.000000e-02 2.931633e+01 -2.002871e-03 -6.159974e-02 +7.500000e-02 3.011100e+01 -2.056930e-03 -6.586127e-02 +8.000000e-02 3.085825e+01 -2.107275e-03 -7.009006e-02 +8.500000e-02 3.156202e+01 -2.154248e-03 -7.428598e-02 +9.000000e-02 3.222581e+01 -2.198152e-03 -7.844896e-02 +9.500000e-02 3.285262e+01 -2.239247e-03 -8.257899e-02 +1.000000e-01 3.344540e+01 -2.277775e-03 -8.667610e-02 +volume fraction= 0.092363 +fiber_centers_YZ= (0.012614,0.045027) (0.002013,0.006327) (0.000528,0.021144) (0.037614,0.045027) (0.027013,0.006327) (0.025528,0.021144) (0.052013,0.006327) (0.050528,0.021144) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.0924_4_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.0924_4_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..5ed73b7fbbcefdceacfe8f4ba31b5a2daf66fe36 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.0924_4_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 3.547878e+01 -2.288270e-03 -2.235327e-03 +1.000000e-02 7.094574e+01 -4.559778e-03 -4.454038e-03 +1.500000e-02 1.062252e+02 -6.819586e-03 -6.661501e-03 +2.000000e-02 1.406883e+02 -9.086417e-03 -8.875172e-03 +2.500000e-02 1.742507e+02 -1.136459e-02 -1.109563e-02 +3.000000e-02 2.074707e+02 -1.363778e-02 -1.330803e-02 +3.500000e-02 2.405964e+02 -1.589818e-02 -1.550628e-02 +4.000000e-02 2.736794e+02 -1.814431e-02 -1.768937e-02 +4.500000e-02 3.067306e+02 -2.037598e-02 -1.985725e-02 +5.000000e-02 3.397536e+02 -2.259324e-02 -2.201000e-02 +5.500000e-02 3.727510e+02 -2.479618e-02 -2.414772e-02 +6.000000e-02 4.057237e+02 -2.698494e-02 -2.627060e-02 +6.500000e-02 4.386740e+02 -2.915962e-02 -2.837875e-02 +7.000000e-02 4.716032e+02 -3.132034e-02 -3.047231e-02 +7.500000e-02 5.045131e+02 -3.346720e-02 -3.255138e-02 +8.000000e-02 5.374048e+02 -3.560034e-02 -3.461611e-02 +8.500000e-02 5.702798e+02 -3.771986e-02 -3.666662e-02 +9.000000e-02 6.031391e+02 -3.982590e-02 -3.870305e-02 +9.500000e-02 6.359840e+02 -4.191857e-02 -4.072551e-02 +1.000000e-01 6.688154e+02 -4.399800e-02 -4.273414e-02 +volume fraction= 0.092363 +fiber_centers_YZ= (0.018684,0.005433) (0.010712,0.036927) (0.019714,0.015158) (0.043684,0.005433) (0.035712,0.036927) (0.044714,0.015158) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.0924_4_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.0924_4_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..420d5386f1433691258f17aa693007e926680341 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.0924_4_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 2.797801e+00 +1.000000e-02 5.517804e+00 +1.500000e-02 7.594187e+00 +2.000000e-02 8.781263e+00 +2.500000e-02 9.594975e+00 +3.000000e-02 1.029514e+01 +3.500000e-02 1.093644e+01 +4.000000e-02 1.153137e+01 +4.500000e-02 1.208519e+01 +5.000000e-02 1.260157e+01 +5.500000e-02 1.308365e+01 +6.000000e-02 1.353425e+01 +6.500000e-02 1.395595e+01 +7.000000e-02 1.435115e+01 +7.500000e-02 1.472210e+01 +8.000000e-02 1.507087e+01 +8.500000e-02 1.539940e+01 +9.000000e-02 1.570952e+01 +9.500000e-02 1.600290e+01 +1.000000e-01 1.628111e+01 +volume fraction= 0.092363 +fiber_centers_YZ= (0.018684,0.005433) (0.010712,0.036927) (0.019714,0.015158) (0.043684,0.005433) (0.035712,0.036927) (0.044714,0.015158) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.0924_4_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.0924_4_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..f49b96a328539d2058e2e0968c6a09e29956296b --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.0924_4_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 5.522161e+00 -3.563108e-04 -4.234371e-03 +1.000000e-02 1.090611e+01 -7.018569e-04 -8.447002e-03 +1.500000e-02 1.522537e+01 -9.861809e-04 -1.274820e-02 +2.000000e-02 1.789395e+01 -1.177450e-03 -1.720714e-02 +2.500000e-02 1.975252e+01 -1.319914e-03 -2.172507e-02 +3.000000e-02 2.131835e+01 -1.441498e-03 -2.624020e-02 +3.500000e-02 2.273831e+01 -1.550702e-03 -3.073455e-02 +4.000000e-02 2.405004e+01 -1.649967e-03 -3.520346e-02 +4.500000e-02 2.527234e+01 -1.741395e-03 -3.964385e-02 +5.000000e-02 2.641259e+01 -1.825634e-03 -4.405490e-02 +5.500000e-02 2.747754e+01 -1.903440e-03 -4.843576e-02 +6.000000e-02 2.847298e+01 -1.975442e-03 -5.278580e-02 +6.500000e-02 2.940463e+01 -2.042206e-03 -5.710448e-02 +7.000000e-02 3.027759e+01 -2.104232e-03 -6.139138e-02 +7.500000e-02 3.109610e+01 -2.161927e-03 -6.564624e-02 +8.000000e-02 3.186472e+01 -2.215694e-03 -6.986879e-02 +8.500000e-02 3.258759e+01 -2.265893e-03 -7.405884e-02 +9.000000e-02 3.326824e+01 -2.312825e-03 -7.821631e-02 +9.500000e-02 3.390985e+01 -2.356770e-03 -8.234115e-02 +1.000000e-01 3.451592e+01 -2.398007e-03 -8.643329e-02 +volume fraction= 0.092363 +fiber_centers_YZ= (0.018684,0.005433) (0.010712,0.036927) (0.019714,0.015158) (0.043684,0.005433) (0.035712,0.036927) (0.044714,0.015158) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.0924_5_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.0924_5_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..a140801a6a968a8b44d4c24c85fdb2c4d94cf3f6 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.0924_5_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 3.548953e+01 -2.182140e-03 -2.339320e-03 +1.000000e-02 7.096675e+01 -4.347793e-03 -4.661766e-03 +1.500000e-02 1.062553e+02 -6.501870e-03 -6.972978e-03 +2.000000e-02 1.407255e+02 -8.658902e-03 -9.294851e-03 +2.500000e-02 1.742949e+02 -1.081742e-02 -1.163359e-02 +3.000000e-02 2.075212e+02 -1.296519e-02 -1.397025e-02 +3.500000e-02 2.406532e+02 -1.509753e-02 -1.629541e-02 +4.000000e-02 2.737423e+02 -1.721386e-02 -1.860718e-02 +4.500000e-02 3.068001e+02 -1.931411e-02 -2.090528e-02 +5.000000e-02 3.398287e+02 -2.139867e-02 -2.318966e-02 +5.500000e-02 3.728311e+02 -2.346761e-02 -2.546038e-02 +6.000000e-02 4.058089e+02 -2.552111e-02 -2.771750e-02 +6.500000e-02 4.387640e+02 -2.755934e-02 -2.996109e-02 +7.000000e-02 4.716979e+02 -2.958246e-02 -3.219123e-02 +7.500000e-02 5.046120e+02 -3.159063e-02 -3.440801e-02 +8.000000e-02 5.375078e+02 -3.358401e-02 -3.661151e-02 +8.500000e-02 5.703866e+02 -3.556275e-02 -3.880183e-02 +9.000000e-02 6.032495e+02 -3.752701e-02 -4.097906e-02 +9.500000e-02 6.360977e+02 -3.947694e-02 -4.314331e-02 +1.000000e-01 6.689322e+02 -4.141267e-02 -4.529466e-02 +volume fraction= 0.092363 +fiber_centers_YZ= (0.001541,0.020578) (0.007383,0.031985) (0.018706,0.019932) (0.026541,0.020578) (0.032383,0.031985) (0.043706,0.019932) (0.051541,0.020578) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.0924_5_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.0924_5_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..7050e2d09797a9ab1ab0948b964a2599af563593 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.0924_5_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 2.984515e+00 +1.000000e-02 5.719465e+00 +1.500000e-02 7.795708e+00 +2.000000e-02 9.058978e+00 +2.500000e-02 9.916188e+00 +3.000000e-02 1.064193e+01 +3.500000e-02 1.130219e+01 +4.000000e-02 1.191292e+01 +4.500000e-02 1.248104e+01 +5.000000e-02 1.301128e+01 +5.500000e-02 1.350752e+01 +6.000000e-02 1.397309e+01 +6.500000e-02 1.441092e+01 +7.000000e-02 1.482362e+01 +7.500000e-02 1.521354e+01 +8.000000e-02 1.558280e+01 +8.500000e-02 1.593335e+01 +9.000000e-02 1.626698e+01 +9.500000e-02 1.658535e+01 +1.000000e-01 1.689001e+01 +volume fraction= 0.092363 +fiber_centers_YZ= (0.001541,0.020578) (0.007383,0.031985) (0.018706,0.019932) (0.026541,0.020578) (0.032383,0.031985) (0.043706,0.019932) (0.051541,0.020578) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.0924_5_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.0924_5_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..c7cf6da5694af66de56dc327b9623a3dda84c5e0 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.0924_5_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 5.679566e+00 -3.493806e-04 -4.259293e-03 +1.000000e-02 1.103939e+01 -6.804230e-04 -8.510257e-03 +1.500000e-02 1.518479e+01 -9.475107e-04 -1.285043e-02 +2.000000e-02 1.785526e+01 -1.131527e-03 -1.732519e-02 +2.500000e-02 1.969832e+01 -1.265588e-03 -2.186157e-02 +3.000000e-02 2.122927e+01 -1.377925e-03 -2.639677e-02 +3.500000e-02 2.260513e+01 -1.477786e-03 -3.091112e-02 +4.000000e-02 2.386812e+01 -1.568126e-03 -3.539912e-02 +4.500000e-02 2.503479e+01 -1.650380e-03 -3.985858e-02 +5.000000e-02 2.611559e+01 -1.725549e-03 -4.428821e-02 +5.500000e-02 2.711884e+01 -1.794436e-03 -4.868708e-02 +6.000000e-02 2.805147e+01 -1.857699e-03 -5.305453e-02 +6.500000e-02 2.891963e+01 -1.915901e-03 -5.739007e-02 +7.000000e-02 2.972900e+01 -1.969541e-03 -6.169328e-02 +7.500000e-02 3.048453e+01 -2.019048e-03 -6.596389e-02 +8.000000e-02 3.119060e+01 -2.064790e-03 -7.020174e-02 +8.500000e-02 3.185166e+01 -2.107124e-03 -7.440666e-02 +9.000000e-02 3.247189e+01 -2.146381e-03 -7.857852e-02 +9.500000e-02 3.305496e+01 -2.182849e-03 -8.271730e-02 +1.000000e-01 3.360407e+01 -2.216777e-03 -8.682300e-02 +volume fraction= 0.092363 +fiber_centers_YZ= (0.001541,0.020578) (0.007383,0.031985) (0.018706,0.019932) (0.026541,0.020578) (0.032383,0.031985) (0.043706,0.019932) (0.051541,0.020578) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.2155_1_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.2155_1_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..75d1453eeced4f735365572eee346fa071ea7061 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.2155_1_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 7.813412e+01 -2.056709e-03 -2.113241e-03 +1.000000e-02 1.562041e+02 -4.098185e-03 -4.211125e-03 +1.500000e-02 2.340531e+02 -6.129428e-03 -6.298495e-03 +2.000000e-02 3.111341e+02 -8.166138e-03 -8.392960e-03 +2.500000e-02 3.873979e+02 -1.020820e-02 -1.049784e-02 +3.000000e-02 4.633295e+02 -1.224256e-02 -1.259802e-02 +3.500000e-02 5.391417e+02 -1.426378e-02 -1.468633e-02 +4.000000e-02 6.148770e+02 -1.627105e-02 -1.676146e-02 +4.500000e-02 6.905445e+02 -1.826434e-02 -1.882325e-02 +5.000000e-02 7.661474e+02 -2.024375e-02 -2.087173e-02 +5.500000e-02 8.416885e+02 -2.220932e-02 -2.290695e-02 +6.000000e-02 9.171674e+02 -2.416132e-02 -2.492909e-02 +6.500000e-02 9.925866e+02 -2.609981e-02 -2.693819e-02 +7.000000e-02 1.067947e+03 -2.802490e-02 -2.893437e-02 +7.500000e-02 1.143251e+03 -2.993672e-02 -3.091772e-02 +8.000000e-02 1.218499e+03 -3.183540e-02 -3.288835e-02 +8.500000e-02 1.293692e+03 -3.372105e-02 -3.484635e-02 +9.000000e-02 1.368832e+03 -3.559379e-02 -3.679184e-02 +9.500000e-02 1.443918e+03 -3.745376e-02 -3.872493e-02 +1.000000e-01 1.518952e+03 -3.930106e-02 -4.064572e-02 +volume fraction= 0.215513 +fiber_centers_YZ= (0.002481,0.033386) (0.000155,0.012948) (0.018811,0.024112) (0.016276,0.012041) (0.002139,0.021832) (0.018830,0.037674) (0.009617,0.045172) (0.027481,0.033386) (0.025155,0.012948) (0.043811,0.024112) (0.041276,0.012041) (0.027139,0.021832) (0.043830,0.037674) (0.034617,0.045172) (0.052481,0.033386) (0.050155,0.012948) (0.052139,0.021832) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.2155_1_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.2155_1_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..c3e2139e61dfe282614f57fab92989b4eb303897 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.2155_1_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 3.738983e+00 +1.000000e-02 6.996406e+00 +1.500000e-02 9.020571e+00 +2.000000e-02 1.028987e+01 +2.500000e-02 1.127444e+01 +3.000000e-02 1.213243e+01 +3.500000e-02 1.290532e+01 +4.000000e-02 1.360865e+01 +4.500000e-02 1.425192e+01 +5.000000e-02 1.484242e+01 +5.500000e-02 1.538639e+01 +6.000000e-02 1.588924e+01 +6.500000e-02 1.635581e+01 +7.000000e-02 1.679036e+01 +7.500000e-02 1.719678e+01 +8.000000e-02 1.757852e+01 +8.500000e-02 1.793869e+01 +9.000000e-02 1.828007e+01 +9.500000e-02 1.860524e+01 +1.000000e-01 1.891652e+01 +volume fraction= 0.215513 +fiber_centers_YZ= (0.002481,0.033386) (0.000155,0.012948) (0.018811,0.024112) (0.016276,0.012041) (0.002139,0.021832) (0.018830,0.037674) (0.009617,0.045172) (0.027481,0.033386) (0.025155,0.012948) (0.043811,0.024112) (0.041276,0.012041) (0.027139,0.021832) (0.043830,0.037674) (0.034617,0.045172) (0.052481,0.033386) (0.050155,0.012948) (0.052139,0.021832) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.2155_1_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.2155_1_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..6d70a845385d551a957fcad45c9d639e994c5055 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.2155_1_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 7.907877e+00 -2.084683e-04 -4.293876e-03 +1.000000e-02 1.493778e+01 -3.950887e-04 -8.613366e-03 +1.500000e-02 1.960205e+01 -5.238873e-04 -1.308083e-02 +2.000000e-02 2.270217e+01 -6.132097e-04 -1.763560e-02 +2.500000e-02 2.518177e+01 -6.857537e-04 -2.219987e-02 +3.000000e-02 2.736111e+01 -7.494897e-04 -2.674652e-02 +3.500000e-02 2.933854e+01 -8.070382e-04 -3.126720e-02 +4.000000e-02 3.115378e+01 -8.595799e-04 -3.575864e-02 +4.500000e-02 3.282931e+01 -9.078439e-04 -4.021907e-02 +5.000000e-02 3.438154e+01 -9.523765e-04 -4.464732e-02 +5.500000e-02 3.582435e+01 -9.936334e-04 -4.904249e-02 +6.000000e-02 3.716955e+01 -1.031998e-03 -5.340388e-02 +6.500000e-02 3.842745e+01 -1.067799e-03 -5.773095e-02 +7.000000e-02 3.960699e+01 -1.101320e-03 -6.202329e-02 +7.500000e-02 4.071643e+01 -1.132815e-03 -6.628058e-02 +8.000000e-02 4.176308e+01 -1.162509e-03 -7.050255e-02 +8.500000e-02 4.275315e+01 -1.190591e-03 -7.468907e-02 +9.000000e-02 4.369507e+01 -1.217296e-03 -7.884034e-02 +9.500000e-02 4.458949e+01 -1.242675e-03 -8.295560e-02 +1.000000e-01 4.544415e+01 -1.266941e-03 -8.703511e-02 +volume fraction= 0.215513 +fiber_centers_YZ= (0.002481,0.033386) (0.000155,0.012948) (0.018811,0.024112) (0.016276,0.012041) (0.002139,0.021832) (0.018830,0.037674) (0.009617,0.045172) (0.027481,0.033386) (0.025155,0.012948) (0.043811,0.024112) (0.041276,0.012041) (0.027139,0.021832) (0.043830,0.037674) (0.034617,0.045172) (0.052481,0.033386) (0.050155,0.012948) (0.052139,0.021832) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.2155_2_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.2155_2_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..a883d4c87794575684ac68e5057d8ad8dbf65b4d --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.2155_2_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 7.813522e+01 -2.092552e-03 -2.075905e-03 +1.000000e-02 1.562058e+02 -4.169780e-03 -4.136567e-03 +1.500000e-02 2.340544e+02 -6.236825e-03 -6.186800e-03 +2.000000e-02 3.111338e+02 -8.311142e-03 -8.242619e-03 +2.500000e-02 3.873961e+02 -1.039420e-02 -1.030560e-02 +3.000000e-02 4.633259e+02 -1.247133e-02 -1.236220e-02 +3.500000e-02 5.391360e+02 -1.453605e-02 -1.440621e-02 +4.000000e-02 6.148688e+02 -1.658731e-02 -1.643663e-02 +4.500000e-02 6.905337e+02 -1.862496e-02 -1.845334e-02 +5.000000e-02 7.661337e+02 -2.064908e-02 -2.045643e-02 +5.500000e-02 8.416718e+02 -2.265971e-02 -2.244592e-02 +6.000000e-02 9.171475e+02 -2.465705e-02 -2.442209e-02 +6.500000e-02 9.925633e+02 -2.664115e-02 -2.638497e-02 +7.000000e-02 1.067921e+03 -2.861211e-02 -2.833469e-02 +7.500000e-02 1.143221e+03 -3.057005e-02 -3.027135e-02 +8.000000e-02 1.218465e+03 -3.251507e-02 -3.219508e-02 +8.500000e-02 1.293654e+03 -3.444728e-02 -3.410600e-02 +9.000000e-02 1.368789e+03 -3.636678e-02 -3.600421e-02 +9.500000e-02 1.443871e+03 -3.827369e-02 -3.788985e-02 +1.000000e-01 1.518901e+03 -4.016811e-02 -3.976303e-02 +volume fraction= 0.215513 +fiber_centers_YZ= (0.002908,0.008849) (0.020494,0.036142) (0.020424,0.020543) (0.007881,0.045371) (0.009322,0.028931) (0.010999,0.037504) (0.019095,0.008162) (0.027908,0.008849) (0.045494,0.036142) (0.045424,0.020543) (0.032881,0.045371) (0.034322,0.028931) (0.035999,0.037504) (0.044095,0.008162) (0.052908,0.008849) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.2155_2_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.2155_2_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..11de09c7075f5a05326e6dae6b0515d0f9be2c14 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.2155_2_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 3.707187e+00 +1.000000e-02 6.949341e+00 +1.500000e-02 9.010965e+00 +2.000000e-02 1.027483e+01 +2.500000e-02 1.125238e+01 +3.000000e-02 1.210655e+01 +3.500000e-02 1.287726e+01 +4.000000e-02 1.357956e+01 +4.500000e-02 1.422273e+01 +5.000000e-02 1.481401e+01 +5.500000e-02 1.535964e+01 +6.000000e-02 1.586503e+01 +6.500000e-02 1.633499e+01 +7.000000e-02 1.677377e+01 +7.500000e-02 1.718522e+01 +8.000000e-02 1.757279e+01 +8.500000e-02 1.793955e+01 +9.000000e-02 1.828824e+01 +9.500000e-02 1.862135e+01 +1.000000e-01 1.894114e+01 +volume fraction= 0.215513 +fiber_centers_YZ= (0.002908,0.008849) (0.020494,0.036142) (0.020424,0.020543) (0.007881,0.045371) (0.009322,0.028931) (0.010999,0.037504) (0.019095,0.008162) (0.027908,0.008849) (0.045494,0.036142) (0.045424,0.020543) (0.032881,0.045371) (0.034322,0.028931) (0.035999,0.037504) (0.044095,0.008162) (0.052908,0.008849) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.2155_2_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.2155_2_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..a7b680df4e99a294751606c3f75ae030be1ab387 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.2155_2_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 7.844271e+00 -2.103343e-04 -4.282551e-03 +1.000000e-02 1.489061e+01 -4.001445e-04 -8.587660e-03 +1.500000e-02 1.953916e+01 -5.306760e-04 -1.304754e-02 +2.000000e-02 2.259409e+01 -6.202481e-04 -1.760106e-02 +2.500000e-02 2.502005e+01 -6.925974e-04 -2.216598e-02 +3.000000e-02 2.714368e+01 -7.558867e-04 -2.671447e-02 +3.500000e-02 2.906151e+01 -8.127807e-04 -3.123852e-02 +4.000000e-02 3.081447e+01 -8.643369e-04 -3.573457e-02 +4.500000e-02 3.242355e+01 -9.113446e-04 -4.020107e-02 +5.000000e-02 3.390525e+01 -9.543663e-04 -4.463682e-02 +5.500000e-02 3.527314e+01 -9.938637e-04 -4.904093e-02 +6.000000e-02 3.653955e+01 -1.030244e-03 -5.341269e-02 +6.500000e-02 3.771516e+01 -1.063859e-03 -5.775153e-02 +7.000000e-02 3.880963e+01 -1.095017e-03 -6.205701e-02 +7.500000e-02 3.983146e+01 -1.123989e-03 -6.632879e-02 +8.000000e-02 4.078896e+01 -1.151035e-03 -7.056659e-02 +8.500000e-02 4.168905e+01 -1.176369e-03 -7.477024e-02 +9.000000e-02 4.253773e+01 -1.200179e-03 -7.893966e-02 +9.500000e-02 4.334075e+01 -1.222641e-03 -8.307479e-02 +1.000000e-01 4.410344e+01 -1.243918e-03 -8.717563e-02 +volume fraction= 0.215513 +fiber_centers_YZ= (0.002908,0.008849) (0.020494,0.036142) (0.020424,0.020543) (0.007881,0.045371) (0.009322,0.028931) (0.010999,0.037504) (0.019095,0.008162) (0.027908,0.008849) (0.045494,0.036142) (0.045424,0.020543) (0.032881,0.045371) (0.034322,0.028931) (0.035999,0.037504) (0.044095,0.008162) (0.052908,0.008849) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.2155_3_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.2155_3_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..16eb35ce11feb225fb8fee74ace876af2fc95e16 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.2155_3_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 7.812616e+01 -2.090457e-03 -2.079490e-03 +1.000000e-02 1.561882e+02 -4.165593e-03 -4.143712e-03 +1.500000e-02 2.340291e+02 -6.230330e-03 -6.197594e-03 +2.000000e-02 3.111018e+02 -8.301506e-03 -8.257634e-03 +2.500000e-02 3.873555e+02 -1.038106e-02 -1.032532e-02 +3.000000e-02 4.632803e+02 -1.245439e-02 -1.238641e-02 +3.500000e-02 5.390840e+02 -1.451537e-02 -1.443504e-02 +4.000000e-02 6.148108e+02 -1.656283e-02 -1.647009e-02 +4.500000e-02 6.904699e+02 -1.859663e-02 -1.849148e-02 +5.000000e-02 7.660643e+02 -2.061685e-02 -2.049926e-02 +5.500000e-02 8.415960e+02 -2.262359e-02 -2.249354e-02 +6.000000e-02 9.170674e+02 -2.461690e-02 -2.447438e-02 +6.500000e-02 9.924782e+02 -2.659699e-02 -2.644200e-02 +7.000000e-02 1.067831e+03 -2.856392e-02 -2.839647e-02 +7.500000e-02 1.143126e+03 -3.051779e-02 -3.033790e-02 +8.000000e-02 1.218366e+03 -3.245871e-02 -3.226641e-02 +8.500000e-02 1.293551e+03 -3.438680e-02 -3.418211e-02 +9.000000e-02 1.368682e+03 -3.630217e-02 -3.608512e-02 +9.500000e-02 1.443760e+03 -3.820493e-02 -3.797555e-02 +1.000000e-01 1.518786e+03 -4.009519e-02 -3.985352e-02 +volume fraction= 0.215513 +fiber_centers_YZ= (0.019015,0.010522) (0.001653,0.044223) (0.000995,0.020529) (0.017580,0.033517) (0.017481,0.044478) (0.007744,0.006062) (0.015635,0.023970) (0.044015,0.010522) (0.026653,0.044223) (0.025995,0.020529) (0.042580,0.033517) (0.042481,0.044478) (0.032744,0.006062) (0.040635,0.023970) (0.051653,0.044223) (0.050995,0.020529) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.2155_3_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.2155_3_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..e3e1aa44657c5fff4bb60bfebb4fc97cdaa4d87c --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.2155_3_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 3.684322e+00 +1.000000e-02 6.944387e+00 +1.500000e-02 8.993648e+00 +2.000000e-02 1.024971e+01 +2.500000e-02 1.122803e+01 +3.000000e-02 1.208572e+01 +3.500000e-02 1.286101e+01 +4.000000e-02 1.356836e+01 +4.500000e-02 1.421671e+01 +5.000000e-02 1.481306e+01 +5.500000e-02 1.536339e+01 +6.000000e-02 1.587297e+01 +6.500000e-02 1.634649e+01 +7.000000e-02 1.678815e+01 +7.500000e-02 1.720174e+01 +8.000000e-02 1.759067e+01 +8.500000e-02 1.795801e+01 +9.000000e-02 1.830655e+01 +9.500000e-02 1.863882e+01 +1.000000e-01 1.895709e+01 +volume fraction= 0.215513 +fiber_centers_YZ= (0.019015,0.010522) (0.001653,0.044223) (0.000995,0.020529) (0.017580,0.033517) (0.017481,0.044478) (0.007744,0.006062) (0.015635,0.023970) (0.044015,0.010522) (0.026653,0.044223) (0.025995,0.020529) (0.042580,0.033517) (0.042481,0.044478) (0.032744,0.006062) (0.040635,0.023970) (0.051653,0.044223) (0.050995,0.020529) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.2155_3_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.2155_3_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..a5cb434bc9e27688f685ea5c553a6f94a2a7b297 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.2155_3_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 7.698900e+00 -2.062559e-04 -4.296208e-03 +1.000000e-02 1.463151e+01 -3.926629e-04 -8.612714e-03 +1.500000e-02 1.919292e+01 -5.202147e-04 -1.308251e-02 +2.000000e-02 2.220235e+01 -6.084207e-04 -1.763971e-02 +2.500000e-02 2.460895e+01 -6.801613e-04 -2.220606e-02 +3.000000e-02 2.672651e+01 -7.432452e-04 -2.675497e-02 +3.500000e-02 2.864760e+01 -8.001849e-04 -3.127850e-02 +4.000000e-02 3.040914e+01 -8.521124e-04 -3.577356e-02 +4.500000e-02 3.203311e+01 -8.997536e-04 -4.023843e-02 +5.000000e-02 3.353556e+01 -9.436539e-04 -4.467199e-02 +5.500000e-02 3.493010e+01 -9.842696e-04 -4.907337e-02 +6.000000e-02 3.622863e+01 -1.021991e-03 -5.344192e-02 +6.500000e-02 3.744154e+01 -1.057154e-03 -5.777712e-02 +7.000000e-02 3.857801e+01 -1.090052e-03 -6.207859e-02 +7.500000e-02 3.964635e+01 -1.120948e-03 -6.634605e-02 +8.000000e-02 4.065449e+01 -1.150084e-03 -7.057925e-02 +8.500000e-02 4.160906e+01 -1.177668e-03 -7.477806e-02 +9.000000e-02 4.251603e+01 -1.203882e-03 -7.894242e-02 +9.500000e-02 4.338083e+01 -1.228890e-03 -8.307231e-02 +1.000000e-01 4.420844e+01 -1.252842e-03 -8.716776e-02 +volume fraction= 0.215513 +fiber_centers_YZ= (0.019015,0.010522) (0.001653,0.044223) (0.000995,0.020529) (0.017580,0.033517) (0.017481,0.044478) (0.007744,0.006062) (0.015635,0.023970) (0.044015,0.010522) (0.026653,0.044223) (0.025995,0.020529) (0.042580,0.033517) (0.042481,0.044478) (0.032744,0.006062) (0.040635,0.023970) (0.051653,0.044223) (0.050995,0.020529) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.2155_4_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.2155_4_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..a3757fef5d46c135eb4a2b276f4769deccd5af43 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.2155_4_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 7.812913e+01 -2.065326e-03 -2.104888e-03 +1.000000e-02 1.561942e+02 -4.115439e-03 -4.194396e-03 +1.500000e-02 2.340386e+02 -6.155465e-03 -6.273202e-03 +2.000000e-02 3.111152e+02 -8.201994e-03 -8.357987e-03 +2.500000e-02 3.873744e+02 -1.025547e-02 -1.045160e-02 +3.000000e-02 4.633016e+02 -1.230207e-02 -1.253967e-02 +3.500000e-02 5.391094e+02 -1.433602e-02 -1.461538e-02 +4.000000e-02 6.148405e+02 -1.635639e-02 -1.667753e-02 +4.500000e-02 6.905039e+02 -1.836312e-02 -1.872600e-02 +5.000000e-02 7.661027e+02 -2.035629e-02 -2.076084e-02 +5.500000e-02 8.416396e+02 -2.233594e-02 -2.278210e-02 +6.000000e-02 9.171146e+02 -2.430230e-02 -2.478999e-02 +6.500000e-02 9.925299e+02 -2.625543e-02 -2.678456e-02 +7.000000e-02 1.067887e+03 -2.819543e-02 -2.876592e-02 +7.500000e-02 1.143187e+03 -3.012242e-02 -3.073419e-02 +8.000000e-02 1.218431e+03 -3.203653e-02 -3.268948e-02 +8.500000e-02 1.293621e+03 -3.393786e-02 -3.463190e-02 +9.000000e-02 1.368757e+03 -3.582653e-02 -3.656156e-02 +9.500000e-02 1.443839e+03 -3.770265e-02 -3.847858e-02 +1.000000e-01 1.518870e+03 -3.956634e-02 -4.038307e-02 +volume fraction= 0.215513 +fiber_centers_YZ= (0.007820,0.006582) (0.008526,0.032891) (0.017880,0.021391) (0.002923,0.021632) (0.001236,0.045033) (0.016564,0.042758) (0.019683,0.030348) (0.032820,0.006582) (0.033526,0.032891) (0.042880,0.021391) (0.027923,0.021632) (0.026236,0.045033) (0.041564,0.042758) (0.044683,0.030348) (0.052923,0.021632) (0.051236,0.045033) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.2155_4_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.2155_4_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..8fa1c8751c9d1af40080a0c6e91fe33dd15ffaca --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.2155_4_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 3.742611e+00 +1.000000e-02 7.010713e+00 +1.500000e-02 9.078419e+00 +2.000000e-02 1.037003e+01 +2.500000e-02 1.136460e+01 +3.000000e-02 1.223251e+01 +3.500000e-02 1.301635e+01 +4.000000e-02 1.373143e+01 +4.500000e-02 1.438694e+01 +5.000000e-02 1.499003e+01 +5.500000e-02 1.554685e+01 +6.000000e-02 1.606281e+01 +6.500000e-02 1.654272e+01 +7.000000e-02 1.699094e+01 +7.500000e-02 1.741138e+01 +8.000000e-02 1.780755e+01 +8.500000e-02 1.818265e+01 +9.000000e-02 1.853953e+01 +9.500000e-02 1.888078e+01 +1.000000e-01 1.920876e+01 +volume fraction= 0.215513 +fiber_centers_YZ= (0.007820,0.006582) (0.008526,0.032891) (0.017880,0.021391) (0.002923,0.021632) (0.001236,0.045033) (0.016564,0.042758) (0.019683,0.030348) (0.032820,0.006582) (0.033526,0.032891) (0.042880,0.021391) (0.027923,0.021632) (0.026236,0.045033) (0.041564,0.042758) (0.044683,0.030348) (0.052923,0.021632) (0.051236,0.045033) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.2155_4_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.2155_4_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..c96fdb2d2c92d9a2713e205415416fe7e7ecb5a8 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.2155_4_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 7.499114e+00 -1.984375e-04 -4.325472e-03 +1.000000e-02 1.422823e+01 -3.780133e-04 -8.666124e-03 +1.500000e-02 1.863414e+01 -5.017851e-04 -1.314683e-02 +2.000000e-02 2.148055e+01 -5.853552e-04 -1.771829e-02 +2.500000e-02 2.371997e+01 -6.518025e-04 -2.230135e-02 +3.000000e-02 2.567861e+01 -7.096224e-04 -2.686675e-02 +3.500000e-02 2.744893e+01 -7.614822e-04 -3.140598e-02 +4.000000e-02 2.906659e+01 -8.085342e-04 -3.591589e-02 +4.500000e-02 3.055311e+01 -8.515045e-04 -4.039480e-02 +5.000000e-02 3.192411e+01 -8.909249e-04 -4.484166e-02 +5.500000e-02 3.319246e+01 -9.272247e-04 -4.925574e-02 +6.000000e-02 3.436986e+01 -9.607826e-04 -5.363643e-02 +6.500000e-02 3.546652e+01 -9.919251e-04 -5.798329e-02 +7.000000e-02 3.649140e+01 -1.020934e-03 -6.229600e-02 +7.500000e-02 3.745269e+01 -1.048064e-03 -6.657432e-02 +8.000000e-02 3.835777e+01 -1.073542e-03 -7.081809e-02 +8.500000e-02 3.921320e+01 -1.097567e-03 -7.502721e-02 +9.000000e-02 4.002509e+01 -1.120325e-03 -7.920165e-02 +9.500000e-02 4.079954e+01 -1.142043e-03 -8.334162e-02 +1.000000e-01 4.154009e+01 -1.162738e-03 -8.744675e-02 +volume fraction= 0.215513 +fiber_centers_YZ= (0.007820,0.006582) (0.008526,0.032891) (0.017880,0.021391) (0.002923,0.021632) (0.001236,0.045033) (0.016564,0.042758) (0.019683,0.030348) (0.032820,0.006582) (0.033526,0.032891) (0.042880,0.021391) (0.027923,0.021632) (0.026236,0.045033) (0.041564,0.042758) (0.044683,0.030348) (0.052923,0.021632) (0.051236,0.045033) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.2155_5_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.2155_5_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..f579040c82a34e07554fdb84a0474344bcc516dd --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.2155_5_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 7.813093e+01 -2.081631e-03 -2.088854e-03 +1.000000e-02 1.561979e+02 -4.147969e-03 -4.162404e-03 +1.500000e-02 2.340444e+02 -6.203974e-03 -6.225465e-03 +2.000000e-02 3.111235e+02 -8.266307e-03 -8.294611e-03 +2.500000e-02 3.873850e+02 -1.033629e-02 -1.037187e-02 +3.000000e-02 4.633144e+02 -1.239985e-02 -1.244314e-02 +3.500000e-02 5.391243e+02 -1.445083e-02 -1.450198e-02 +4.000000e-02 6.148573e+02 -1.648822e-02 -1.654730e-02 +4.500000e-02 6.905227e+02 -1.851191e-02 -1.857897e-02 +5.000000e-02 7.661236e+02 -2.052198e-02 -2.059707e-02 +5.500000e-02 8.416627e+02 -2.251847e-02 -2.260165e-02 +6.000000e-02 9.171399e+02 -2.450161e-02 -2.459292e-02 +6.500000e-02 9.925574e+02 -2.647145e-02 -2.657093e-02 +7.000000e-02 1.067917e+03 -2.842810e-02 -2.853581e-02 +7.500000e-02 1.143219e+03 -3.037168e-02 -3.048765e-02 +8.000000e-02 1.218466e+03 -3.230230e-02 -3.242658e-02 +8.500000e-02 1.293657e+03 -3.422008e-02 -3.435271e-02 +9.000000e-02 1.368795e+03 -3.612511e-02 -3.626616e-02 +9.500000e-02 1.443881e+03 -3.801753e-02 -3.816703e-02 +1.000000e-01 1.518914e+03 -3.989745e-02 -4.005545e-02 +volume fraction= 0.215513 +fiber_centers_YZ= (0.019799,0.018193) (0.017933,0.033940) (0.015634,0.045365) (0.007881,0.018681) (0.002307,0.007641) (0.002333,0.042966) (0.007461,0.029140) (0.044799,0.018193) (0.042933,0.033940) (0.040634,0.045365) (0.032881,0.018681) (0.027307,0.007641) (0.027333,0.042966) (0.032461,0.029140) (0.052307,0.007641) (0.052333,0.042966) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.2155_5_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.2155_5_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..a849b47338979e3687a3065895de9d30411a6149 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.2155_5_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 3.693560e+00 +1.000000e-02 6.969531e+00 +1.500000e-02 9.016917e+00 +2.000000e-02 1.028722e+01 +2.500000e-02 1.127815e+01 +3.000000e-02 1.214639e+01 +3.500000e-02 1.293109e+01 +4.000000e-02 1.364716e+01 +4.500000e-02 1.430370e+01 +5.000000e-02 1.490778e+01 +5.500000e-02 1.546541e+01 +6.000000e-02 1.598186e+01 +6.500000e-02 1.646187e+01 +7.000000e-02 1.690971e+01 +7.500000e-02 1.732920e+01 +8.000000e-02 1.772380e+01 +8.500000e-02 1.809663e+01 +9.000000e-02 1.845054e+01 +9.500000e-02 1.878810e+01 +1.000000e-01 1.911166e+01 +volume fraction= 0.215513 +fiber_centers_YZ= (0.019799,0.018193) (0.017933,0.033940) (0.015634,0.045365) (0.007881,0.018681) (0.002307,0.007641) (0.002333,0.042966) (0.007461,0.029140) (0.044799,0.018193) (0.042933,0.033940) (0.040634,0.045365) (0.032881,0.018681) (0.027307,0.007641) (0.027333,0.042966) (0.032461,0.029140) (0.052307,0.007641) (0.052333,0.042966) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.2155_5_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.2155_5_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..1c884fbb9fe19ccb236f8599530b9be20ac1b42b --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.2155_5_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 7.516861e+00 -2.004717e-04 -4.316434e-03 +1.000000e-02 1.431101e+01 -3.824375e-04 -8.648177e-03 +1.500000e-02 1.873076e+01 -5.054470e-04 -1.313324e-02 +2.000000e-02 2.160110e+01 -5.887856e-04 -1.770664e-02 +2.500000e-02 2.390350e+01 -6.566090e-04 -2.228583e-02 +3.000000e-02 2.593287e+01 -7.162693e-04 -2.684550e-02 +3.500000e-02 2.777301e+01 -7.701072e-04 -3.137868e-02 +4.000000e-02 2.945982e+01 -8.192032e-04 -3.588247e-02 +4.500000e-02 3.101468e+01 -8.642391e-04 -4.035533e-02 +5.000000e-02 3.245397e+01 -9.057456e-04 -4.479617e-02 +5.500000e-02 3.379088e+01 -9.441525e-04 -4.920423e-02 +6.000000e-02 3.503688e+01 -9.798310e-04 -5.357893e-02 +6.500000e-02 3.620174e+01 -1.013095e-03 -5.791984e-02 +7.000000e-02 3.729455e+01 -1.044232e-03 -6.222662e-02 +7.500000e-02 3.831003e+01 -1.072874e-03 -6.650058e-02 +8.000000e-02 3.928101e+01 -1.100451e-03 -7.073854e-02 +8.500000e-02 4.020205e+01 -1.126592e-03 -7.494181e-02 +9.000000e-02 4.107855e+01 -1.151461e-03 -7.911040e-02 +9.500000e-02 4.191554e+01 -1.175211e-03 -8.324434e-02 +1.000000e-01 4.271719e+01 -1.197972e-03 -8.734373e-02 +volume fraction= 0.215513 +fiber_centers_YZ= (0.019799,0.018193) (0.017933,0.033940) (0.015634,0.045365) (0.007881,0.018681) (0.002307,0.007641) (0.002333,0.042966) (0.007461,0.029140) (0.044799,0.018193) (0.042933,0.033940) (0.040634,0.045365) (0.032881,0.018681) (0.027307,0.007641) (0.027333,0.042966) (0.032461,0.029140) (0.052307,0.007641) (0.052333,0.042966) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.3079_1_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.3079_1_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..2ffdd99560f803619f35679cfd8fdc125ebb1572 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.3079_1_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.100930e+02 -1.961622e-03 -1.945227e-03 +1.000000e-02 2.200440e+02 -3.908965e-03 -3.876276e-03 +1.500000e-02 3.297118e+02 -5.846434e-03 -5.797972e-03 +2.000000e-02 4.386125e+02 -7.789214e-03 -7.725869e-03 +2.500000e-02 5.467164e+02 -9.739312e-03 -9.660396e-03 +3.000000e-02 6.544590e+02 -1.168351e-02 -1.158834e-02 +3.500000e-02 7.620213e+02 -1.361619e-02 -1.350454e-02 +4.000000e-02 8.694417e+02 -1.553625e-02 -1.540804e-02 +4.500000e-02 9.767284e+02 -1.744357e-02 -1.729876e-02 +5.000000e-02 1.083885e+03 -1.933823e-02 -1.917677e-02 +5.500000e-02 1.190912e+03 -2.122031e-02 -2.104215e-02 +6.000000e-02 1.297814e+03 -2.308984e-02 -2.289494e-02 +6.500000e-02 1.404589e+03 -2.494708e-02 -2.473538e-02 +7.000000e-02 1.511240e+03 -2.679205e-02 -2.656350e-02 +7.500000e-02 1.617768e+03 -2.862486e-02 -2.837940e-02 +8.000000e-02 1.724175e+03 -3.044561e-02 -3.018319e-02 +8.500000e-02 1.830461e+03 -3.225442e-02 -3.197497e-02 +9.000000e-02 1.936629e+03 -3.405138e-02 -3.375485e-02 +9.500000e-02 2.042678e+03 -3.583661e-02 -3.552293e-02 +1.000000e-01 2.148610e+03 -3.761021e-02 -3.727932e-02 +volume fraction= 0.307876 +fiber_centers_YZ= (0.012105,0.026463) (0.010078,0.037490) (0.020172,0.004416) (0.011774,0.013812) (0.007032,0.005203) (0.000391,0.028417) (0.000251,0.018823) (0.013904,0.045525) (0.017271,0.033842) (0.000204,0.043109) (0.037105,0.026463) (0.035078,0.037490) (0.045172,0.004416) (0.036774,0.013812) (0.032032,0.005203) (0.025391,0.028417) (0.025251,0.018823) (0.038904,0.045525) (0.042271,0.033842) (0.025204,0.043109) (0.050391,0.028417) (0.050251,0.018823) (0.050204,0.043109) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.3079_1_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.3079_1_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..aebc067034afc6fc5a0eac86df66ae63f91b1be9 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.3079_1_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 4.486385e+00 +1.000000e-02 8.133240e+00 +1.500000e-02 1.017833e+01 +2.000000e-02 1.153144e+01 +2.500000e-02 1.264237e+01 +3.000000e-02 1.361880e+01 +3.500000e-02 1.449320e+01 +4.000000e-02 1.528233e+01 +4.500000e-02 1.599829e+01 +5.000000e-02 1.665096e+01 +5.500000e-02 1.724882e+01 +6.000000e-02 1.779930e+01 +6.500000e-02 1.830891e+01 +7.000000e-02 1.878341e+01 +7.500000e-02 1.922788e+01 +8.000000e-02 1.964682e+01 +8.500000e-02 2.004425e+01 +9.000000e-02 2.042375e+01 +9.500000e-02 2.078850e+01 +1.000000e-01 2.114134e+01 +volume fraction= 0.307876 +fiber_centers_YZ= (0.012105,0.026463) (0.010078,0.037490) (0.020172,0.004416) (0.011774,0.013812) (0.007032,0.005203) (0.000391,0.028417) (0.000251,0.018823) (0.013904,0.045525) (0.017271,0.033842) (0.000204,0.043109) (0.037105,0.026463) (0.035078,0.037490) (0.045172,0.004416) (0.036774,0.013812) (0.032032,0.005203) (0.025391,0.028417) (0.025251,0.018823) (0.038904,0.045525) (0.042271,0.033842) (0.025204,0.043109) (0.050391,0.028417) (0.050251,0.018823) (0.050204,0.043109) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.3079_1_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.3079_1_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..57dc603a6ca2add70817b84168b8ec8dea23a198 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.3079_1_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 8.855463e+00 -1.579466e-04 -4.326147e-03 +1.000000e-02 1.637879e+01 -2.928494e-04 -8.701604e-03 +1.500000e-02 2.087551e+01 -3.769556e-04 -1.324402e-02 +2.000000e-02 2.391458e+01 -4.356611e-04 -1.784699e-02 +2.500000e-02 2.641894e+01 -4.842621e-04 -2.244461e-02 +3.000000e-02 2.863703e+01 -5.270970e-04 -2.701919e-02 +3.500000e-02 3.064452e+01 -5.656103e-04 -3.156545e-02 +4.000000e-02 3.247793e+01 -6.005678e-04 -3.608099e-02 +4.500000e-02 3.416219e+01 -6.325148e-04 -4.056429e-02 +5.000000e-02 3.571735e+01 -6.618900e-04 -4.501423e-02 +5.500000e-02 3.716057e+01 -6.890639e-04 -4.942996e-02 +6.000000e-02 3.850713e+01 -7.143591e-04 -5.381079e-02 +6.500000e-02 3.977048e+01 -7.380574e-04 -5.815618e-02 +7.000000e-02 4.096221e+01 -7.603981e-04 -6.246574e-02 +7.500000e-02 4.209274e+01 -7.815945e-04 -6.673917e-02 +8.000000e-02 4.317143e+01 -8.018363e-04 -7.097626e-02 +8.500000e-02 4.420608e+01 -8.212823e-04 -7.517691e-02 +9.000000e-02 4.520377e+01 -8.400746e-04 -7.934107e-02 +9.500000e-02 4.617097e+01 -8.583422e-04 -8.346872e-02 +1.000000e-01 4.711325e+01 -8.761964e-04 -8.755992e-02 +volume fraction= 0.307876 +fiber_centers_YZ= (0.012105,0.026463) (0.010078,0.037490) (0.020172,0.004416) (0.011774,0.013812) (0.007032,0.005203) (0.000391,0.028417) (0.000251,0.018823) (0.013904,0.045525) (0.017271,0.033842) (0.000204,0.043109) (0.037105,0.026463) (0.035078,0.037490) (0.045172,0.004416) (0.036774,0.013812) (0.032032,0.005203) (0.025391,0.028417) (0.025251,0.018823) (0.038904,0.045525) (0.042271,0.033842) (0.025204,0.043109) (0.050391,0.028417) (0.050251,0.018823) (0.050204,0.043109) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.3079_2_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.3079_2_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..dcb2151af86e1ed47f6397ff495ebf08027e8cd5 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.3079_2_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.101055e+02 -1.923655e-03 -1.980593e-03 +1.000000e-02 2.200682e+02 -3.833205e-03 -3.946862e-03 +1.500000e-02 3.297451e+02 -5.733426e-03 -5.903553e-03 +2.000000e-02 4.386528e+02 -7.638318e-03 -7.867723e-03 +2.500000e-02 5.467642e+02 -9.547500e-03 -9.841706e-03 +3.000000e-02 6.545138e+02 -1.144917e-02 -1.181077e-02 +3.500000e-02 7.620823e+02 -1.333873e-02 -1.376874e-02 +4.000000e-02 8.695082e+02 -1.521535e-02 -1.571442e-02 +4.500000e-02 9.767998e+02 -1.707897e-02 -1.764763e-02 +5.000000e-02 1.083960e+03 -1.892969e-02 -1.956840e-02 +5.500000e-02 1.190991e+03 -2.076762e-02 -2.147682e-02 +6.000000e-02 1.297895e+03 -2.259289e-02 -2.337294e-02 +6.500000e-02 1.404674e+03 -2.440547e-02 -2.525680e-02 +7.000000e-02 1.511327e+03 -2.620576e-02 -2.712860e-02 +7.500000e-02 1.617857e+03 -2.799373e-02 -2.898837e-02 +8.000000e-02 1.724265e+03 -2.976951e-02 -3.083620e-02 +8.500000e-02 1.830553e+03 -3.153321e-02 -3.267217e-02 +9.000000e-02 1.936721e+03 -3.328495e-02 -3.449638e-02 +9.500000e-02 2.042770e+03 -3.502484e-02 -3.630893e-02 +1.000000e-01 2.148702e+03 -3.675301e-02 -3.810991e-02 +volume fraction= 0.307876 +fiber_centers_YZ= (0.016337,0.022780) (0.007951,0.022728) (0.002304,0.035220) (0.006616,0.011631) (0.014532,0.035992) (0.017146,0.044264) (0.000422,0.018359) (0.001949,0.045031) (0.020109,0.010016) (0.013342,0.004318) (0.041337,0.022780) (0.032951,0.022728) (0.027304,0.035220) (0.031616,0.011631) (0.039532,0.035992) (0.042146,0.044264) (0.025422,0.018359) (0.026949,0.045031) (0.045109,0.010016) (0.038342,0.004318) (0.052304,0.035220) (0.050422,0.018359) (0.051949,0.045031) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.3079_2_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.3079_2_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..6be3b114d3c34b5adca91fe40d464058c3360f69 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.3079_2_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 4.651817e+00 +1.000000e-02 8.231239e+00 +1.500000e-02 1.030605e+01 +2.000000e-02 1.169153e+01 +2.500000e-02 1.281224e+01 +3.000000e-02 1.378887e+01 +3.500000e-02 1.465945e+01 +4.000000e-02 1.544324e+01 +4.500000e-02 1.615548e+01 +5.000000e-02 1.680391e+01 +5.500000e-02 1.739925e+01 +6.000000e-02 1.794936e+01 +6.500000e-02 1.846102e+01 +7.000000e-02 1.894009e+01 +7.500000e-02 1.939164e+01 +8.000000e-02 1.982008e+01 +8.500000e-02 2.022928e+01 +9.000000e-02 2.062266e+01 +9.500000e-02 2.100319e+01 +1.000000e-01 2.137350e+01 +volume fraction= 0.307876 +fiber_centers_YZ= (0.016337,0.022780) (0.007951,0.022728) (0.002304,0.035220) (0.006616,0.011631) (0.014532,0.035992) (0.017146,0.044264) (0.000422,0.018359) (0.001949,0.045031) (0.020109,0.010016) (0.013342,0.004318) (0.041337,0.022780) (0.032951,0.022728) (0.027304,0.035220) (0.031616,0.011631) (0.039532,0.035992) (0.042146,0.044264) (0.025422,0.018359) (0.026949,0.045031) (0.045109,0.010016) (0.038342,0.004318) (0.052304,0.035220) (0.050422,0.018359) (0.051949,0.045031) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.3079_2_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.3079_2_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..8e8aa1b52fbf0b8a2571c394cefa18baa2f348c5 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.3079_2_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 9.809370e+00 -1.717293e-04 -4.277450e-03 +1.000000e-02 1.781290e+01 -3.141382e-04 -8.627618e-03 +1.500000e-02 2.270210e+01 -4.051626e-04 -1.314535e-02 +2.000000e-02 2.622771e+01 -4.721289e-04 -1.771828e-02 +2.500000e-02 2.919077e+01 -5.286368e-04 -2.228857e-02 +3.000000e-02 3.181791e+01 -5.787266e-04 -2.683945e-02 +3.500000e-02 3.419261e+01 -6.239460e-04 -3.136509e-02 +4.000000e-02 3.636012e+01 -6.651683e-04 -3.586259e-02 +4.500000e-02 3.835174e+01 -7.030100e-04 -4.033010e-02 +5.000000e-02 4.019226e+01 -7.379608e-04 -4.476628e-02 +5.500000e-02 4.190208e+01 -7.704247e-04 -4.917011e-02 +6.000000e-02 4.349890e+01 -8.007485e-04 -5.354079e-02 +6.500000e-02 4.499776e+01 -8.292262e-04 -5.787773e-02 +7.000000e-02 4.641178e+01 -8.561116e-04 -6.218047e-02 +7.500000e-02 4.775241e+01 -8.816251e-04 -6.644870e-02 +8.000000e-02 4.902935e+01 -9.059539e-04 -7.068220e-02 +8.500000e-02 5.025105e+01 -9.292600e-04 -7.488087e-02 +9.000000e-02 5.142510e+01 -9.516884e-04 -7.904466e-02 +9.500000e-02 5.255772e+01 -9.733577e-04 -8.317360e-02 +1.000000e-01 5.365457e+01 -9.943763e-04 -8.726777e-02 +volume fraction= 0.307876 +fiber_centers_YZ= (0.016337,0.022780) (0.007951,0.022728) (0.002304,0.035220) (0.006616,0.011631) (0.014532,0.035992) (0.017146,0.044264) (0.000422,0.018359) (0.001949,0.045031) (0.020109,0.010016) (0.013342,0.004318) (0.041337,0.022780) (0.032951,0.022728) (0.027304,0.035220) (0.031616,0.011631) (0.039532,0.035992) (0.042146,0.044264) (0.025422,0.018359) (0.026949,0.045031) (0.045109,0.010016) (0.038342,0.004318) (0.052304,0.035220) (0.050422,0.018359) (0.051949,0.045031) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.3079_3_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.3079_3_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..f87d1d4b89cc084d51c229e16f80424468ec88ab --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.3079_3_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.101029e+02 -1.951287e-03 -1.951858e-03 +1.000000e-02 2.200625e+02 -3.888495e-03 -3.889394e-03 +1.500000e-02 3.297353e+02 -5.816219e-03 -5.817614e-03 +2.000000e-02 4.386368e+02 -7.750345e-03 -7.751899e-03 +2.500000e-02 5.467435e+02 -9.692892e-03 -9.691812e-03 +3.000000e-02 6.544842e+02 -1.163053e-02 -1.162484e-02 +3.500000e-02 7.620455e+02 -1.355696e-02 -1.354566e-02 +4.000000e-02 8.694640e+02 -1.547114e-02 -1.545350e-02 +4.500000e-02 9.767481e+02 -1.737293e-02 -1.734830e-02 +5.000000e-02 1.083901e+03 -1.926238e-02 -1.923013e-02 +5.500000e-02 1.190926e+03 -2.113945e-02 -2.109900e-02 +6.000000e-02 1.297821e+03 -2.300444e-02 -2.295523e-02 +6.500000e-02 1.404591e+03 -2.485732e-02 -2.479883e-02 +7.000000e-02 1.511236e+03 -2.669820e-02 -2.662989e-02 +7.500000e-02 1.617757e+03 -2.852716e-02 -2.844854e-02 +8.000000e-02 1.724157e+03 -3.034430e-02 -3.025488e-02 +8.500000e-02 1.830436e+03 -3.214972e-02 -3.204902e-02 +9.000000e-02 1.936596e+03 -3.394351e-02 -3.383107e-02 +9.500000e-02 2.042637e+03 -3.572579e-02 -3.560114e-02 +1.000000e-01 2.148560e+03 -3.749664e-02 -3.735934e-02 +volume fraction= 0.307876 +fiber_centers_YZ= (0.009984,0.039865) (0.006733,0.022544) (0.011053,0.015566) (0.017331,0.026268) (0.018492,0.008547) (0.000552,0.030735) (0.001383,0.006344) (0.020204,0.036382) (0.002124,0.044643) (0.003065,0.014171) (0.034984,0.039865) (0.031733,0.022544) (0.036053,0.015566) (0.042331,0.026268) (0.043492,0.008547) (0.025552,0.030735) (0.026383,0.006344) (0.045204,0.036382) (0.027124,0.044643) (0.028065,0.014171) (0.050552,0.030735) (0.051383,0.006344) (0.052124,0.044643) (0.053065,0.014171) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.3079_3_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.3079_3_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..5cabea478fc31c7606b9a853016c9e6c33525b4e --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.3079_3_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 4.669762e+00 +1.000000e-02 8.297181e+00 +1.500000e-02 1.041623e+01 +2.000000e-02 1.180201e+01 +2.500000e-02 1.292209e+01 +3.000000e-02 1.390235e+01 +3.500000e-02 1.477878e+01 +4.000000e-02 1.556975e+01 +4.500000e-02 1.628852e+01 +5.000000e-02 1.694584e+01 +5.500000e-02 1.755078e+01 +6.000000e-02 1.811108e+01 +6.500000e-02 1.863340e+01 +7.000000e-02 1.912345e+01 +7.500000e-02 1.958614e+01 +8.000000e-02 2.002573e+01 +8.500000e-02 2.044592e+01 +9.000000e-02 2.084995e+01 +9.500000e-02 2.124065e+01 +1.000000e-01 2.162051e+01 +volume fraction= 0.307876 +fiber_centers_YZ= (0.009984,0.039865) (0.006733,0.022544) (0.011053,0.015566) (0.017331,0.026268) (0.018492,0.008547) (0.000552,0.030735) (0.001383,0.006344) (0.020204,0.036382) (0.002124,0.044643) (0.003065,0.014171) (0.034984,0.039865) (0.031733,0.022544) (0.036053,0.015566) (0.042331,0.026268) (0.043492,0.008547) (0.025552,0.030735) (0.026383,0.006344) (0.045204,0.036382) (0.027124,0.044643) (0.028065,0.014171) (0.050552,0.030735) (0.051383,0.006344) (0.052124,0.044643) (0.053065,0.014171) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.3079_3_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.3079_3_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..2582e7a66f34ce81fe361a85a0ca3d22ece659d7 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.3079_3_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 8.934476e+00 -1.584785e-04 -4.326183e-03 +1.000000e-02 1.647525e+01 -2.927454e-04 -8.707093e-03 +1.500000e-02 2.091681e+01 -3.752231e-04 -1.325832e-02 +2.000000e-02 2.397877e+01 -4.338537e-04 -1.786255e-02 +2.500000e-02 2.650361e+01 -4.823625e-04 -2.246216e-02 +3.000000e-02 2.872453e+01 -5.247632e-04 -2.704064e-02 +3.500000e-02 3.071919e+01 -5.625288e-04 -3.159247e-02 +4.000000e-02 3.252644e+01 -5.964690e-04 -3.611500e-02 +4.500000e-02 3.417308e+01 -6.271631e-04 -4.060654e-02 +5.000000e-02 3.568066e+01 -6.550773e-04 -4.506583e-02 +5.500000e-02 3.706788e+01 -6.806096e-04 -4.949187e-02 +6.000000e-02 3.835131e+01 -7.041071e-04 -5.388387e-02 +6.500000e-02 3.954507e+01 -7.258639e-04 -5.824123e-02 +7.000000e-02 4.066222e+01 -7.461452e-04 -6.256346e-02 +7.500000e-02 4.171401e+01 -7.651802e-04 -6.685019e-02 +8.000000e-02 4.271069e+01 -7.831738e-04 -7.110117e-02 +8.500000e-02 4.366298e+01 -8.003343e-04 -7.531666e-02 +9.000000e-02 4.457478e+01 -8.167485e-04 -7.949571e-02 +9.500000e-02 4.545518e+01 -8.325927e-04 -8.363871e-02 +1.000000e-01 4.631004e+01 -8.479825e-04 -8.774573e-02 +volume fraction= 0.307876 +fiber_centers_YZ= (0.009984,0.039865) (0.006733,0.022544) (0.011053,0.015566) (0.017331,0.026268) (0.018492,0.008547) (0.000552,0.030735) (0.001383,0.006344) (0.020204,0.036382) (0.002124,0.044643) (0.003065,0.014171) (0.034984,0.039865) (0.031733,0.022544) (0.036053,0.015566) (0.042331,0.026268) (0.043492,0.008547) (0.025552,0.030735) (0.026383,0.006344) (0.045204,0.036382) (0.027124,0.044643) (0.028065,0.014171) (0.050552,0.030735) (0.051383,0.006344) (0.052124,0.044643) (0.053065,0.014171) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.3079_4_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.3079_4_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..bb3403752a07f10157ee21362ef6a8231eb17a29 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.3079_4_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.100874e+02 -1.948498e-03 -1.959316e-03 +1.000000e-02 2.200332e+02 -3.882812e-03 -3.904342e-03 +1.500000e-02 3.296967e+02 -5.807533e-03 -5.839634e-03 +2.000000e-02 4.385940e+02 -7.737958e-03 -7.780505e-03 +2.500000e-02 5.466944e+02 -9.675338e-03 -9.728279e-03 +3.000000e-02 6.544338e+02 -1.160653e-02 -1.166972e-02 +3.500000e-02 7.619931e+02 -1.352617e-02 -1.359943e-02 +4.000000e-02 8.694107e+02 -1.543324e-02 -1.551637e-02 +4.500000e-02 9.766950e+02 -1.732763e-02 -1.742045e-02 +5.000000e-02 1.083849e+03 -1.920940e-02 -1.931175e-02 +5.500000e-02 1.190874e+03 -2.107866e-02 -2.119035e-02 +6.000000e-02 1.297774e+03 -2.293543e-02 -2.305628e-02 +6.500000e-02 1.404547e+03 -2.477995e-02 -2.490980e-02 +7.000000e-02 1.511196e+03 -2.661226e-02 -2.675093e-02 +7.500000e-02 1.617723e+03 -2.843245e-02 -2.857978e-02 +8.000000e-02 1.724128e+03 -3.024064e-02 -3.039646e-02 +8.500000e-02 1.830413e+03 -3.203693e-02 -3.220107e-02 +9.000000e-02 1.936579e+03 -3.382143e-02 -3.399373e-02 +9.500000e-02 2.042628e+03 -3.559424e-02 -3.577452e-02 +1.000000e-01 2.148559e+03 -3.735546e-02 -3.754358e-02 +volume fraction= 0.307876 +fiber_centers_YZ= (0.020041,0.036445) (0.012495,0.012588) (0.006335,0.004659) (0.010427,0.038324) (0.013469,0.024858) (0.016024,0.045798) (0.001736,0.015422) (0.002055,0.027411) (0.000586,0.043396) (0.020435,0.005766) (0.045041,0.036445) (0.037495,0.012588) (0.031335,0.004659) (0.035427,0.038324) (0.038469,0.024858) (0.041024,0.045798) (0.026736,0.015422) (0.027055,0.027411) (0.025586,0.043396) (0.045435,0.005766) (0.051736,0.015422) (0.052055,0.027411) (0.050586,0.043396) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.3079_4_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.3079_4_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..9895f75e45299596c36e0e4fe417c8b018edb9b6 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.3079_4_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 4.537633e+00 +1.000000e-02 8.205787e+00 +1.500000e-02 1.026089e+01 +2.000000e-02 1.163172e+01 +2.500000e-02 1.275670e+01 +3.000000e-02 1.374471e+01 +3.500000e-02 1.462913e+01 +4.000000e-02 1.542708e+01 +4.500000e-02 1.615085e+01 +5.000000e-02 1.681047e+01 +5.500000e-02 1.741456e+01 +6.000000e-02 1.797061e+01 +6.500000e-02 1.848522e+01 +7.000000e-02 1.896176e+01 +7.500000e-02 1.941024e+01 +8.000000e-02 1.983287e+01 +8.500000e-02 2.023371e+01 +9.000000e-02 2.061631e+01 +9.500000e-02 2.098388e+01 +1.000000e-01 2.133928e+01 +volume fraction= 0.307876 +fiber_centers_YZ= (0.020041,0.036445) (0.012495,0.012588) (0.006335,0.004659) (0.010427,0.038324) (0.013469,0.024858) (0.016024,0.045798) (0.001736,0.015422) (0.002055,0.027411) (0.000586,0.043396) (0.020435,0.005766) (0.045041,0.036445) (0.037495,0.012588) (0.031335,0.004659) (0.035427,0.038324) (0.038469,0.024858) (0.041024,0.045798) (0.026736,0.015422) (0.027055,0.027411) (0.025586,0.043396) (0.045435,0.005766) (0.051736,0.015422) (0.052055,0.027411) (0.050586,0.043396) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.3079_4_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.3079_4_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..cd9b48bb08eb449b2a395a6fb61e090ae8d2b34b --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.3079_4_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 8.786949e+00 -1.556929e-04 -4.337689e-03 +1.000000e-02 1.622256e+01 -2.889751e-04 -8.720013e-03 +1.500000e-02 2.057634e+01 -3.713590e-04 -1.326758e-02 +2.000000e-02 2.351027e+01 -4.284995e-04 -1.787525e-02 +2.500000e-02 2.591066e+01 -4.752641e-04 -2.247904e-02 +3.000000e-02 2.801862e+01 -5.160750e-04 -2.706059e-02 +3.500000e-02 2.990893e+01 -5.524314e-04 -3.161423e-02 +4.000000e-02 3.161879e+01 -5.851251e-04 -3.613742e-02 +4.500000e-02 3.317342e+01 -6.147022e-04 -4.062862e-02 +5.000000e-02 3.459319e+01 -6.415992e-04 -4.508671e-02 +5.500000e-02 3.589435e+01 -6.661381e-04 -4.951046e-02 +6.000000e-02 3.709409e+01 -6.887197e-04 -5.390001e-02 +6.500000e-02 3.820410e+01 -7.095625e-04 -5.825454e-02 +7.000000e-02 3.923604e+01 -7.289022e-04 -6.257368e-02 +7.500000e-02 4.020021e+01 -7.469457e-04 -6.685720e-02 +8.000000e-02 4.110586e+01 -7.638760e-04 -7.110493e-02 +8.500000e-02 4.196155e+01 -7.798608e-04 -7.531676e-02 +9.000000e-02 4.277467e+01 -7.950456e-04 -7.949267e-02 +9.500000e-02 4.355171e+01 -8.095570e-04 -8.363272e-02 +1.000000e-01 4.429834e+01 -8.235051e-04 -8.773699e-02 +volume fraction= 0.307876 +fiber_centers_YZ= (0.020041,0.036445) (0.012495,0.012588) (0.006335,0.004659) (0.010427,0.038324) (0.013469,0.024858) (0.016024,0.045798) (0.001736,0.015422) (0.002055,0.027411) (0.000586,0.043396) (0.020435,0.005766) (0.045041,0.036445) (0.037495,0.012588) (0.031335,0.004659) (0.035427,0.038324) (0.038469,0.024858) (0.041024,0.045798) (0.026736,0.015422) (0.027055,0.027411) (0.025586,0.043396) (0.045435,0.005766) (0.051736,0.015422) (0.052055,0.027411) (0.050586,0.043396) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.3079_5_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.3079_5_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..6a0e49242de54c84b623cc3fee627db7afb831f5 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.3079_5_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.101110e+02 -1.870571e-03 -2.033856e-03 +1.000000e-02 2.200792e+02 -3.727251e-03 -4.053168e-03 +1.500000e-02 3.297621e+02 -5.574882e-03 -6.062527e-03 +2.000000e-02 4.386754e+02 -7.425729e-03 -8.080708e-03 +2.500000e-02 5.467936e+02 -9.276523e-03 -1.011287e-02 +3.000000e-02 6.545462e+02 -1.111773e-02 -1.214276e-02 +3.500000e-02 7.621199e+02 -1.294585e-02 -1.416227e-02 +4.000000e-02 8.695510e+02 -1.476058e-02 -1.616990e-02 +4.500000e-02 9.768480e+02 -1.656199e-02 -1.816538e-02 +5.000000e-02 1.084014e+03 -1.835022e-02 -2.014869e-02 +5.500000e-02 1.191050e+03 -2.012542e-02 -2.211987e-02 +6.000000e-02 1.297961e+03 -2.188760e-02 -2.407891e-02 +6.500000e-02 1.404744e+03 -2.363718e-02 -2.602596e-02 +7.000000e-02 1.511403e+03 -2.537418e-02 -2.796103e-02 +7.500000e-02 1.617939e+03 -2.709873e-02 -2.988419e-02 +8.000000e-02 1.724353e+03 -2.881096e-02 -3.179551e-02 +8.500000e-02 1.830646e+03 -3.051102e-02 -3.369506e-02 +9.000000e-02 1.936820e+03 -3.219902e-02 -3.558292e-02 +9.500000e-02 2.042876e+03 -3.387511e-02 -3.745917e-02 +1.000000e-01 2.148813e+03 -3.553941e-02 -3.932390e-02 +volume fraction= 0.307876 +fiber_centers_YZ= (0.015650,0.027125) (0.001241,0.019207) (0.007120,0.033799) (0.017140,0.039113) (0.017126,0.014906) (0.012919,0.006653) (0.000379,0.042142) (0.009638,0.044816) (0.001717,0.005175) (0.008730,0.016140) (0.040650,0.027125) (0.026241,0.019207) (0.032120,0.033799) (0.042140,0.039113) (0.042126,0.014906) (0.037919,0.006653) (0.025379,0.042142) (0.034638,0.044816) (0.026717,0.005175) (0.033730,0.016140) (0.051241,0.019207) (0.050379,0.042142) (0.051717,0.005175) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.3079_5_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.3079_5_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..2e08444bf7380b6af76430f565e369cf29ac5fca --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.3079_5_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 4.780368e+00 +1.000000e-02 8.326302e+00 +1.500000e-02 1.042725e+01 +2.000000e-02 1.183670e+01 +2.500000e-02 1.297493e+01 +3.000000e-02 1.396316e+01 +3.500000e-02 1.484203e+01 +4.000000e-02 1.563290e+01 +4.500000e-02 1.635064e+01 +5.000000e-02 1.700694e+01 +5.500000e-02 1.761141e+01 +6.000000e-02 1.817499e+01 +6.500000e-02 1.869889e+01 +7.000000e-02 1.919170e+01 +7.500000e-02 1.965845e+01 +8.000000e-02 2.010351e+01 +8.500000e-02 2.053072e+01 +9.000000e-02 2.094344e+01 +9.500000e-02 2.134462e+01 +1.000000e-01 2.173686e+01 +volume fraction= 0.307876 +fiber_centers_YZ= (0.015650,0.027125) (0.001241,0.019207) (0.007120,0.033799) (0.017140,0.039113) (0.017126,0.014906) (0.012919,0.006653) (0.000379,0.042142) (0.009638,0.044816) (0.001717,0.005175) (0.008730,0.016140) (0.040650,0.027125) (0.026241,0.019207) (0.032120,0.033799) (0.042140,0.039113) (0.042126,0.014906) (0.037919,0.006653) (0.025379,0.042142) (0.034638,0.044816) (0.026717,0.005175) (0.033730,0.016140) (0.051241,0.019207) (0.050379,0.042142) (0.051717,0.005175) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.3079_5_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.3079_5_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..147f29f45c71fca2e3acb8ffd10669dafba22cb4 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.3079_5_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 9.679222e+00 -1.648360e-04 -4.315769e-03 +1.000000e-02 1.745644e+01 -3.001636e-04 -8.700825e-03 +1.500000e-02 2.226780e+01 -3.868171e-04 -1.324046e-02 +2.000000e-02 2.570020e+01 -4.498000e-04 -1.783244e-02 +2.500000e-02 2.857213e+01 -5.027209e-04 -2.241913e-02 +3.000000e-02 3.112975e+01 -5.497486e-04 -2.698345e-02 +3.500000e-02 3.345867e+01 -5.924227e-04 -3.151971e-02 +4.000000e-02 3.560229e+01 -6.315780e-04 -3.602516e-02 +4.500000e-02 3.759073e+01 -6.678094e-04 -4.049808e-02 +5.000000e-02 3.944770e+01 -7.015875e-04 -4.493718e-02 +5.500000e-02 4.119298e+01 -7.333034e-04 -4.934148e-02 +6.000000e-02 4.284340e+01 -7.632875e-04 -5.371023e-02 +6.500000e-02 4.441367e+01 -7.918261e-04 -5.804282e-02 +7.000000e-02 4.591632e+01 -8.191616e-04 -6.233878e-02 +7.500000e-02 4.736552e+01 -8.455516e-04 -6.659829e-02 +8.000000e-02 4.876420e+01 -8.710835e-04 -7.082006e-02 +8.500000e-02 5.012420e+01 -8.959714e-04 -7.500442e-02 +9.000000e-02 5.145237e+01 -9.203482e-04 -7.915130e-02 +9.500000e-02 5.275471e+01 -9.443286e-04 -8.326066e-02 +1.000000e-01 5.403648e+01 -9.680146e-04 -8.733253e-02 +volume fraction= 0.307876 +fiber_centers_YZ= (0.015650,0.027125) (0.001241,0.019207) (0.007120,0.033799) (0.017140,0.039113) (0.017126,0.014906) (0.012919,0.006653) (0.000379,0.042142) (0.009638,0.044816) (0.001717,0.005175) (0.008730,0.016140) (0.040650,0.027125) (0.026241,0.019207) (0.032120,0.033799) (0.042140,0.039113) (0.042126,0.014906) (0.037919,0.006653) (0.025379,0.042142) (0.034638,0.044816) (0.026717,0.005175) (0.033730,0.016140) (0.051241,0.019207) (0.050379,0.042142) (0.051717,0.005175) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4002_1_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4002_1_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..eb9b9f218eb59cea8a06eecbaa1acb5e3b4de624 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4002_1_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.420615e+02 -1.800481e-03 -1.837363e-03 +1.000000e-02 2.838673e+02 -3.587926e-03 -3.661560e-03 +1.500000e-02 4.252912e+02 -5.366891e-03 -5.477005e-03 +2.000000e-02 5.659142e+02 -7.151929e-03 -7.297675e-03 +2.500000e-02 7.057318e+02 -8.942165e-03 -9.124491e-03 +3.000000e-02 8.451134e+02 -1.072632e-02 -1.094634e-02 +3.500000e-02 9.842215e+02 -1.249945e-02 -1.275746e-02 +4.000000e-02 1.123087e+03 -1.426091e-02 -1.455696e-02 +4.500000e-02 1.261719e+03 -1.601066e-02 -1.634470e-02 +5.000000e-02 1.400122e+03 -1.774862e-02 -1.812055e-02 +5.500000e-02 1.538294e+03 -1.947512e-02 -1.988491e-02 +6.000000e-02 1.676240e+03 -2.119013e-02 -2.163771e-02 +6.500000e-02 1.813962e+03 -2.289374e-02 -2.337904e-02 +7.000000e-02 1.951461e+03 -2.458603e-02 -2.510898e-02 +7.500000e-02 2.088739e+03 -2.626710e-02 -2.682763e-02 +8.000000e-02 2.225798e+03 -2.793704e-02 -2.853509e-02 +8.500000e-02 2.362639e+03 -2.959595e-02 -3.023145e-02 +9.000000e-02 2.499265e+03 -3.124393e-02 -3.191680e-02 +9.500000e-02 2.635675e+03 -3.288106e-02 -3.359123e-02 +1.000000e-01 2.771873e+03 -3.450745e-02 -3.525486e-02 +volume fraction= 0.400239 +fiber_centers_YZ= (0.014675,0.045628) (0.007597,0.007422) (0.016170,0.021789) (0.008540,0.034435) (0.001137,0.023395) (0.001232,0.038991) (0.001269,0.014104) (0.016685,0.011453) (0.015649,0.037913) (0.008120,0.018566) (0.019946,0.029602) (0.008460,0.026394) (0.000093,0.004386) (0.039675,0.045628) (0.032597,0.007422) (0.041170,0.021789) (0.033540,0.034435) (0.026137,0.023395) (0.026232,0.038991) (0.026269,0.014104) (0.041685,0.011453) (0.040649,0.037913) (0.033120,0.018566) (0.044946,0.029602) (0.033460,0.026394) (0.025093,0.004386) (0.051137,0.023395) (0.051232,0.038991) (0.051269,0.014104) (0.050093,0.004386) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4002_1_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4002_1_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..cde001206c607f0975164b16b1c6b9a02b0bfb88 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4002_1_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 5.814599e+00 +1.000000e-02 9.552256e+00 +1.500000e-02 1.168451e+01 +2.000000e-02 1.320472e+01 +2.500000e-02 1.445431e+01 +3.000000e-02 1.553100e+01 +3.500000e-02 1.647574e+01 +4.000000e-02 1.731459e+01 +4.500000e-02 1.806494e+01 +5.000000e-02 1.874707e+01 +5.500000e-02 1.937213e+01 +6.000000e-02 1.995089e+01 +6.500000e-02 2.049245e+01 +7.000000e-02 2.100449e+01 +7.500000e-02 2.149348e+01 +8.000000e-02 2.196919e+01 +8.500000e-02 2.242779e+01 +9.000000e-02 2.287724e+01 +9.500000e-02 2.332102e+01 +1.000000e-01 2.376198e+01 +volume fraction= 0.400239 +fiber_centers_YZ= (0.014675,0.045628) (0.007597,0.007422) (0.016170,0.021789) (0.008540,0.034435) (0.001137,0.023395) (0.001232,0.038991) (0.001269,0.014104) (0.016685,0.011453) (0.015649,0.037913) (0.008120,0.018566) (0.019946,0.029602) (0.008460,0.026394) (0.000093,0.004386) (0.039675,0.045628) (0.032597,0.007422) (0.041170,0.021789) (0.033540,0.034435) (0.026137,0.023395) (0.026232,0.038991) (0.026269,0.014104) (0.041685,0.011453) (0.040649,0.037913) (0.033120,0.018566) (0.044946,0.029602) (0.033460,0.026394) (0.025093,0.004386) (0.051137,0.023395) (0.051232,0.038991) (0.051269,0.014104) (0.050093,0.004386) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4002_1_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4002_1_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..c4c0072357552487bfb348b6c6d3ffdc97769631 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4002_1_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.303976e+01 -1.658868e-04 -4.185210e-03 +1.000000e-02 2.235471e+01 -2.877758e-04 -8.532718e-03 +1.500000e-02 2.816862e+01 -3.667710e-04 -1.304400e-02 +2.000000e-02 3.261543e+01 -4.281074e-04 -1.759650e-02 +2.500000e-02 3.641955e+01 -4.807853e-04 -2.214546e-02 +3.000000e-02 3.980336e+01 -5.276990e-04 -2.667714e-02 +3.500000e-02 4.286856e+01 -5.702331e-04 -3.118553e-02 +4.000000e-02 4.568184e+01 -6.093166e-04 -3.566688e-02 +4.500000e-02 4.829340e+01 -6.456525e-04 -4.011852e-02 +5.000000e-02 5.074469e+01 -6.798209e-04 -4.453834e-02 +5.500000e-02 5.306870e+01 -7.122836e-04 -4.892475e-02 +6.000000e-02 5.529291e+01 -7.434233e-04 -5.327655e-02 +6.500000e-02 5.743977e+01 -7.735536e-04 -5.759283e-02 +7.000000e-02 5.952730e+01 -8.029267e-04 -6.187297e-02 +7.500000e-02 6.157114e+01 -8.317625e-04 -6.611648e-02 +8.000000e-02 6.358393e+01 -8.602388e-04 -7.032307e-02 +8.500000e-02 6.557664e+01 -8.885104e-04 -7.449256e-02 +9.000000e-02 6.755768e+01 -9.166974e-04 -7.862491e-02 +9.500000e-02 6.953378e+01 -9.448973e-04 -8.272018e-02 +1.000000e-01 7.151090e+01 -9.731948e-04 -8.677851e-02 +volume fraction= 0.400239 +fiber_centers_YZ= (0.014675,0.045628) (0.007597,0.007422) (0.016170,0.021789) (0.008540,0.034435) (0.001137,0.023395) (0.001232,0.038991) (0.001269,0.014104) (0.016685,0.011453) (0.015649,0.037913) (0.008120,0.018566) (0.019946,0.029602) (0.008460,0.026394) (0.000093,0.004386) (0.039675,0.045628) (0.032597,0.007422) (0.041170,0.021789) (0.033540,0.034435) (0.026137,0.023395) (0.026232,0.038991) (0.026269,0.014104) (0.041685,0.011453) (0.040649,0.037913) (0.033120,0.018566) (0.044946,0.029602) (0.033460,0.026394) (0.025093,0.004386) (0.051137,0.023395) (0.051232,0.038991) (0.051269,0.014104) (0.050093,0.004386) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4002_2_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4002_2_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..1e7199dffafeacc99f8b14aeb456b16f960cb55a --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4002_2_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.420744e+02 -1.854691e-03 -1.777969e-03 +1.000000e-02 2.838910e+02 -3.696423e-03 -3.542764e-03 +1.500000e-02 4.253221e+02 -5.529685e-03 -5.299201e-03 +2.000000e-02 5.659504e+02 -7.373108e-03 -7.057303e-03 +2.500000e-02 7.057680e+02 -9.230483e-03 -8.813969e-03 +3.000000e-02 8.451515e+02 -1.108585e-02 -1.056111e-02 +3.500000e-02 9.842567e+02 -1.293243e-02 -1.229585e-02 +4.000000e-02 1.123118e+03 -1.476880e-02 -1.401769e-02 +4.500000e-02 1.261743e+03 -1.659471e-02 -1.572666e-02 +5.000000e-02 1.400136e+03 -1.841010e-02 -1.742289e-02 +5.500000e-02 1.538300e+03 -2.021496e-02 -1.910653e-02 +6.000000e-02 1.676235e+03 -2.200931e-02 -2.077773e-02 +6.500000e-02 1.813945e+03 -2.379316e-02 -2.243664e-02 +7.000000e-02 1.951431e+03 -2.556655e-02 -2.408340e-02 +7.500000e-02 2.088696e+03 -2.732951e-02 -2.571815e-02 +8.000000e-02 2.225741e+03 -2.908209e-02 -2.734103e-02 +8.500000e-02 2.362567e+03 -3.082433e-02 -2.895217e-02 +9.000000e-02 2.499177e+03 -3.255628e-02 -3.055171e-02 +9.500000e-02 2.635571e+03 -3.427801e-02 -3.213978e-02 +1.000000e-01 2.771751e+03 -3.598956e-02 -3.371649e-02 +volume fraction= 0.400239 +fiber_centers_YZ= (0.007855,0.006380) (0.009705,0.024289) (0.008790,0.033555) (0.001512,0.016982) (0.019675,0.045562) (0.017567,0.013986) (0.001419,0.041804) (0.000634,0.027270) (0.016210,0.029708) (0.019224,0.006173) (0.016788,0.037823) (0.009123,0.042793) (0.017184,0.022054) (0.032855,0.006380) (0.034705,0.024289) (0.033790,0.033555) (0.026512,0.016982) (0.044675,0.045562) (0.042567,0.013986) (0.026419,0.041804) (0.025634,0.027270) (0.041210,0.029708) (0.044224,0.006173) (0.041788,0.037823) (0.034123,0.042793) (0.042184,0.022054) (0.051512,0.016982) (0.051419,0.041804) (0.050634,0.027270) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4002_2_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4002_2_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..d47d8f39b09ab0fc336189d8bfacc8bab75ce607 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4002_2_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 5.869444e+00 +1.000000e-02 9.519414e+00 +1.500000e-02 1.163589e+01 +2.000000e-02 1.313852e+01 +2.500000e-02 1.437800e+01 +3.000000e-02 1.545220e+01 +3.500000e-02 1.640158e+01 +4.000000e-02 1.725150e+01 +4.500000e-02 1.802066e+01 +5.000000e-02 1.872370e+01 +5.500000e-02 1.937238e+01 +6.000000e-02 1.997634e+01 +6.500000e-02 2.054361e+01 +7.000000e-02 2.108096e+01 +7.500000e-02 2.159414e+01 +8.000000e-02 2.208807e+01 +8.500000e-02 2.256699e+01 +9.000000e-02 2.303462e+01 +9.500000e-02 2.349420e+01 +1.000000e-01 2.394859e+01 +volume fraction= 0.400239 +fiber_centers_YZ= (0.007855,0.006380) (0.009705,0.024289) (0.008790,0.033555) (0.001512,0.016982) (0.019675,0.045562) (0.017567,0.013986) (0.001419,0.041804) (0.000634,0.027270) (0.016210,0.029708) (0.019224,0.006173) (0.016788,0.037823) (0.009123,0.042793) (0.017184,0.022054) (0.032855,0.006380) (0.034705,0.024289) (0.033790,0.033555) (0.026512,0.016982) (0.044675,0.045562) (0.042567,0.013986) (0.026419,0.041804) (0.025634,0.027270) (0.041210,0.029708) (0.044224,0.006173) (0.041788,0.037823) (0.034123,0.042793) (0.042184,0.022054) (0.051512,0.016982) (0.051419,0.041804) (0.050634,0.027270) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4002_2_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4002_2_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..65a114e2507df81b69f4a7751f18da57d434964d --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4002_2_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.586387e+01 -2.081353e-04 -3.965890e-03 +1.000000e-02 2.720780e+01 -3.619341e-04 -8.150603e-03 +1.500000e-02 3.495017e+01 -4.722239e-04 -1.250519e-02 +2.000000e-02 4.114564e+01 -5.628869e-04 -1.691287e-02 +2.500000e-02 4.652845e+01 -6.427544e-04 -2.132935e-02 +3.000000e-02 5.134272e+01 -7.149617e-04 -2.573919e-02 +3.500000e-02 5.571180e+01 -7.811659e-04 -3.013457e-02 +4.000000e-02 5.971752e+01 -8.424921e-04 -3.451037e-02 +4.500000e-02 6.342128e+01 -8.997890e-04 -3.886282e-02 +5.000000e-02 6.687219e+01 -9.537325e-04 -4.318897e-02 +5.500000e-02 7.010825e+01 -1.004843e-03 -4.748658e-02 +6.000000e-02 7.315932e+01 -1.053522e-03 -5.175399e-02 +6.500000e-02 7.604895e+01 -1.100071e-03 -5.598995e-02 +7.000000e-02 7.879535e+01 -1.144716e-03 -6.019353e-02 +7.500000e-02 8.141169e+01 -1.187606e-03 -6.436414e-02 +8.000000e-02 8.390819e+01 -1.228846e-03 -6.850133e-02 +8.500000e-02 8.629322e+01 -1.268503e-03 -7.260478e-02 +9.000000e-02 8.857273e+01 -1.306614e-03 -7.667429e-02 +9.500000e-02 9.075131e+01 -1.343190e-03 -8.070970e-02 +1.000000e-01 9.283390e+01 -1.378249e-03 -8.471083e-02 +volume fraction= 0.400239 +fiber_centers_YZ= (0.007855,0.006380) (0.009705,0.024289) (0.008790,0.033555) (0.001512,0.016982) (0.019675,0.045562) (0.017567,0.013986) (0.001419,0.041804) (0.000634,0.027270) (0.016210,0.029708) (0.019224,0.006173) (0.016788,0.037823) (0.009123,0.042793) (0.017184,0.022054) (0.032855,0.006380) (0.034705,0.024289) (0.033790,0.033555) (0.026512,0.016982) (0.044675,0.045562) (0.042567,0.013986) (0.026419,0.041804) (0.025634,0.027270) (0.041210,0.029708) (0.044224,0.006173) (0.041788,0.037823) (0.034123,0.042793) (0.042184,0.022054) (0.051512,0.016982) (0.051419,0.041804) (0.050634,0.027270) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4002_3_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4002_3_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..cd655dbc05632c64da0625078b83033549f6b55d --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4002_3_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.420619e+02 -1.757627e-03 -1.879577e-03 +1.000000e-02 2.838678e+02 -3.502464e-03 -3.745759e-03 +1.500000e-02 4.252911e+02 -5.238905e-03 -5.603143e-03 +2.000000e-02 5.659128e+02 -6.979204e-03 -7.467972e-03 +2.500000e-02 7.057268e+02 -8.721397e-03 -9.342890e-03 +3.000000e-02 8.451054e+02 -1.045598e-02 -1.121427e-02 +3.500000e-02 9.842101e+02 -1.217916e-02 -1.307535e-02 +4.000000e-02 1.123072e+03 -1.389054e-02 -1.492498e-02 +4.500000e-02 1.261700e+03 -1.559015e-02 -1.676293e-02 +5.000000e-02 1.400097e+03 -1.727806e-02 -1.858921e-02 +5.500000e-02 1.538267e+03 -1.895425e-02 -2.040371e-02 +6.000000e-02 1.676209e+03 -2.061913e-02 -2.220679e-02 +6.500000e-02 1.813926e+03 -2.227267e-02 -2.399834e-02 +7.000000e-02 1.951420e+03 -2.391497e-02 -2.577845e-02 +7.500000e-02 2.088694e+03 -2.554615e-02 -2.754719e-02 +8.000000e-02 2.225748e+03 -2.716631e-02 -2.930462e-02 +8.500000e-02 2.362585e+03 -2.877558e-02 -3.105083e-02 +9.000000e-02 2.499206e+03 -3.037404e-02 -3.278590e-02 +9.500000e-02 2.635613e+03 -3.196182e-02 -3.450991e-02 +1.000000e-01 2.771806e+03 -3.353902e-02 -3.622295e-02 +volume fraction= 0.400239 +fiber_centers_YZ= (0.005148,0.010435) (0.019786,0.029604) (0.002572,0.026901) (0.002872,0.042196) (0.010873,0.016845) (0.011824,0.038617) (0.018883,0.045562) (0.020522,0.008441) (0.000671,0.017078) (0.010062,0.025100) (0.005148,0.034299) (0.013589,0.004322) (0.016993,0.021628) (0.030148,0.010435) (0.044786,0.029604) (0.027572,0.026901) (0.027872,0.042196) (0.035873,0.016845) (0.036824,0.038617) (0.043883,0.045562) (0.045522,0.008441) (0.025671,0.017078) (0.035062,0.025100) (0.030148,0.034299) (0.038589,0.004322) (0.041993,0.021628) (0.052572,0.026901) (0.052872,0.042196) (0.050671,0.017078) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4002_3_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4002_3_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..60d977decdde5dfd79c352f0ede507f93f08a67a --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4002_3_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 6.064624e+00 +1.000000e-02 9.794481e+00 +1.500000e-02 1.201035e+01 +2.000000e-02 1.357096e+01 +2.500000e-02 1.484663e+01 +3.000000e-02 1.594823e+01 +3.500000e-02 1.692051e+01 +4.000000e-02 1.779098e+01 +4.500000e-02 1.857987e+01 +5.000000e-02 1.930296e+01 +5.500000e-02 1.997288e+01 +6.000000e-02 2.059985e+01 +6.500000e-02 2.119221e+01 +7.000000e-02 2.175683e+01 +7.500000e-02 2.229937e+01 +8.000000e-02 2.282456e+01 +8.500000e-02 2.333640e+01 +9.000000e-02 2.383829e+01 +9.500000e-02 2.433306e+01 +1.000000e-01 2.482319e+01 +volume fraction= 0.400239 +fiber_centers_YZ= (0.005148,0.010435) (0.019786,0.029604) (0.002572,0.026901) (0.002872,0.042196) (0.010873,0.016845) (0.011824,0.038617) (0.018883,0.045562) (0.020522,0.008441) (0.000671,0.017078) (0.010062,0.025100) (0.005148,0.034299) (0.013589,0.004322) (0.016993,0.021628) (0.030148,0.010435) (0.044786,0.029604) (0.027572,0.026901) (0.027872,0.042196) (0.035873,0.016845) (0.036824,0.038617) (0.043883,0.045562) (0.045522,0.008441) (0.025671,0.017078) (0.035062,0.025100) (0.030148,0.034299) (0.038589,0.004322) (0.041993,0.021628) (0.052572,0.026901) (0.052872,0.042196) (0.050671,0.017078) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4002_3_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4002_3_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..7274b8735227a1b1fd8d7bd25dbfc5ad61aff323 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4002_3_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.243185e+01 -1.542486e-04 -4.252553e-03 +1.000000e-02 2.157747e+01 -2.706556e-04 -8.634741e-03 +1.500000e-02 2.715253e+01 -3.445461e-04 -1.317521e-02 +2.000000e-02 3.139382e+01 -4.016313e-04 -1.775068e-02 +2.500000e-02 3.504047e+01 -4.508101e-04 -2.231787e-02 +3.000000e-02 3.829394e+01 -4.946867e-04 -2.686467e-02 +3.500000e-02 4.124364e+01 -5.344984e-04 -3.138584e-02 +4.000000e-02 4.394668e+01 -5.710540e-04 -3.587826e-02 +4.500000e-02 4.644664e+01 -6.049643e-04 -4.033977e-02 +5.000000e-02 4.877872e+01 -6.367185e-04 -4.476877e-02 +5.500000e-02 5.097183e+01 -6.667130e-04 -4.916406e-02 +6.000000e-02 5.305004e+01 -6.952755e-04 -5.352477e-02 +6.500000e-02 5.503373e+01 -7.226812e-04 -5.785021e-02 +7.000000e-02 5.693968e+01 -7.491545e-04 -6.213997e-02 +7.500000e-02 5.878208e+01 -7.748843e-04 -6.639374e-02 +8.000000e-02 6.057329e+01 -8.000337e-04 -7.061136e-02 +8.500000e-02 6.232319e+01 -8.247320e-04 -7.479277e-02 +9.000000e-02 6.403975e+01 -8.490821e-04 -7.893805e-02 +9.500000e-02 6.573004e+01 -8.731742e-04 -8.304734e-02 +1.000000e-01 6.740042e+01 -8.971077e-04 -8.712136e-02 +volume fraction= 0.400239 +fiber_centers_YZ= (0.005148,0.010435) (0.019786,0.029604) (0.002572,0.026901) (0.002872,0.042196) (0.010873,0.016845) (0.011824,0.038617) (0.018883,0.045562) (0.020522,0.008441) (0.000671,0.017078) (0.010062,0.025100) (0.005148,0.034299) (0.013589,0.004322) (0.016993,0.021628) (0.030148,0.010435) (0.044786,0.029604) (0.027572,0.026901) (0.027872,0.042196) (0.035873,0.016845) (0.036824,0.038617) (0.043883,0.045562) (0.045522,0.008441) (0.025671,0.017078) (0.035062,0.025100) (0.030148,0.034299) (0.038589,0.004322) (0.041993,0.021628) (0.052572,0.026901) (0.052872,0.042196) (0.050671,0.017078) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4002_4_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4002_4_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..0ab95fdb8407c15441c063ef23ca2c26cb368c27 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4002_4_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.420540e+02 -1.815467e-03 -1.823444e-03 +1.000000e-02 2.838528e+02 -3.617846e-03 -3.633760e-03 +1.500000e-02 4.252700e+02 -5.412258e-03 -5.434782e-03 +2.000000e-02 5.658867e+02 -7.213617e-03 -7.239941e-03 +2.500000e-02 7.056945e+02 -9.020756e-03 -9.051365e-03 +3.000000e-02 8.450718e+02 -1.082148e-02 -1.085730e-02 +3.500000e-02 9.841737e+02 -1.261130e-02 -1.265266e-02 +4.000000e-02 1.123034e+03 -1.438941e-02 -1.443644e-02 +4.500000e-02 1.261660e+03 -1.615572e-02 -1.620851e-02 +5.000000e-02 1.400056e+03 -1.791026e-02 -1.796895e-02 +5.500000e-02 1.538223e+03 -1.965313e-02 -1.971783e-02 +6.000000e-02 1.676164e+03 -2.138438e-02 -2.145526e-02 +6.500000e-02 1.813881e+03 -2.310410e-02 -2.318134e-02 +7.000000e-02 1.951376e+03 -2.481238e-02 -2.489616e-02 +7.500000e-02 2.088650e+03 -2.650928e-02 -2.659982e-02 +8.000000e-02 2.225707e+03 -2.819476e-02 -2.829233e-02 +8.500000e-02 2.362545e+03 -2.986919e-02 -2.997400e-02 +9.000000e-02 2.499167e+03 -3.153251e-02 -3.164483e-02 +9.500000e-02 2.635575e+03 -3.318481e-02 -3.330492e-02 +1.000000e-01 2.771770e+03 -3.482617e-02 -3.495437e-02 +volume fraction= 0.400239 +fiber_centers_YZ= (0.017293,0.008593) (0.006420,0.032246) (0.010255,0.022098) (0.002714,0.043964) (0.004198,0.012342) (0.017604,0.029968) (0.012080,0.045485) (0.008875,0.004920) (0.017081,0.038838) (0.001381,0.020838) (0.000033,0.004238) (0.019686,0.016441) (0.000052,0.036596) (0.042293,0.008593) (0.031420,0.032246) (0.035255,0.022098) (0.027714,0.043964) (0.029198,0.012342) (0.042604,0.029968) (0.037080,0.045485) (0.033875,0.004920) (0.042081,0.038838) (0.026381,0.020838) (0.025033,0.004238) (0.044686,0.016441) (0.025052,0.036596) (0.052714,0.043964) (0.051381,0.020838) (0.050033,0.004238) (0.050052,0.036596) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4002_4_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4002_4_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..aeb1ddd7de323627ddae6b45665f241ca45eb6f6 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4002_4_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 5.739527e+00 +1.000000e-02 9.553136e+00 +1.500000e-02 1.169682e+01 +2.000000e-02 1.320880e+01 +2.500000e-02 1.445811e+01 +3.000000e-02 1.554035e+01 +3.500000e-02 1.649440e+01 +4.000000e-02 1.734489e+01 +4.500000e-02 1.811055e+01 +5.000000e-02 1.880650e+01 +5.500000e-02 1.944516e+01 +6.000000e-02 2.003687e+01 +6.500000e-02 2.059022e+01 +7.000000e-02 2.111573e+01 +7.500000e-02 2.161279e+01 +8.000000e-02 2.209006e+01 +8.500000e-02 2.255191e+01 +9.000000e-02 2.300214e+01 +9.500000e-02 2.344403e+01 +1.000000e-01 2.388042e+01 +volume fraction= 0.400239 +fiber_centers_YZ= (0.017293,0.008593) (0.006420,0.032246) (0.010255,0.022098) (0.002714,0.043964) (0.004198,0.012342) (0.017604,0.029968) (0.012080,0.045485) (0.008875,0.004920) (0.017081,0.038838) (0.001381,0.020838) (0.000033,0.004238) (0.019686,0.016441) (0.000052,0.036596) (0.042293,0.008593) (0.031420,0.032246) (0.035255,0.022098) (0.027714,0.043964) (0.029198,0.012342) (0.042604,0.029968) (0.037080,0.045485) (0.033875,0.004920) (0.042081,0.038838) (0.026381,0.020838) (0.025033,0.004238) (0.044686,0.016441) (0.025052,0.036596) (0.052714,0.043964) (0.051381,0.020838) (0.050033,0.004238) (0.050052,0.036596) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4002_4_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4002_4_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..8cf31dd482f82559a1c90bdb6ebf0d0fcda2b1fb --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4002_4_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.216786e+01 -1.559009e-04 -4.228794e-03 +1.000000e-02 2.127206e+01 -2.746746e-04 -8.590501e-03 +1.500000e-02 2.668107e+01 -3.483991e-04 -1.312678e-02 +2.000000e-02 3.073544e+01 -4.046097e-04 -1.770264e-02 +2.500000e-02 3.422437e+01 -4.529063e-04 -2.227084e-02 +3.000000e-02 3.733941e+01 -4.958630e-04 -2.681937e-02 +3.500000e-02 4.016071e+01 -5.346529e-04 -3.134327e-02 +4.000000e-02 4.274110e+01 -5.700648e-04 -3.583943e-02 +4.500000e-02 4.512156e+01 -6.027082e-04 -4.030560e-02 +5.000000e-02 4.733472e+01 -6.330621e-04 -4.474013e-02 +5.500000e-02 4.940835e+01 -6.615298e-04 -4.914174e-02 +6.000000e-02 5.136574e+01 -6.884478e-04 -5.350941e-02 +6.500000e-02 5.322624e+01 -7.140934e-04 -5.784243e-02 +7.000000e-02 5.500653e+01 -7.387032e-04 -6.214024e-02 +7.500000e-02 5.672044e+01 -7.624720e-04 -6.640251e-02 +8.000000e-02 5.837963e+01 -7.855650e-04 -7.062901e-02 +8.500000e-02 5.999396e+01 -8.081194e-04 -7.481963e-02 +9.000000e-02 6.157194e+01 -8.302532e-04 -7.897435e-02 +9.500000e-02 6.312082e+01 -8.520652e-04 -8.309324e-02 +1.000000e-01 6.464662e+01 -8.736372e-04 -8.717643e-02 +volume fraction= 0.400239 +fiber_centers_YZ= (0.017293,0.008593) (0.006420,0.032246) (0.010255,0.022098) (0.002714,0.043964) (0.004198,0.012342) (0.017604,0.029968) (0.012080,0.045485) (0.008875,0.004920) (0.017081,0.038838) (0.001381,0.020838) (0.000033,0.004238) (0.019686,0.016441) (0.000052,0.036596) (0.042293,0.008593) (0.031420,0.032246) (0.035255,0.022098) (0.027714,0.043964) (0.029198,0.012342) (0.042604,0.029968) (0.037080,0.045485) (0.033875,0.004920) (0.042081,0.038838) (0.026381,0.020838) (0.025033,0.004238) (0.044686,0.016441) (0.025052,0.036596) (0.052714,0.043964) (0.051381,0.020838) (0.050033,0.004238) (0.050052,0.036596) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4002_5_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4002_5_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..2f8ad4fd395a27cee65ff19333d68088cb7fef7a --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4002_5_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.420580e+02 -1.827538e-03 -1.810723e-03 +1.000000e-02 2.838607e+02 -3.641987e-03 -3.608326e-03 +1.500000e-02 4.252819e+02 -5.447553e-03 -5.397496e-03 +2.000000e-02 5.659036e+02 -7.258251e-03 -7.192507e-03 +2.500000e-02 7.057161e+02 -9.076205e-03 -8.992323e-03 +3.000000e-02 8.450975e+02 -1.088947e-02 -1.078498e-02 +3.500000e-02 9.842029e+02 -1.269274e-02 -1.256621e-02 +4.000000e-02 1.123066e+03 -1.448491e-02 -1.433527e-02 +4.500000e-02 1.261695e+03 -1.626582e-02 -1.609212e-02 +5.000000e-02 1.400093e+03 -1.803552e-02 -1.783681e-02 +5.500000e-02 1.538262e+03 -1.979405e-02 -1.956944e-02 +6.000000e-02 1.676205e+03 -2.154151e-02 -2.129010e-02 +6.500000e-02 1.813924e+03 -2.327796e-02 -2.299889e-02 +7.000000e-02 1.951422e+03 -2.500334e-02 -2.469579e-02 +7.500000e-02 2.088697e+03 -2.671805e-02 -2.638113e-02 +8.000000e-02 2.225753e+03 -2.842202e-02 -2.805490e-02 +8.500000e-02 2.362591e+03 -3.011534e-02 -2.971719e-02 +9.000000e-02 2.499214e+03 -3.179810e-02 -3.136811e-02 +9.500000e-02 2.635622e+03 -3.347039e-02 -3.300775e-02 +1.000000e-01 2.771817e+03 -3.513229e-02 -3.463622e-02 +volume fraction= 0.400239 +fiber_centers_YZ= (0.012768,0.013062) (0.016071,0.044975) (0.012648,0.025913) (0.000287,0.043420) (0.000028,0.013570) (0.016582,0.035385) (0.004264,0.026963) (0.000498,0.004205) (0.008484,0.036612) (0.015234,0.004683) (0.007894,0.019456) (0.007718,0.007022) (0.017059,0.019524) (0.037768,0.013062) (0.041071,0.044975) (0.037648,0.025913) (0.025287,0.043420) (0.025028,0.013570) (0.041582,0.035385) (0.029264,0.026963) (0.025498,0.004205) (0.033484,0.036612) (0.040234,0.004683) (0.032894,0.019456) (0.032718,0.007022) (0.042059,0.019524) (0.050287,0.043420) (0.050028,0.013570) (0.050498,0.004205) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4002_5_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4002_5_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..f625fadd713f4e6b376420e404b937cd9093fec9 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4002_5_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 5.716871e+00 +1.000000e-02 9.488222e+00 +1.500000e-02 1.157078e+01 +2.000000e-02 1.305408e+01 +2.500000e-02 1.428517e+01 +3.000000e-02 1.535031e+01 +3.500000e-02 1.628710e+01 +4.000000e-02 1.711975e+01 +4.500000e-02 1.786643e+01 +5.000000e-02 1.854181e+01 +5.500000e-02 1.915807e+01 +6.000000e-02 1.972555e+01 +6.500000e-02 2.025314e+01 +7.000000e-02 2.074854e+01 +7.500000e-02 2.121846e+01 +8.000000e-02 2.166873e+01 +8.500000e-02 2.210440e+01 +9.000000e-02 2.252982e+01 +9.500000e-02 2.294873e+01 +1.000000e-01 2.336434e+01 +volume fraction= 0.400239 +fiber_centers_YZ= (0.012768,0.013062) (0.016071,0.044975) (0.012648,0.025913) (0.000287,0.043420) (0.000028,0.013570) (0.016582,0.035385) (0.004264,0.026963) (0.000498,0.004205) (0.008484,0.036612) (0.015234,0.004683) (0.007894,0.019456) (0.007718,0.007022) (0.017059,0.019524) (0.037768,0.013062) (0.041071,0.044975) (0.037648,0.025913) (0.025287,0.043420) (0.025028,0.013570) (0.041582,0.035385) (0.029264,0.026963) (0.025498,0.004205) (0.033484,0.036612) (0.040234,0.004683) (0.032894,0.019456) (0.032718,0.007022) (0.042059,0.019524) (0.050287,0.043420) (0.050028,0.013570) (0.050498,0.004205) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4002_5_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4002_5_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..f8478e904b7be67ce72cd58d222bbc47fc8902d9 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4002_5_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.338422e+01 -1.727879e-04 -4.144793e-03 +1.000000e-02 2.311338e+01 -3.013734e-04 -8.457635e-03 +1.500000e-02 2.937182e+01 -3.875135e-04 -1.293396e-02 +2.000000e-02 3.423623e+01 -4.560653e-04 -1.745106e-02 +2.500000e-02 3.844949e+01 -5.159104e-04 -2.196540e-02 +3.000000e-02 4.222442e+01 -5.697543e-04 -2.646432e-02 +3.500000e-02 4.565783e+01 -6.189241e-04 -3.094199e-02 +4.000000e-02 4.881376e+01 -6.643243e-04 -3.539466e-02 +4.500000e-02 5.174082e+01 -7.066459e-04 -3.981961e-02 +5.000000e-02 5.447691e+01 -7.464268e-04 -4.421486e-02 +5.500000e-02 5.705244e+01 -7.840944e-04 -4.857892e-02 +6.000000e-02 5.949283e+01 -8.200008e-04 -5.291067e-02 +6.500000e-02 6.181806e+01 -8.544221e-04 -5.720933e-02 +7.000000e-02 6.404451e+01 -8.875813e-04 -6.147437e-02 +7.500000e-02 6.618589e+01 -9.196624e-04 -6.570544e-02 +8.000000e-02 6.825296e+01 -9.508090e-04 -6.990236e-02 +8.500000e-02 7.025477e+01 -9.811368e-04 -7.406510e-02 +9.000000e-02 7.219825e+01 -1.010733e-03 -7.819371e-02 +9.500000e-02 7.408958e+01 -1.039672e-03 -8.228833e-02 +1.000000e-01 7.593423e+01 -1.068021e-03 -8.634911e-02 +volume fraction= 0.400239 +fiber_centers_YZ= (0.012768,0.013062) (0.016071,0.044975) (0.012648,0.025913) (0.000287,0.043420) (0.000028,0.013570) (0.016582,0.035385) (0.004264,0.026963) (0.000498,0.004205) (0.008484,0.036612) (0.015234,0.004683) (0.007894,0.019456) (0.007718,0.007022) (0.017059,0.019524) (0.037768,0.013062) (0.041071,0.044975) (0.037648,0.025913) (0.025287,0.043420) (0.025028,0.013570) (0.041582,0.035385) (0.029264,0.026963) (0.025498,0.004205) (0.033484,0.036612) (0.040234,0.004683) (0.032894,0.019456) (0.032718,0.007022) (0.042059,0.019524) (0.050287,0.043420) (0.050028,0.013570) (0.050498,0.004205) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4926_1_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4926_1_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..0c44dca77bc9b59d6acf5463659dfb76bcedc883 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4926_1_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.739839e+02 -1.684093e-03 -1.688479e-03 +1.000000e-02 3.475665e+02 -3.356197e-03 -3.364975e-03 +1.500000e-02 5.206396e+02 -5.020336e-03 -5.033804e-03 +2.000000e-02 6.928540e+02 -6.688777e-03 -6.707875e-03 +2.500000e-02 8.642177e+02 -8.361307e-03 -8.386427e-03 +3.000000e-02 1.035040e+03 -1.002854e-02 -1.005966e-02 +3.500000e-02 1.205460e+03 -1.168580e-02 -1.172288e-02 +4.000000e-02 1.375505e+03 -1.333242e-02 -1.337545e-02 +4.500000e-02 1.545182e+03 -1.496829e-02 -1.501727e-02 +5.000000e-02 1.714499e+03 -1.659331e-02 -1.664821e-02 +5.500000e-02 1.883453e+03 -1.820786e-02 -1.826866e-02 +6.000000e-02 2.052050e+03 -1.981186e-02 -1.987852e-02 +6.500000e-02 2.220293e+03 -2.140540e-02 -2.147789e-02 +7.000000e-02 2.388184e+03 -2.298855e-02 -2.306682e-02 +7.500000e-02 2.555726e+03 -2.456140e-02 -2.464542e-02 +8.000000e-02 2.722921e+03 -2.612404e-02 -2.621374e-02 +8.500000e-02 2.889771e+03 -2.767655e-02 -2.777189e-02 +9.000000e-02 3.056279e+03 -2.921902e-02 -2.931993e-02 +9.500000e-02 3.222447e+03 -3.075154e-02 -3.085797e-02 +1.000000e-01 3.388277e+03 -3.227420e-02 -3.238608e-02 +volume fraction= 0.492602 +fiber_centers_YZ= (0.003117,0.037670) (0.000325,0.020796) (0.013772,0.036328) (0.009158,0.017226) (0.017006,0.012445) (0.000058,0.045167) (0.008395,0.027762) (0.007458,0.009489) (0.009653,0.042939) (0.016246,0.020843) (0.000265,0.012697) (0.017269,0.029320) (0.017199,0.045290) (0.000296,0.004507) (0.015120,0.004857) (0.000354,0.030028) (0.028117,0.037670) (0.025325,0.020796) (0.038772,0.036328) (0.034158,0.017226) (0.042006,0.012445) (0.025058,0.045167) (0.033395,0.027762) (0.032458,0.009489) (0.034653,0.042939) (0.041246,0.020843) (0.025265,0.012697) (0.042269,0.029320) (0.042199,0.045290) (0.025296,0.004507) (0.040120,0.004857) (0.025354,0.030028) (0.053117,0.037670) (0.050325,0.020796) (0.050058,0.045167) (0.050265,0.012697) (0.050296,0.004507) (0.050354,0.030028) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4926_1_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4926_1_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..47ac97932a12e72d46917a790bdbfd8651e9a4b5 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4926_1_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 7.303399e+00 +1.000000e-02 1.092614e+01 +1.500000e-02 1.313984e+01 +2.000000e-02 1.477337e+01 +2.500000e-02 1.611853e+01 +3.000000e-02 1.726702e+01 +3.500000e-02 1.826915e+01 +4.000000e-02 1.916018e+01 +4.500000e-02 1.996643e+01 +5.000000e-02 2.070801e+01 +5.500000e-02 2.140828e+01 +6.000000e-02 2.206321e+01 +6.500000e-02 2.269039e+01 +7.000000e-02 2.329761e+01 +7.500000e-02 2.389097e+01 +8.000000e-02 2.447539e+01 +8.500000e-02 2.506051e+01 +9.000000e-02 2.563810e+01 +9.500000e-02 2.621686e+01 +1.000000e-01 2.679903e+01 +volume fraction= 0.492602 +fiber_centers_YZ= (0.003117,0.037670) (0.000325,0.020796) (0.013772,0.036328) (0.009158,0.017226) (0.017006,0.012445) (0.000058,0.045167) (0.008395,0.027762) (0.007458,0.009489) (0.009653,0.042939) (0.016246,0.020843) (0.000265,0.012697) (0.017269,0.029320) (0.017199,0.045290) (0.000296,0.004507) (0.015120,0.004857) (0.000354,0.030028) (0.028117,0.037670) (0.025325,0.020796) (0.038772,0.036328) (0.034158,0.017226) (0.042006,0.012445) (0.025058,0.045167) (0.033395,0.027762) (0.032458,0.009489) (0.034653,0.042939) (0.041246,0.020843) (0.025265,0.012697) (0.042269,0.029320) (0.042199,0.045290) (0.025296,0.004507) (0.040120,0.004857) (0.025354,0.030028) (0.053117,0.037670) (0.050325,0.020796) (0.050058,0.045167) (0.050265,0.012697) (0.050296,0.004507) (0.050354,0.030028) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4926_1_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4926_1_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..fc6220d9992be127910d5b4f08d002b588bccb53 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4926_1_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 2.172491e+01 -2.117964e-04 -3.843155e-03 +1.000000e-02 3.557080e+01 -3.527543e-04 -8.020014e-03 +1.500000e-02 4.589194e+01 -4.611959e-04 -1.233277e-02 +2.000000e-02 5.456654e+01 -5.541291e-04 -1.668780e-02 +2.500000e-02 6.226009e+01 -6.377233e-04 -2.105122e-02 +3.000000e-02 6.924996e+01 -7.146273e-04 -2.540893e-02 +3.500000e-02 7.569879e+01 -7.864345e-04 -2.975273e-02 +4.000000e-02 8.171638e+01 -8.542333e-04 -3.407710e-02 +4.500000e-02 8.738047e+01 -9.187915e-04 -3.837826e-02 +5.000000e-02 9.274815e+01 -9.806662e-04 -4.265347e-02 +5.500000e-02 9.788939e+01 -1.040375e-03 -4.690135e-02 +6.000000e-02 1.027754e+02 -1.097918e-03 -5.111976e-02 +6.500000e-02 1.074583e+02 -1.153634e-03 -5.530819e-02 +7.000000e-02 1.119536e+02 -1.207643e-03 -5.946608e-02 +7.500000e-02 1.162737e+02 -1.260034e-03 -6.359301e-02 +8.000000e-02 1.203925e+02 -1.310718e-03 -6.768805e-02 +8.500000e-02 1.243883e+02 -1.360031e-03 -7.175193e-02 +9.000000e-02 1.282318e+02 -1.407813e-03 -7.578400e-02 +9.500000e-02 1.319101e+02 -1.453908e-03 -7.978464e-02 +1.000000e-01 1.354507e+02 -1.498490e-03 -8.375271e-02 +volume fraction= 0.492602 +fiber_centers_YZ= (0.003117,0.037670) (0.000325,0.020796) (0.013772,0.036328) (0.009158,0.017226) (0.017006,0.012445) (0.000058,0.045167) (0.008395,0.027762) (0.007458,0.009489) (0.009653,0.042939) (0.016246,0.020843) (0.000265,0.012697) (0.017269,0.029320) (0.017199,0.045290) (0.000296,0.004507) (0.015120,0.004857) (0.000354,0.030028) (0.028117,0.037670) (0.025325,0.020796) (0.038772,0.036328) (0.034158,0.017226) (0.042006,0.012445) (0.025058,0.045167) (0.033395,0.027762) (0.032458,0.009489) (0.034653,0.042939) (0.041246,0.020843) (0.025265,0.012697) (0.042269,0.029320) (0.042199,0.045290) (0.025296,0.004507) (0.040120,0.004857) (0.025354,0.030028) (0.053117,0.037670) (0.050325,0.020796) (0.050058,0.045167) (0.050265,0.012697) (0.050296,0.004507) (0.050354,0.030028) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4926_2_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4926_2_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..d6bcaf57cf0775a0599b8af0e72a91cc983675e3 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4926_2_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.739736e+02 -1.679709e-03 -1.700314e-03 +1.000000e-02 3.475495e+02 -3.347534e-03 -3.388454e-03 +1.500000e-02 5.206202e+02 -5.008019e-03 -5.067893e-03 +2.000000e-02 6.928351e+02 -6.675278e-03 -6.749259e-03 +2.500000e-02 8.641972e+02 -8.348766e-03 -8.433392e-03 +3.000000e-02 1.035027e+03 -1.001703e-02 -1.011100e-02 +3.500000e-02 1.205456e+03 -1.167588e-02 -1.177808e-02 +4.000000e-02 1.375513e+03 -1.332453e-02 -1.343387e-02 +4.500000e-02 1.545205e+03 -1.496288e-02 -1.507831e-02 +5.000000e-02 1.714536e+03 -1.659095e-02 -1.671148e-02 +5.500000e-02 1.883510e+03 -1.820879e-02 -1.833346e-02 +6.000000e-02 2.052128e+03 -1.981646e-02 -1.994437e-02 +6.500000e-02 2.220395e+03 -2.141401e-02 -2.154432e-02 +7.000000e-02 2.388313e+03 -2.300142e-02 -2.313324e-02 +7.500000e-02 2.555883e+03 -2.457893e-02 -2.471157e-02 +8.000000e-02 2.723108e+03 -2.614652e-02 -2.627926e-02 +8.500000e-02 2.889990e+03 -2.770426e-02 -2.783640e-02 +9.000000e-02 3.056531e+03 -2.925222e-02 -2.938311e-02 +9.500000e-02 3.222735e+03 -3.079049e-02 -3.091948e-02 +1.000000e-01 3.388601e+03 -3.231912e-02 -3.244561e-02 +volume fraction= 0.492602 +fiber_centers_YZ= (0.008890,0.012349) (0.002006,0.024471) (0.016779,0.005096) (0.000662,0.044882) (0.000019,0.005946) (0.007790,0.004447) (0.017254,0.032806) (0.009620,0.037437) (0.008868,0.045566) (0.016775,0.025059) (0.000928,0.014873) (0.017253,0.012819) (0.016295,0.042809) (0.001369,0.033280) (0.009767,0.028819) (0.010116,0.020344) (0.033890,0.012349) (0.027006,0.024471) (0.041779,0.005096) (0.025662,0.044882) (0.025019,0.005946) (0.032790,0.004447) (0.042254,0.032806) (0.034620,0.037437) (0.033868,0.045566) (0.041775,0.025059) (0.025928,0.014873) (0.042253,0.012819) (0.041295,0.042809) (0.026369,0.033280) (0.034767,0.028819) (0.035116,0.020344) (0.052006,0.024471) (0.050662,0.044882) (0.050019,0.005946) (0.050928,0.014873) (0.051369,0.033280) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4926_2_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4926_2_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..d2f361d2aff1e03358e52f66ca0796c63da7cbb7 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4926_2_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 7.117572e+00 +1.000000e-02 1.076655e+01 +1.500000e-02 1.293781e+01 +2.000000e-02 1.456913e+01 +2.500000e-02 1.590975e+01 +3.000000e-02 1.704559e+01 +3.500000e-02 1.802640e+01 +4.000000e-02 1.888801e+01 +4.500000e-02 1.965796e+01 +5.000000e-02 2.035795e+01 +5.500000e-02 2.100516e+01 +6.000000e-02 2.162098e+01 +6.500000e-02 2.220124e+01 +7.000000e-02 2.276190e+01 +7.500000e-02 2.331011e+01 +8.000000e-02 2.385155e+01 +8.500000e-02 2.439077e+01 +9.000000e-02 2.493139e+01 +9.500000e-02 2.547641e+01 +1.000000e-01 2.602822e+01 +volume fraction= 0.492602 +fiber_centers_YZ= (0.008890,0.012349) (0.002006,0.024471) (0.016779,0.005096) (0.000662,0.044882) (0.000019,0.005946) (0.007790,0.004447) (0.017254,0.032806) (0.009620,0.037437) (0.008868,0.045566) (0.016775,0.025059) (0.000928,0.014873) (0.017253,0.012819) (0.016295,0.042809) (0.001369,0.033280) (0.009767,0.028819) (0.010116,0.020344) (0.033890,0.012349) (0.027006,0.024471) (0.041779,0.005096) (0.025662,0.044882) (0.025019,0.005946) (0.032790,0.004447) (0.042254,0.032806) (0.034620,0.037437) (0.033868,0.045566) (0.041775,0.025059) (0.025928,0.014873) (0.042253,0.012819) (0.041295,0.042809) (0.026369,0.033280) (0.034767,0.028819) (0.035116,0.020344) (0.052006,0.024471) (0.050662,0.044882) (0.050019,0.005946) (0.050928,0.014873) (0.051369,0.033280) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4926_2_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4926_2_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..bbe3bef8355c2060171a171efbbc379e5fa3c13b --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4926_2_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 2.289649e+01 -2.227537e-04 -3.786697e-03 +1.000000e-02 3.740490e+01 -3.711241e-04 -7.922521e-03 +1.500000e-02 4.840062e+01 -4.870934e-04 -1.219322e-02 +2.000000e-02 5.778803e+01 -5.880485e-04 -1.650357e-02 +2.500000e-02 6.616774e+01 -6.796202e-04 -2.082272e-02 +3.000000e-02 7.380078e+01 -7.642752e-04 -2.513742e-02 +3.500000e-02 8.084244e+01 -8.434661e-04 -2.944000e-02 +4.000000e-02 8.739424e+01 -9.181206e-04 -3.372561e-02 +4.500000e-02 9.352591e+01 -9.888599e-04 -3.799111e-02 +5.000000e-02 9.928970e+01 -1.056142e-03 -4.223431e-02 +5.500000e-02 1.047285e+02 -1.120345e-03 -4.645355e-02 +6.000000e-02 1.098834e+02 -1.181844e-03 -5.064744e-02 +6.500000e-02 1.147909e+02 -1.240982e-03 -5.481489e-02 +7.000000e-02 1.194819e+02 -1.298057e-03 -5.895523e-02 +7.500000e-02 1.239771e+02 -1.353257e-03 -6.306845e-02 +8.000000e-02 1.282897e+02 -1.406689e-03 -6.715508e-02 +8.500000e-02 1.324260e+02 -1.458379e-03 -7.121603e-02 +9.000000e-02 1.363743e+02 -1.508170e-03 -7.525306e-02 +9.500000e-02 1.401455e+02 -1.556130e-03 -7.926677e-02 +1.000000e-01 1.437195e+02 -1.602005e-03 -8.325890e-02 +volume fraction= 0.492602 +fiber_centers_YZ= (0.008890,0.012349) (0.002006,0.024471) (0.016779,0.005096) (0.000662,0.044882) (0.000019,0.005946) (0.007790,0.004447) (0.017254,0.032806) (0.009620,0.037437) (0.008868,0.045566) (0.016775,0.025059) (0.000928,0.014873) (0.017253,0.012819) (0.016295,0.042809) (0.001369,0.033280) (0.009767,0.028819) (0.010116,0.020344) (0.033890,0.012349) (0.027006,0.024471) (0.041779,0.005096) (0.025662,0.044882) (0.025019,0.005946) (0.032790,0.004447) (0.042254,0.032806) (0.034620,0.037437) (0.033868,0.045566) (0.041775,0.025059) (0.025928,0.014873) (0.042253,0.012819) (0.041295,0.042809) (0.026369,0.033280) (0.034767,0.028819) (0.035116,0.020344) (0.052006,0.024471) (0.050662,0.044882) (0.050019,0.005946) (0.050928,0.014873) (0.051369,0.033280) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4926_3_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4926_3_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..1c27de19ea46f20f1acd4a5aa0e987678f994eb2 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4926_3_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.739843e+02 -1.666533e-03 -1.712369e-03 +1.000000e-02 3.475703e+02 -3.321205e-03 -3.412563e-03 +1.500000e-02 5.206501e+02 -4.968189e-03 -5.104454e-03 +2.000000e-02 6.928718e+02 -6.619792e-03 -6.800834e-03 +2.500000e-02 8.642416e+02 -8.275143e-03 -8.502224e-03 +3.000000e-02 1.035079e+03 -9.924501e-03 -1.019811e-02 +3.500000e-02 1.205514e+03 -1.156400e-02 -1.188396e-02 +4.000000e-02 1.375577e+03 -1.319293e-02 -1.355889e-02 +4.500000e-02 1.545276e+03 -1.481126e-02 -1.522282e-02 +5.000000e-02 1.714613e+03 -1.641901e-02 -1.687579e-02 +5.500000e-02 1.883592e+03 -1.801628e-02 -1.851786e-02 +6.000000e-02 2.052217e+03 -1.960313e-02 -2.014912e-02 +6.500000e-02 2.220488e+03 -2.117965e-02 -2.176964e-02 +7.000000e-02 2.388412e+03 -2.274579e-02 -2.337938e-02 +7.500000e-02 2.555987e+03 -2.430189e-02 -2.497871e-02 +8.000000e-02 2.723216e+03 -2.584791e-02 -2.656757e-02 +8.500000e-02 2.890103e+03 -2.738393e-02 -2.814605e-02 +9.000000e-02 3.056649e+03 -2.891003e-02 -2.971425e-02 +9.500000e-02 3.222856e+03 -3.042630e-02 -3.127224e-02 +1.000000e-01 3.388727e+03 -3.193284e-02 -3.282012e-02 +volume fraction= 0.492602 +fiber_centers_YZ= (0.016121,0.020492) (0.019058,0.029314) (0.002996,0.004951) (0.000287,0.044353) (0.000777,0.035726) (0.017272,0.036897) (0.009371,0.009425) (0.008881,0.045598) (0.011311,0.026745) (0.016706,0.012423) (0.019317,0.004231) (0.008681,0.037519) (0.001323,0.013362) (0.000842,0.021989) (0.017101,0.044611) (0.008820,0.017749) (0.041121,0.020492) (0.044058,0.029314) (0.027996,0.004951) (0.025287,0.044353) (0.025777,0.035726) (0.042272,0.036897) (0.034371,0.009425) (0.033881,0.045598) (0.036311,0.026745) (0.041706,0.012423) (0.044317,0.004231) (0.033681,0.037519) (0.026323,0.013362) (0.025842,0.021989) (0.042101,0.044611) (0.033820,0.017749) (0.052996,0.004951) (0.050287,0.044353) (0.050777,0.035726) (0.051323,0.013362) (0.050842,0.021989) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4926_3_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4926_3_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..5e13983c0a6e7672f2b34efb74435252b48b2a0e --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4926_3_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 7.243663e+00 +1.000000e-02 1.091527e+01 +1.500000e-02 1.314315e+01 +2.000000e-02 1.479969e+01 +2.500000e-02 1.615700e+01 +3.000000e-02 1.730909e+01 +3.500000e-02 1.830750e+01 +4.000000e-02 1.918823e+01 +4.500000e-02 1.997849e+01 +5.000000e-02 2.069935e+01 +5.500000e-02 2.136744e+01 +6.000000e-02 2.199606e+01 +6.500000e-02 2.259598e+01 +7.000000e-02 2.317592e+01 +7.500000e-02 2.374299e+01 +8.000000e-02 2.430293e+01 +8.500000e-02 2.486039e+01 +9.000000e-02 2.541908e+01 +9.500000e-02 2.598198e+01 +1.000000e-01 2.655147e+01 +volume fraction= 0.492602 +fiber_centers_YZ= (0.016121,0.020492) (0.019058,0.029314) (0.002996,0.004951) (0.000287,0.044353) (0.000777,0.035726) (0.017272,0.036897) (0.009371,0.009425) (0.008881,0.045598) (0.011311,0.026745) (0.016706,0.012423) (0.019317,0.004231) (0.008681,0.037519) (0.001323,0.013362) (0.000842,0.021989) (0.017101,0.044611) (0.008820,0.017749) (0.041121,0.020492) (0.044058,0.029314) (0.027996,0.004951) (0.025287,0.044353) (0.025777,0.035726) (0.042272,0.036897) (0.034371,0.009425) (0.033881,0.045598) (0.036311,0.026745) (0.041706,0.012423) (0.044317,0.004231) (0.033681,0.037519) (0.026323,0.013362) (0.025842,0.021989) (0.042101,0.044611) (0.033820,0.017749) (0.052996,0.004951) (0.050287,0.044353) (0.050777,0.035726) (0.051323,0.013362) (0.050842,0.021989) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4926_3_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4926_3_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..bb018cc40fffa2b4229661f1a1c1a5ec532bb50a --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4926_3_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 2.222484e+01 -2.144408e-04 -3.837666e-03 +1.000000e-02 3.643755e+01 -3.584424e-04 -7.999700e-03 +1.500000e-02 4.701928e+01 -4.688525e-04 -1.230195e-02 +2.000000e-02 5.593926e+01 -5.637421e-04 -1.664389e-02 +2.500000e-02 6.392032e+01 -6.497929e-04 -2.098872e-02 +3.000000e-02 7.126601e+01 -7.298672e-04 -2.532195e-02 +3.500000e-02 7.811149e+01 -8.053875e-04 -2.963448e-02 +4.000000e-02 8.458510e+01 -8.775850e-04 -3.392067e-02 +4.500000e-02 9.076609e+01 -9.472523e-04 -3.817641e-02 +5.000000e-02 9.671029e+01 -1.014948e-03 -4.239869e-02 +5.500000e-02 1.024562e+02 -1.081051e-03 -4.658541e-02 +6.000000e-02 1.080296e+02 -1.145805e-03 -5.073501e-02 +6.500000e-02 1.134461e+02 -1.209345e-03 -5.484642e-02 +7.000000e-02 1.187125e+02 -1.271704e-03 -5.891887e-02 +7.500000e-02 1.238268e+02 -1.332819e-03 -6.295184e-02 +8.000000e-02 1.287515e+02 -1.392383e-03 -6.694428e-02 +8.500000e-02 1.335180e+02 -1.450421e-03 -7.089659e-02 +9.000000e-02 1.380526e+02 -1.506222e-03 -7.480819e-02 +9.500000e-02 1.423356e+02 -1.559423e-03 -7.867693e-02 +1.000000e-01 1.462852e+02 -1.609024e-03 -8.250121e-02 +volume fraction= 0.492602 +fiber_centers_YZ= (0.016121,0.020492) (0.019058,0.029314) (0.002996,0.004951) (0.000287,0.044353) (0.000777,0.035726) (0.017272,0.036897) (0.009371,0.009425) (0.008881,0.045598) (0.011311,0.026745) (0.016706,0.012423) (0.019317,0.004231) (0.008681,0.037519) (0.001323,0.013362) (0.000842,0.021989) (0.017101,0.044611) (0.008820,0.017749) (0.041121,0.020492) (0.044058,0.029314) (0.027996,0.004951) (0.025287,0.044353) (0.025777,0.035726) (0.042272,0.036897) (0.034371,0.009425) (0.033881,0.045598) (0.036311,0.026745) (0.041706,0.012423) (0.044317,0.004231) (0.033681,0.037519) (0.026323,0.013362) (0.025842,0.021989) (0.042101,0.044611) (0.033820,0.017749) (0.052996,0.004951) (0.050287,0.044353) (0.050777,0.035726) (0.051323,0.013362) (0.050842,0.021989) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4926_4_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4926_4_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..f2b123af598a4b707b0343c9c9da653de3017a1f --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4926_4_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.739753e+02 -1.692665e-03 -1.686356e-03 +1.000000e-02 3.475524e+02 -3.373389e-03 -3.360616e-03 +1.500000e-02 5.206231e+02 -5.046516e-03 -5.026542e-03 +2.000000e-02 6.928357e+02 -6.726153e-03 -6.695135e-03 +2.500000e-02 8.641970e+02 -8.412480e-03 -8.365730e-03 +3.000000e-02 1.035026e+03 -1.009419e-02 -1.002941e-02 +3.500000e-02 1.205453e+03 -1.176660e-02 -1.168247e-02 +4.000000e-02 1.375507e+03 -1.342880e-02 -1.332427e-02 +4.500000e-02 1.545197e+03 -1.508067e-02 -1.495478e-02 +5.000000e-02 1.714526e+03 -1.672222e-02 -1.657407e-02 +5.500000e-02 1.883497e+03 -1.835348e-02 -1.818224e-02 +6.000000e-02 2.052115e+03 -1.997442e-02 -1.977926e-02 +6.500000e-02 2.220379e+03 -2.158529e-02 -2.136554e-02 +7.000000e-02 2.388293e+03 -2.318604e-02 -2.294105e-02 +7.500000e-02 2.555859e+03 -2.477673e-02 -2.450587e-02 +8.000000e-02 2.723081e+03 -2.635744e-02 -2.606013e-02 +8.500000e-02 2.889959e+03 -2.792822e-02 -2.760394e-02 +9.000000e-02 3.056497e+03 -2.948915e-02 -2.913739e-02 +9.500000e-02 3.222697e+03 -3.104030e-02 -3.066058e-02 +1.000000e-01 3.388560e+03 -3.258174e-02 -3.217364e-02 +volume fraction= 0.492602 +fiber_centers_YZ= (0.008803,0.025475) (0.017039,0.013536) (0.017231,0.045526) (0.008870,0.033330) (0.008548,0.017370) (0.016098,0.029994) (0.019197,0.021829) (0.009286,0.042975) (0.000610,0.026169) (0.000116,0.004393) (0.000785,0.035561) (0.000123,0.043731) (0.008338,0.008948) (0.015408,0.005431) (0.016239,0.037783) (0.000741,0.015232) (0.033803,0.025475) (0.042039,0.013536) (0.042231,0.045526) (0.033870,0.033330) (0.033548,0.017370) (0.041098,0.029994) (0.044197,0.021829) (0.034286,0.042975) (0.025610,0.026169) (0.025116,0.004393) (0.025785,0.035561) (0.025123,0.043731) (0.033338,0.008948) (0.040408,0.005431) (0.041239,0.037783) (0.025741,0.015232) (0.050610,0.026169) (0.050116,0.004393) (0.050785,0.035561) (0.050123,0.043731) (0.050741,0.015232) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4926_4_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4926_4_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..a8d4e08221fd5c3429c05fa1be2f404d30635b3b --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4926_4_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 7.202046e+00 +1.000000e-02 1.089749e+01 +1.500000e-02 1.310201e+01 +2.000000e-02 1.475424e+01 +2.500000e-02 1.611431e+01 +3.000000e-02 1.727109e+01 +3.500000e-02 1.827527e+01 +4.000000e-02 1.916271e+01 +4.500000e-02 1.996069e+01 +5.000000e-02 2.069031e+01 +5.500000e-02 2.137331e+01 +6.000000e-02 2.201193e+01 +6.500000e-02 2.262153e+01 +7.000000e-02 2.321430e+01 +7.500000e-02 2.378842e+01 +8.000000e-02 2.435351e+01 +8.500000e-02 2.491381e+01 +9.000000e-02 2.547281e+01 +9.500000e-02 2.603343e+01 +1.000000e-01 2.659806e+01 +volume fraction= 0.492602 +fiber_centers_YZ= (0.008803,0.025475) (0.017039,0.013536) (0.017231,0.045526) (0.008870,0.033330) (0.008548,0.017370) (0.016098,0.029994) (0.019197,0.021829) (0.009286,0.042975) (0.000610,0.026169) (0.000116,0.004393) (0.000785,0.035561) (0.000123,0.043731) (0.008338,0.008948) (0.015408,0.005431) (0.016239,0.037783) (0.000741,0.015232) (0.033803,0.025475) (0.042039,0.013536) (0.042231,0.045526) (0.033870,0.033330) (0.033548,0.017370) (0.041098,0.029994) (0.044197,0.021829) (0.034286,0.042975) (0.025610,0.026169) (0.025116,0.004393) (0.025785,0.035561) (0.025123,0.043731) (0.033338,0.008948) (0.040408,0.005431) (0.041239,0.037783) (0.025741,0.015232) (0.050610,0.026169) (0.050116,0.004393) (0.050785,0.035561) (0.050123,0.043731) (0.050741,0.015232) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4926_4_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4926_4_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..94fcf4f4b0288072adfda0d05813343806c69550 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4926_4_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 2.104321e+01 -2.060457e-04 -3.869527e-03 +1.000000e-02 3.448161e+01 -3.434167e-04 -8.062374e-03 +1.500000e-02 4.423093e+01 -4.468545e-04 -1.239676e-02 +2.000000e-02 5.245215e+01 -5.356869e-04 -1.676821e-02 +2.500000e-02 5.979095e+01 -6.160168e-04 -2.114283e-02 +3.000000e-02 6.651082e+01 -6.904434e-04 -2.550694e-02 +3.500000e-02 7.277385e+01 -7.606031e-04 -2.985220e-02 +4.000000e-02 7.869359e+01 -8.276564e-04 -3.417282e-02 +4.500000e-02 8.435425e+01 -8.924661e-04 -3.846459e-02 +5.000000e-02 8.981699e+01 -9.556616e-04 -4.272452e-02 +5.500000e-02 9.512588e+01 -1.017696e-03 -4.695054e-02 +6.000000e-02 1.003129e+02 -1.078895e-03 -5.114121e-02 +6.500000e-02 1.054235e+02 -1.139618e-03 -5.529588e-02 +7.000000e-02 1.104278e+02 -1.199733e-03 -5.941349e-02 +7.500000e-02 1.153571e+02 -1.259449e-03 -6.349399e-02 +8.000000e-02 1.201854e+02 -1.318600e-03 -6.753705e-02 +8.500000e-02 1.249641e+02 -1.377434e-03 -7.154346e-02 +9.000000e-02 1.296620e+02 -1.435696e-03 -7.551312e-02 +9.500000e-02 1.342692e+02 -1.493236e-03 -7.944623e-02 +1.000000e-01 1.387715e+02 -1.549841e-03 -8.334306e-02 +volume fraction= 0.492602 +fiber_centers_YZ= (0.008803,0.025475) (0.017039,0.013536) (0.017231,0.045526) (0.008870,0.033330) (0.008548,0.017370) (0.016098,0.029994) (0.019197,0.021829) (0.009286,0.042975) (0.000610,0.026169) (0.000116,0.004393) (0.000785,0.035561) (0.000123,0.043731) (0.008338,0.008948) (0.015408,0.005431) (0.016239,0.037783) (0.000741,0.015232) (0.033803,0.025475) (0.042039,0.013536) (0.042231,0.045526) (0.033870,0.033330) (0.033548,0.017370) (0.041098,0.029994) (0.044197,0.021829) (0.034286,0.042975) (0.025610,0.026169) (0.025116,0.004393) (0.025785,0.035561) (0.025123,0.043731) (0.033338,0.008948) (0.040408,0.005431) (0.041239,0.037783) (0.025741,0.015232) (0.050610,0.026169) (0.050116,0.004393) (0.050785,0.035561) (0.050123,0.043731) (0.050741,0.015232) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4926_5_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4926_5_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..4bf0a2d343f9088dc4853857d715f2863bff62fd --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4926_5_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.739695e+02 -1.650910e-03 -1.728174e-03 +1.000000e-02 3.475409e+02 -3.290009e-03 -3.444108e-03 +1.500000e-02 5.206063e+02 -4.920914e-03 -5.152232e-03 +2.000000e-02 6.928145e+02 -6.554609e-03 -6.866584e-03 +2.500000e-02 8.641734e+02 -8.190296e-03 -8.587284e-03 +3.000000e-02 1.034995e+03 -9.819559e-03 -1.030344e-02 +3.500000e-02 1.205417e+03 -1.143849e-02 -1.200972e-02 +4.000000e-02 1.375467e+03 -1.304664e-02 -1.370529e-02 +4.500000e-02 1.545152e+03 -1.464397e-02 -1.539003e-02 +5.000000e-02 1.714476e+03 -1.623058e-02 -1.706395e-02 +5.500000e-02 1.883444e+03 -1.780643e-02 -1.872694e-02 +6.000000e-02 2.052054e+03 -1.937188e-02 -2.037937e-02 +6.500000e-02 2.220313e+03 -2.092690e-02 -2.202115e-02 +7.000000e-02 2.388221e+03 -2.247159e-02 -2.365234e-02 +7.500000e-02 2.555782e+03 -2.400605e-02 -2.527301e-02 +8.000000e-02 2.722998e+03 -2.553039e-02 -2.688325e-02 +8.500000e-02 2.889871e+03 -2.704470e-02 -2.848311e-02 +9.000000e-02 3.056403e+03 -2.854909e-02 -3.007267e-02 +9.500000e-02 3.222597e+03 -3.004364e-02 -3.165202e-02 +1.000000e-01 3.388454e+03 -3.152848e-02 -3.322124e-02 +volume fraction= 0.492602 +fiber_centers_YZ= (0.016456,0.035733) (0.001086,0.019164) (0.017187,0.017159) (0.016822,0.007741) (0.016038,0.026185) (0.008763,0.029399) (0.008629,0.045742) (0.008920,0.037615) (0.000365,0.027520) (0.016576,0.045289) (0.000346,0.044672) (0.004214,0.004368) (0.000421,0.035386) (0.009515,0.011362) (0.000061,0.010961) (0.008936,0.019547) (0.041456,0.035733) (0.026086,0.019164) (0.042187,0.017159) (0.041822,0.007741) (0.041038,0.026185) (0.033763,0.029399) (0.033629,0.045742) (0.033920,0.037615) (0.025365,0.027520) (0.041576,0.045289) (0.025346,0.044672) (0.029214,0.004368) (0.025421,0.035386) (0.034515,0.011362) (0.025061,0.010961) (0.033936,0.019547) (0.051086,0.019164) (0.050365,0.027520) (0.050346,0.044672) (0.050421,0.035386) (0.050061,0.010961) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4926_5_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4926_5_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..f1b9af0f34539d25db996b1a5f347f38c6f772fe --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4926_5_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 7.256013e+00 +1.000000e-02 1.086808e+01 +1.500000e-02 1.306942e+01 +2.000000e-02 1.470806e+01 +2.500000e-02 1.605158e+01 +3.000000e-02 1.718936e+01 +3.500000e-02 1.817263e+01 +4.000000e-02 1.903766e+01 +4.500000e-02 1.981218e+01 +5.000000e-02 2.051797e+01 +5.500000e-02 2.117240e+01 +6.000000e-02 2.178940e+01 +6.500000e-02 2.238881e+01 +7.000000e-02 2.296238e+01 +7.500000e-02 2.352560e+01 +8.000000e-02 2.408423e+01 +8.500000e-02 2.464275e+01 +9.000000e-02 2.520460e+01 +9.500000e-02 2.577248e+01 +1.000000e-01 2.634853e+01 +volume fraction= 0.492602 +fiber_centers_YZ= (0.016456,0.035733) (0.001086,0.019164) (0.017187,0.017159) (0.016822,0.007741) (0.016038,0.026185) (0.008763,0.029399) (0.008629,0.045742) (0.008920,0.037615) (0.000365,0.027520) (0.016576,0.045289) (0.000346,0.044672) (0.004214,0.004368) (0.000421,0.035386) (0.009515,0.011362) (0.000061,0.010961) (0.008936,0.019547) (0.041456,0.035733) (0.026086,0.019164) (0.042187,0.017159) (0.041822,0.007741) (0.041038,0.026185) (0.033763,0.029399) (0.033629,0.045742) (0.033920,0.037615) (0.025365,0.027520) (0.041576,0.045289) (0.025346,0.044672) (0.029214,0.004368) (0.025421,0.035386) (0.034515,0.011362) (0.025061,0.010961) (0.033936,0.019547) (0.051086,0.019164) (0.050365,0.027520) (0.050346,0.044672) (0.050421,0.035386) (0.050061,0.010961) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4926_5_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4926_5_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..c6d6d18ce94a16b6dea325ce3ef70962306dabf2 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GHDPE_0.4926_5_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 2.327582e+01 -2.225352e-04 -3.804081e-03 +1.000000e-02 3.773692e+01 -3.675659e-04 -7.969580e-03 +1.500000e-02 4.879609e+01 -4.810854e-04 -1.226513e-02 +2.000000e-02 5.822138e+01 -5.795780e-04 -1.659998e-02 +2.500000e-02 6.670122e+01 -6.693991e-04 -2.093969e-02 +3.000000e-02 7.455082e+01 -7.535332e-04 -2.526873e-02 +3.500000e-02 8.195903e+01 -8.338213e-04 -2.957783e-02 +4.000000e-02 8.905363e+01 -9.115378e-04 -3.386074e-02 +4.500000e-02 9.592456e+01 -9.875922e-04 -3.811314e-02 +5.000000e-02 1.026347e+02 -1.062628e-03 -4.233204e-02 +5.500000e-02 1.092260e+02 -1.137075e-03 -4.651550e-02 +6.000000e-02 1.157237e+02 -1.211195e-03 -5.066241e-02 +6.500000e-02 1.221408e+02 -1.285117e-03 -5.477223e-02 +7.000000e-02 1.284772e+02 -1.358834e-03 -5.884498e-02 +7.500000e-02 1.347194e+02 -1.432192e-03 -6.288125e-02 +8.000000e-02 1.408431e+02 -1.504899e-03 -6.688198e-02 +8.500000e-02 1.468135e+02 -1.576533e-03 -7.084845e-02 +9.000000e-02 1.525894e+02 -1.646584e-03 -7.478199e-02 +9.500000e-02 1.581231e+02 -1.714459e-03 -7.868398e-02 +1.000000e-01 1.633655e+02 -1.779528e-03 -8.255558e-02 +volume fraction= 0.492602 +fiber_centers_YZ= (0.016456,0.035733) (0.001086,0.019164) (0.017187,0.017159) (0.016822,0.007741) (0.016038,0.026185) (0.008763,0.029399) (0.008629,0.045742) (0.008920,0.037615) (0.000365,0.027520) (0.016576,0.045289) (0.000346,0.044672) (0.004214,0.004368) (0.000421,0.035386) (0.009515,0.011362) (0.000061,0.010961) (0.008936,0.019547) (0.041456,0.035733) (0.026086,0.019164) (0.042187,0.017159) (0.041822,0.007741) (0.041038,0.026185) (0.033763,0.029399) (0.033629,0.045742) (0.033920,0.037615) (0.025365,0.027520) (0.041576,0.045289) (0.025346,0.044672) (0.029214,0.004368) (0.025421,0.035386) (0.034515,0.011362) (0.025061,0.010961) (0.033936,0.019547) (0.051086,0.019164) (0.050365,0.027520) (0.050346,0.044672) (0.050421,0.035386) (0.050061,0.010961) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.0924_1_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.0924_1_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..5276e6ec25bc022815307e5a409342156a18dd14 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.0924_1_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 3.648148e+01 -2.103989e-03 -2.122348e-03 +1.000000e-02 7.293724e+01 -4.192212e-03 -4.228866e-03 +1.500000e-02 1.093673e+02 -6.264854e-03 -6.319740e-03 +2.000000e-02 1.457716e+02 -8.322101e-03 -8.395157e-03 +2.500000e-02 1.821466e+02 -1.036434e-02 -1.045549e-02 +3.000000e-02 2.184164e+02 -1.239626e-02 -1.250518e-02 +3.500000e-02 2.539471e+02 -1.445480e-02 -1.458054e-02 +4.000000e-02 2.880486e+02 -1.657793e-02 -1.672286e-02 +4.500000e-02 3.215241e+02 -1.872010e-02 -1.888642e-02 +5.000000e-02 3.548005e+02 -2.085806e-02 -2.104634e-02 +5.500000e-02 3.879482e+02 -2.298815e-02 -2.319864e-02 +6.000000e-02 4.209853e+02 -2.510952e-02 -2.534245e-02 +6.500000e-02 4.539238e+02 -2.722169e-02 -2.747726e-02 +7.000000e-02 4.867740e+02 -2.932422e-02 -2.960264e-02 +7.500000e-02 5.195456e+02 -3.141674e-02 -3.171820e-02 +8.000000e-02 5.522474e+02 -3.349892e-02 -3.382361e-02 +8.500000e-02 5.848875e+02 -3.557046e-02 -3.591855e-02 +9.000000e-02 6.174735e+02 -3.763107e-02 -3.800275e-02 +9.500000e-02 6.500122e+02 -3.968053e-02 -4.007596e-02 +1.000000e-01 6.825098e+02 -4.171863e-02 -4.213799e-02 +volume fraction= 0.092363 +fiber_centers_YZ= (0.008491,0.024206) (0.018258,0.017448) (0.019681,0.039940) (0.033491,0.024206) (0.043258,0.017448) (0.044681,0.039940) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.0924_1_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.0924_1_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..69c182660b6773719902687c685f3e2b155064c1 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.0924_1_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 3.846385e+00 +1.000000e-02 7.693922e+00 +1.500000e-02 1.150738e+01 +2.000000e-02 1.496098e+01 +2.500000e-02 1.779356e+01 +3.000000e-02 1.967984e+01 +3.500000e-02 2.073571e+01 +4.000000e-02 2.146290e+01 +4.500000e-02 2.202391e+01 +5.000000e-02 2.246707e+01 +5.500000e-02 2.281713e+01 +6.000000e-02 2.308975e+01 +6.500000e-02 2.329615e+01 +7.000000e-02 2.344566e+01 +7.500000e-02 2.354627e+01 +8.000000e-02 2.360450e+01 +8.500000e-02 2.362666e+01 +9.000000e-02 2.361771e+01 +9.500000e-02 2.358105e+01 +1.000000e-01 2.351874e+01 +volume fraction= 0.092363 +fiber_centers_YZ= (0.008491,0.024206) (0.018258,0.017448) (0.019681,0.039940) (0.033491,0.024206) (0.043258,0.017448) (0.044681,0.039940) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.0924_1_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.0924_1_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..9bbd00e9f28cb3cc4f124ceceb047bab391549b6 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.0924_1_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 6.585268e+00 -3.798902e-04 -3.709943e-03 +1.000000e-02 1.313906e+01 -7.554294e-04 -7.392286e-03 +1.500000e-02 1.966158e+01 -1.126660e-03 -1.104736e-02 +2.000000e-02 2.609707e+01 -1.490917e-03 -1.468494e-02 +2.500000e-02 3.192704e+01 -1.824540e-03 -1.839046e-02 +3.000000e-02 3.633763e+01 -2.093125e-03 -2.229177e-02 +3.500000e-02 3.934751e+01 -2.296361e-03 -2.639253e-02 +4.000000e-02 4.142627e+01 -2.453721e-03 -3.061796e-02 +4.500000e-02 4.295180e+01 -2.580482e-03 -3.490577e-02 +5.000000e-02 4.413109e+01 -2.685266e-03 -3.922089e-02 +5.500000e-02 4.505393e+01 -2.771762e-03 -4.354875e-02 +6.000000e-02 4.576567e+01 -2.842479e-03 -4.788072e-02 +6.500000e-02 4.629794e+01 -2.899316e-03 -5.221084e-02 +7.000000e-02 4.667663e+01 -2.943954e-03 -5.653412e-02 +7.500000e-02 4.692435e+01 -2.977930e-03 -6.084620e-02 +8.000000e-02 4.706114e+01 -3.002655e-03 -6.514323e-02 +8.500000e-02 4.710483e+01 -3.019423e-03 -6.942177e-02 +9.000000e-02 4.707133e+01 -3.029410e-03 -7.367882e-02 +9.500000e-02 4.697473e+01 -3.033682e-03 -7.791176e-02 +1.000000e-01 4.682618e+01 -3.033100e-03 -8.211860e-02 +volume fraction= 0.092363 +fiber_centers_YZ= (0.008491,0.024206) (0.018258,0.017448) (0.019681,0.039940) (0.033491,0.024206) (0.043258,0.017448) (0.044681,0.039940) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.0924_2_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.0924_2_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..0425fe4d5645bf340ab4b84e17ac0862cda7782a --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.0924_2_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 3.648047e+01 -2.105191e-03 -2.120973e-03 +1.000000e-02 7.293519e+01 -4.194616e-03 -4.226118e-03 +1.500000e-02 1.093642e+02 -6.268460e-03 -6.315620e-03 +2.000000e-02 1.457674e+02 -8.326909e-03 -8.389667e-03 +2.500000e-02 1.821414e+02 -1.037035e-02 -1.044863e-02 +3.000000e-02 2.184098e+02 -1.240347e-02 -1.249699e-02 +3.500000e-02 2.539391e+02 -1.446319e-02 -1.457113e-02 +4.000000e-02 2.880394e+02 -1.658769e-02 -1.671202e-02 +4.500000e-02 3.215136e+02 -1.873146e-02 -1.887394e-02 +5.000000e-02 3.547886e+02 -2.087108e-02 -2.103216e-02 +5.500000e-02 3.879349e+02 -2.300287e-02 -2.318273e-02 +6.000000e-02 4.209707e+02 -2.512598e-02 -2.532477e-02 +6.500000e-02 4.539077e+02 -2.723992e-02 -2.745778e-02 +7.000000e-02 4.867565e+02 -2.934427e-02 -2.958134e-02 +7.500000e-02 5.195267e+02 -3.143864e-02 -3.169505e-02 +8.000000e-02 5.522270e+02 -3.352270e-02 -3.379857e-02 +8.500000e-02 5.848657e+02 -3.559615e-02 -3.589161e-02 +9.000000e-02 6.174502e+02 -3.765871e-02 -3.797387e-02 +9.500000e-02 6.499875e+02 -3.971014e-02 -4.004512e-02 +1.000000e-01 6.824836e+02 -4.175024e-02 -4.210515e-02 +volume fraction= 0.092363 +fiber_centers_YZ= (0.006982,0.031023) (0.015419,0.037374) (0.000431,0.014129) (0.031982,0.031023) (0.040419,0.037374) (0.025431,0.014129) (0.050431,0.014129) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.0924_2_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.0924_2_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..6b3293975a56651439b0d811323cc4d2de75ac0c --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.0924_2_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 3.845568e+00 +1.000000e-02 7.692314e+00 +1.500000e-02 1.150318e+01 +2.000000e-02 1.495878e+01 +2.500000e-02 1.780337e+01 +3.000000e-02 1.969611e+01 +3.500000e-02 2.074983e+01 +4.000000e-02 2.147157e+01 +4.500000e-02 2.202759e+01 +5.000000e-02 2.246604e+01 +5.500000e-02 2.281330e+01 +6.000000e-02 2.308092e+01 +6.500000e-02 2.328654e+01 +7.000000e-02 2.343869e+01 +7.500000e-02 2.354574e+01 +8.000000e-02 2.361459e+01 +8.500000e-02 2.365094e+01 +9.000000e-02 2.366054e+01 +9.500000e-02 2.364502e+01 +1.000000e-01 2.360875e+01 +volume fraction= 0.092363 +fiber_centers_YZ= (0.006982,0.031023) (0.015419,0.037374) (0.000431,0.014129) (0.031982,0.031023) (0.040419,0.037374) (0.025431,0.014129) (0.050431,0.014129) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.0924_2_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.0924_2_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..b773dfa2fbbd082ba8a13eefac84a9d98247290f --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.0924_2_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 6.582578e+00 -3.799624e-04 -3.709336e-03 +1.000000e-02 1.313187e+01 -7.554647e-04 -7.391453e-03 +1.500000e-02 1.964816e+01 -1.126553e-03 -1.104666e-02 +2.000000e-02 2.608824e+01 -1.491296e-03 -1.468206e-02 +2.500000e-02 3.198812e+01 -1.829775e-03 -1.836891e-02 +3.000000e-02 3.657897e+01 -2.109750e-03 -2.222755e-02 +3.500000e-02 3.967942e+01 -2.320649e-03 -2.630403e-02 +4.000000e-02 4.173224e+01 -2.480172e-03 -3.052779e-02 +4.500000e-02 4.325495e+01 -2.609638e-03 -3.481069e-02 +5.000000e-02 4.445697e+01 -2.717812e-03 -3.911723e-02 +5.500000e-02 4.541194e+01 -2.808117e-03 -4.343463e-02 +6.000000e-02 4.615879e+01 -2.882688e-03 -4.775578e-02 +6.500000e-02 4.672620e+01 -2.943296e-03 -5.207524e-02 +7.000000e-02 4.713833e+01 -2.991540e-03 -5.638832e-02 +7.500000e-02 4.741532e+01 -3.028856e-03 -6.069102e-02 +8.000000e-02 4.757813e+01 -3.056647e-03 -6.497943e-02 +8.500000e-02 4.764132e+01 -3.075852e-03 -6.925118e-02 +9.000000e-02 4.762138e+01 -3.087976e-03 -7.350228e-02 +9.500000e-02 4.753078e+01 -3.093827e-03 -7.773084e-02 +1.000000e-01 4.738115e+01 -3.094298e-03 -8.193476e-02 +volume fraction= 0.092363 +fiber_centers_YZ= (0.006982,0.031023) (0.015419,0.037374) (0.000431,0.014129) (0.031982,0.031023) (0.040419,0.037374) (0.025431,0.014129) (0.050431,0.014129) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.0924_3_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.0924_3_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..f3fdf5e0c0e31117c4867e28845cd94f5ce01f12 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.0924_3_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 3.647966e+01 -2.117507e-03 -2.108941e-03 +1.000000e-02 7.293360e+01 -4.219203e-03 -4.202097e-03 +1.500000e-02 1.093619e+02 -6.305272e-03 -6.279654e-03 +2.000000e-02 1.457644e+02 -8.375901e-03 -8.341798e-03 +2.500000e-02 1.821377e+02 -1.043146e-02 -1.038891e-02 +3.000000e-02 2.184057e+02 -1.247644e-02 -1.242563e-02 +3.500000e-02 2.539350e+02 -1.454715e-02 -1.448881e-02 +4.000000e-02 2.880349e+02 -1.668410e-02 -1.661730e-02 +4.500000e-02 3.215088e+02 -1.884173e-02 -1.876541e-02 +5.000000e-02 3.547837e+02 -2.099553e-02 -2.090948e-02 +5.500000e-02 3.879298e+02 -2.314161e-02 -2.304578e-02 +6.000000e-02 4.209654e+02 -2.527910e-02 -2.517345e-02 +6.500000e-02 4.539023e+02 -2.740749e-02 -2.729202e-02 +7.000000e-02 4.867509e+02 -2.952634e-02 -2.940104e-02 +7.500000e-02 5.195210e+02 -3.163529e-02 -3.150015e-02 +8.000000e-02 5.522212e+02 -3.373398e-02 -3.358901e-02 +8.500000e-02 5.848598e+02 -3.582212e-02 -3.566732e-02 +9.000000e-02 6.174442e+02 -3.789942e-02 -3.773480e-02 +9.500000e-02 6.499813e+02 -3.996564e-02 -3.979121e-02 +1.000000e-01 6.824773e+02 -4.202058e-02 -4.183636e-02 +volume fraction= 0.092363 +fiber_centers_YZ= (0.015430,0.026650) (0.007692,0.038870) (0.019271,0.010073) (0.040430,0.026650) (0.032692,0.038870) (0.044271,0.010073) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.0924_3_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.0924_3_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..ac6179e5aa3dca4f96bdd808eecd221f6b50400b --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.0924_3_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 3.798436e+00 +1.000000e-02 7.598086e+00 +1.500000e-02 1.138859e+01 +2.000000e-02 1.493777e+01 +2.500000e-02 1.785145e+01 +3.000000e-02 1.968529e+01 +3.500000e-02 2.073961e+01 +4.000000e-02 2.148404e+01 +4.500000e-02 2.205451e+01 +5.000000e-02 2.250052e+01 +5.500000e-02 2.285049e+01 +6.000000e-02 2.312198e+01 +6.500000e-02 2.332708e+01 +7.000000e-02 2.347587e+01 +7.500000e-02 2.357596e+01 +8.000000e-02 2.363347e+01 +8.500000e-02 2.365342e+01 +9.000000e-02 2.364003e+01 +9.500000e-02 2.359379e+01 +1.000000e-01 2.351328e+01 +volume fraction= 0.092363 +fiber_centers_YZ= (0.015430,0.026650) (0.007692,0.038870) (0.019271,0.010073) (0.040430,0.026650) (0.032692,0.038870) (0.044271,0.010073) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.0924_3_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.0924_3_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..7baeb39d6c90999d166d723f302fdd618f529439 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.0924_3_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 6.583632e+00 -3.822756e-04 -3.697460e-03 +1.000000e-02 1.313181e+01 -7.599940e-04 -7.368200e-03 +1.500000e-02 1.964520e+01 -1.133215e-03 -1.101248e-02 +2.000000e-02 2.609742e+01 -1.500730e-03 -1.463481e-02 +2.500000e-02 3.205584e+01 -1.843773e-03 -1.830434e-02 +3.000000e-02 3.657662e+01 -2.120966e-03 -2.217451e-02 +3.500000e-02 3.962953e+01 -2.329606e-03 -2.625871e-02 +4.000000e-02 4.170892e+01 -2.490201e-03 -3.047684e-02 +4.500000e-02 4.324553e+01 -2.620426e-03 -3.475616e-02 +5.000000e-02 4.444432e+01 -2.728673e-03 -3.906216e-02 +5.500000e-02 4.539003e+01 -2.819084e-03 -4.337933e-02 +6.000000e-02 4.612485e+01 -2.893173e-03 -4.770202e-02 +6.500000e-02 4.667847e+01 -2.953077e-03 -5.202368e-02 +7.000000e-02 4.707585e+01 -3.000458e-03 -5.633941e-02 +7.500000e-02 4.733889e+01 -3.036839e-03 -6.064489e-02 +8.000000e-02 4.748719e+01 -3.063622e-03 -6.493627e-02 +8.500000e-02 4.753720e+01 -3.082057e-03 -6.921025e-02 +9.000000e-02 4.750654e+01 -3.093379e-03 -7.346357e-02 +9.500000e-02 4.740807e+01 -3.098608e-03 -7.769374e-02 +1.000000e-01 4.725238e+01 -3.098400e-03 -8.189929e-02 +volume fraction= 0.092363 +fiber_centers_YZ= (0.015430,0.026650) (0.007692,0.038870) (0.019271,0.010073) (0.040430,0.026650) (0.032692,0.038870) (0.044271,0.010073) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.0924_4_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.0924_4_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..fe8428a7c03fd0613de3441d7020a71ee5feac2f --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.0924_4_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 3.647832e+01 -2.115769e-03 -2.110740e-03 +1.000000e-02 7.293094e+01 -4.215732e-03 -4.205689e-03 +1.500000e-02 1.093579e+02 -6.300072e-03 -6.285032e-03 +2.000000e-02 1.457591e+02 -8.368978e-03 -8.348957e-03 +2.500000e-02 1.821311e+02 -1.042283e-02 -1.039784e-02 +3.000000e-02 2.183978e+02 -1.246612e-02 -1.243631e-02 +3.500000e-02 2.539258e+02 -1.453525e-02 -1.450115e-02 +4.000000e-02 2.880243e+02 -1.667041e-02 -1.663150e-02 +4.500000e-02 3.214968e+02 -1.882602e-02 -1.878171e-02 +5.000000e-02 3.547704e+02 -2.097774e-02 -2.092794e-02 +5.500000e-02 3.879152e+02 -2.312170e-02 -2.306643e-02 +6.000000e-02 4.209494e+02 -2.525704e-02 -2.519633e-02 +6.500000e-02 4.538850e+02 -2.738326e-02 -2.731714e-02 +7.000000e-02 4.867324e+02 -2.949993e-02 -2.942843e-02 +7.500000e-02 5.195011e+02 -3.160666e-02 -3.152983e-02 +8.000000e-02 5.522001e+02 -3.370312e-02 -3.362099e-02 +8.500000e-02 5.848374e+02 -3.578900e-02 -3.570162e-02 +9.000000e-02 6.174205e+02 -3.786403e-02 -3.777145e-02 +9.500000e-02 6.499564e+02 -3.992796e-02 -3.983023e-02 +1.000000e-01 6.824512e+02 -4.198058e-02 -4.187775e-02 +volume fraction= 0.092363 +fiber_centers_YZ= (0.017011,0.043902) (0.008299,0.019717) (0.001609,0.009177) (0.042011,0.043902) (0.033299,0.019717) (0.026609,0.009177) (0.051609,0.009177) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.0924_4_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.0924_4_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..25a39ab2102cb26e14ab39098b9684da2159ec00 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.0924_4_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 3.804933e+00 +1.000000e-02 7.611075e+00 +1.500000e-02 1.140667e+01 +2.000000e-02 1.495150e+01 +2.500000e-02 1.786076e+01 +3.000000e-02 1.972224e+01 +3.500000e-02 2.077224e+01 +4.000000e-02 2.150462e+01 +4.500000e-02 2.206902e+01 +5.000000e-02 2.251476e+01 +5.500000e-02 2.286421e+01 +6.000000e-02 2.313630e+01 +6.500000e-02 2.334331e+01 +7.000000e-02 2.349483e+01 +7.500000e-02 2.359864e+01 +8.000000e-02 2.366065e+01 +8.500000e-02 2.368743e+01 +9.000000e-02 2.368245e+01 +9.500000e-02 2.364788e+01 +1.000000e-01 2.358248e+01 +volume fraction= 0.092363 +fiber_centers_YZ= (0.017011,0.043902) (0.008299,0.019717) (0.001609,0.009177) (0.042011,0.043902) (0.033299,0.019717) (0.026609,0.009177) (0.051609,0.009177) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.0924_4_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.0924_4_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..af55a6f3adc8aeb19641784eb1d8d50af9d3d593 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.0924_4_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 6.543912e+00 -3.796490e-04 -3.706838e-03 +1.000000e-02 1.305193e+01 -7.546876e-04 -7.387032e-03 +1.500000e-02 1.952478e+01 -1.125180e-03 -1.104082e-02 +2.000000e-02 2.594052e+01 -1.490171e-03 -1.467196e-02 +2.500000e-02 3.189185e+01 -1.832279e-03 -1.834397e-02 +3.000000e-02 3.643097e+01 -2.110876e-03 -2.220746e-02 +3.500000e-02 3.946541e+01 -2.319434e-03 -2.629071e-02 +4.000000e-02 4.152261e+01 -2.479339e-03 -3.051016e-02 +4.500000e-02 4.304265e+01 -2.608741e-03 -3.479132e-02 +5.000000e-02 4.423004e+01 -2.716523e-03 -3.909803e-02 +5.500000e-02 4.516605e+01 -2.805816e-03 -4.341772e-02 +6.000000e-02 4.589140e+01 -2.879067e-03 -4.774215e-02 +6.500000e-02 4.643532e+01 -2.938083e-03 -5.206573e-02 +7.000000e-02 4.682247e+01 -2.984503e-03 -5.638364e-02 +7.500000e-02 4.707482e+01 -3.019851e-03 -6.069158e-02 +8.000000e-02 4.721216e+01 -3.045542e-03 -6.498567e-02 +8.500000e-02 4.725228e+01 -3.062879e-03 -6.926244e-02 +9.000000e-02 4.721114e+01 -3.073054e-03 -7.351883e-02 +9.500000e-02 4.710125e+01 -3.077077e-03 -7.775236e-02 +1.000000e-01 4.693548e+01 -3.075696e-03 -8.196131e-02 +volume fraction= 0.092363 +fiber_centers_YZ= (0.017011,0.043902) (0.008299,0.019717) (0.001609,0.009177) (0.042011,0.043902) (0.033299,0.019717) (0.026609,0.009177) (0.051609,0.009177) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.0924_5_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.0924_5_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..45860c5ffc705324631d2a8d23c47f60ac803c39 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.0924_5_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 3.648125e+01 -2.089822e-03 -2.136040e-03 +1.000000e-02 7.293671e+01 -4.163896e-03 -4.256238e-03 +1.500000e-02 1.093664e+02 -6.222404e-03 -6.360779e-03 +2.000000e-02 1.457703e+02 -8.265536e-03 -8.449849e-03 +2.500000e-02 1.821448e+02 -1.029370e-02 -1.052380e-02 +3.000000e-02 2.184137e+02 -1.231201e-02 -1.258672e-02 +3.500000e-02 2.539430e+02 -1.435867e-02 -1.467383e-02 +4.000000e-02 2.880437e+02 -1.646771e-02 -1.683007e-02 +4.500000e-02 3.215182e+02 -1.859363e-02 -1.900974e-02 +5.000000e-02 3.547935e+02 -2.071487e-02 -2.118624e-02 +5.500000e-02 3.879400e+02 -2.282808e-02 -2.335531e-02 +6.000000e-02 4.209758e+02 -2.493246e-02 -2.551601e-02 +6.500000e-02 4.539130e+02 -2.702753e-02 -2.766784e-02 +7.000000e-02 4.867619e+02 -2.911289e-02 -2.981034e-02 +7.500000e-02 5.195322e+02 -3.118815e-02 -3.194312e-02 +8.000000e-02 5.522326e+02 -3.325300e-02 -3.406583e-02 +8.500000e-02 5.848714e+02 -3.530712e-02 -3.617815e-02 +9.000000e-02 6.174560e+02 -3.735027e-02 -3.827980e-02 +9.500000e-02 6.499932e+02 -3.938221e-02 -4.037053e-02 +1.000000e-01 6.824895e+02 -4.140275e-02 -4.245013e-02 +volume fraction= 0.092363 +fiber_centers_YZ= (0.020229,0.010806) (0.011700,0.041858) (0.008632,0.008158) (0.045229,0.010806) (0.036700,0.041858) (0.033632,0.008158) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.0924_5_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.0924_5_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..aa09713926899d1b8e99f725e48a29c44a6d4183 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.0924_5_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 3.886391e+00 +1.000000e-02 7.773637e+00 +1.500000e-02 1.155638e+01 +2.000000e-02 1.490445e+01 +2.500000e-02 1.770923e+01 +3.000000e-02 1.963635e+01 +3.500000e-02 2.070798e+01 +4.000000e-02 2.143917e+01 +4.500000e-02 2.200510e+01 +5.000000e-02 2.245386e+01 +5.500000e-02 2.280920e+01 +6.000000e-02 2.308674e+01 +6.500000e-02 2.329792e+01 +7.000000e-02 2.345153e+01 +7.500000e-02 2.355658e+01 +8.000000e-02 2.361870e+01 +8.500000e-02 2.364444e+01 +9.000000e-02 2.364181e+01 +9.500000e-02 2.361388e+01 +1.000000e-01 2.356376e+01 +volume fraction= 0.092363 +fiber_centers_YZ= (0.020229,0.010806) (0.011700,0.041858) (0.008632,0.008158) (0.045229,0.010806) (0.036700,0.041858) (0.033632,0.008158) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.0924_5_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.0924_5_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..7364046d045a537a050782f03b29b6c613913849 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.0924_5_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 6.866061e+00 -3.935731e-04 -3.669518e-03 +1.000000e-02 1.369472e+01 -7.826428e-04 -7.312261e-03 +1.500000e-02 2.046347e+01 -1.166265e-03 -1.093158e-02 +2.000000e-02 2.691164e+01 -1.534303e-03 -1.455964e-02 +2.500000e-02 3.260205e+01 -1.866922e-03 -1.826667e-02 +3.000000e-02 3.709675e+01 -2.142570e-03 -2.213848e-02 +3.500000e-02 4.024154e+01 -2.354171e-03 -2.620823e-02 +4.000000e-02 4.233999e+01 -2.514892e-03 -3.042420e-02 +4.500000e-02 4.386451e+01 -2.644097e-03 -3.470597e-02 +5.000000e-02 4.504646e+01 -2.751306e-03 -3.901475e-02 +5.500000e-02 4.597414e+01 -2.840534e-03 -4.333542e-02 +6.000000e-02 4.669253e+01 -2.914208e-03 -4.765983e-02 +6.500000e-02 4.723878e+01 -2.974408e-03 -5.198140e-02 +7.000000e-02 4.763804e+01 -3.022799e-03 -5.629525e-02 +7.500000e-02 4.791315e+01 -3.060916e-03 -6.059703e-02 +8.000000e-02 4.808239e+01 -3.089939e-03 -6.488355e-02 +8.500000e-02 4.816517e+01 -3.111462e-03 -6.915050e-02 +9.000000e-02 4.817532e+01 -3.126420e-03 -7.339557e-02 +9.500000e-02 4.812567e+01 -3.135792e-03 -7.761637e-02 +1.000000e-01 4.802743e+01 -3.140448e-03 -8.181086e-02 +volume fraction= 0.092363 +fiber_centers_YZ= (0.020229,0.010806) (0.011700,0.041858) (0.008632,0.008158) (0.045229,0.010806) (0.036700,0.041858) (0.033632,0.008158) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.2155_1_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.2155_1_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..dd91605cdf5d051199be10cb76166e3c92b4defc --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.2155_1_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 7.897872e+01 -1.966650e-03 -1.931470e-03 +1.000000e-02 1.578568e+02 -3.918919e-03 -3.848630e-03 +1.500000e-02 2.366343e+02 -5.856972e-03 -5.751644e-03 +2.000000e-02 3.153115e+02 -7.780977e-03 -7.640683e-03 +2.500000e-02 3.938852e+02 -9.691265e-03 -9.516128e-03 +3.000000e-02 4.722881e+02 -1.159183e-02 -1.138283e-02 +3.500000e-02 5.499803e+02 -1.351635e-02 -1.327502e-02 +4.000000e-02 6.264203e+02 -1.550271e-02 -1.522236e-02 +4.500000e-02 7.022937e+02 -1.750858e-02 -1.718487e-02 +5.000000e-02 7.779542e+02 -1.951137e-02 -1.914311e-02 +5.500000e-02 8.534615e+02 -2.150742e-02 -2.109398e-02 +6.000000e-02 9.288324e+02 -2.349591e-02 -2.303675e-02 +6.500000e-02 1.004078e+03 -2.547634e-02 -2.497094e-02 +7.000000e-02 1.079209e+03 -2.744828e-02 -2.689618e-02 +7.500000e-02 1.154235e+03 -2.941136e-02 -2.881212e-02 +8.000000e-02 1.229162e+03 -3.136525e-02 -3.071845e-02 +8.500000e-02 1.304000e+03 -3.330963e-02 -3.261488e-02 +9.000000e-02 1.378755e+03 -3.524423e-02 -3.450117e-02 +9.500000e-02 1.453432e+03 -3.716882e-02 -3.637711e-02 +1.000000e-01 1.528038e+03 -3.908319e-02 -3.824251e-02 +volume fraction= 0.215513 +fiber_centers_YZ= (0.003155,0.012131) (0.012682,0.005047) (0.007000,0.036384) (0.010358,0.044232) (0.005609,0.023951) (0.020294,0.037545) (0.017471,0.019122) (0.028155,0.012131) (0.037682,0.005047) (0.032000,0.036384) (0.035358,0.044232) (0.030609,0.023951) (0.045294,0.037545) (0.042471,0.019122) (0.053155,0.012131) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.2155_1_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.2155_1_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..0446fcd2d3f95be232e684932e884ef62b120418 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.2155_1_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 4.901538e+00 +1.000000e-02 9.802557e+00 +1.500000e-02 1.440132e+01 +2.000000e-02 1.787095e+01 +2.500000e-02 2.012793e+01 +3.000000e-02 2.142895e+01 +3.500000e-02 2.224065e+01 +4.000000e-02 2.279565e+01 +4.500000e-02 2.318661e+01 +5.000000e-02 2.345982e+01 +5.500000e-02 2.364112e+01 +6.000000e-02 2.374450e+01 +6.500000e-02 2.377691e+01 +7.000000e-02 2.373811e+01 +7.500000e-02 2.362164e+01 +8.000000e-02 2.340597e+01 +8.500000e-02 2.312991e+01 +9.000000e-02 2.290255e+01 +9.500000e-02 2.275447e+01 +1.000000e-01 2.265312e+01 +volume fraction= 0.215513 +fiber_centers_YZ= (0.003155,0.012131) (0.012682,0.005047) (0.007000,0.036384) (0.010358,0.044232) (0.005609,0.023951) (0.020294,0.037545) (0.017471,0.019122) (0.028155,0.012131) (0.037682,0.005047) (0.032000,0.036384) (0.035358,0.044232) (0.030609,0.023951) (0.045294,0.037545) (0.042471,0.019122) (0.053155,0.012131) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.2155_1_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.2155_1_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..aa24426df9e66b5bf328da886a27cbe2116eec18 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.2155_1_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 8.869434e+00 -2.211230e-04 -3.676226e-03 +1.000000e-02 1.768201e+01 -4.398062e-04 -7.324926e-03 +1.500000e-02 2.630056e+01 -6.527138e-04 -1.096711e-02 +2.000000e-02 3.392127e+01 -8.420959e-04 -1.471037e-02 +2.500000e-02 3.957224e+01 -9.866889e-04 -1.869048e-02 +3.000000e-02 4.322915e+01 -1.087238e-03 -2.290313e-02 +3.500000e-02 4.561131e+01 -1.158764e-03 -2.724871e-02 +4.000000e-02 4.728790e+01 -1.212682e-03 -3.165205e-02 +4.500000e-02 4.849601e+01 -1.253848e-03 -3.608218e-02 +5.000000e-02 4.935397e+01 -1.284932e-03 -4.052307e-02 +5.500000e-02 4.993711e+01 -1.307811e-03 -4.496409e-02 +6.000000e-02 5.030199e+01 -1.323988e-03 -4.939708e-02 +6.500000e-02 5.049431e+01 -1.334733e-03 -5.381540e-02 +7.000000e-02 5.055223e+01 -1.341142e-03 -5.821356e-02 +7.500000e-02 5.050805e+01 -1.344163e-03 -6.258692e-02 +8.000000e-02 5.038910e+01 -1.344615e-03 -6.693165e-02 +8.500000e-02 5.021551e+01 -1.342994e-03 -7.124565e-02 +9.000000e-02 5.001097e+01 -1.340232e-03 -7.552459e-02 +9.500000e-02 4.978888e+01 -1.336647e-03 -7.976738e-02 +1.000000e-01 4.956066e+01 -1.332601e-03 -8.397270e-02 +volume fraction= 0.215513 +fiber_centers_YZ= (0.003155,0.012131) (0.012682,0.005047) (0.007000,0.036384) (0.010358,0.044232) (0.005609,0.023951) (0.020294,0.037545) (0.017471,0.019122) (0.028155,0.012131) (0.037682,0.005047) (0.032000,0.036384) (0.035358,0.044232) (0.030609,0.023951) (0.045294,0.037545) (0.042471,0.019122) (0.053155,0.012131) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.2155_2_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.2155_2_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..9857a031b1acc0bb24cf40f4ad66eba09a657166 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.2155_2_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 7.898288e+01 -1.882757e-03 -2.011948e-03 +1.000000e-02 1.578643e+02 -3.751334e-03 -4.009419e-03 +1.500000e-02 2.366446e+02 -5.605895e-03 -5.992577e-03 +2.000000e-02 3.153237e+02 -7.446615e-03 -7.961587e-03 +2.500000e-02 3.938985e+02 -9.274043e-03 -9.916649e-03 +3.000000e-02 4.722999e+02 -1.109557e-02 -1.185978e-02 +3.500000e-02 5.499893e+02 -1.294680e-02 -1.382365e-02 +4.000000e-02 6.264289e+02 -1.484323e-02 -1.585899e-02 +4.500000e-02 7.023002e+02 -1.674921e-02 -1.791966e-02 +5.000000e-02 7.779576e+02 -1.864971e-02 -1.997863e-02 +5.500000e-02 8.534614e+02 -2.054233e-02 -2.203154e-02 +6.000000e-02 9.288283e+02 -2.242641e-02 -2.407743e-02 +6.500000e-02 1.004070e+03 -2.430154e-02 -2.611575e-02 +7.000000e-02 1.079196e+03 -2.616737e-02 -2.814604e-02 +7.500000e-02 1.154217e+03 -2.802357e-02 -3.016790e-02 +8.000000e-02 1.229139e+03 -2.986985e-02 -3.218094e-02 +8.500000e-02 1.303972e+03 -3.170594e-02 -3.418484e-02 +9.000000e-02 1.378721e+03 -3.353163e-02 -3.617930e-02 +9.500000e-02 1.453393e+03 -3.534671e-02 -3.816404e-02 +1.000000e-01 1.527994e+03 -3.715102e-02 -4.013884e-02 +volume fraction= 0.215513 +fiber_centers_YZ= (0.007394,0.030534) (0.019526,0.004843) (0.015664,0.040234) (0.009445,0.017336) (0.002497,0.043647) (0.017263,0.022187) (0.000437,0.019808) (0.032394,0.030534) (0.044526,0.004843) (0.040664,0.040234) (0.034445,0.017336) (0.027497,0.043647) (0.042263,0.022187) (0.025437,0.019808) (0.052497,0.043647) (0.050437,0.019808) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.2155_2_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.2155_2_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..60daf81f4b45d2f9b0ee0dbf5a3f0e683573457d --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.2155_2_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 5.246069e+00 +1.000000e-02 1.030290e+01 +1.500000e-02 1.461085e+01 +2.000000e-02 1.791371e+01 +2.500000e-02 2.018639e+01 +3.000000e-02 2.150128e+01 +3.500000e-02 2.226530e+01 +4.000000e-02 2.276749e+01 +4.500000e-02 2.312036e+01 +5.000000e-02 2.337574e+01 +5.500000e-02 2.355905e+01 +6.000000e-02 2.368695e+01 +6.500000e-02 2.377150e+01 +7.000000e-02 2.381591e+01 +7.500000e-02 2.382517e+01 +8.000000e-02 2.380314e+01 +8.500000e-02 2.374164e+01 +9.000000e-02 2.364966e+01 +9.500000e-02 2.354768e+01 +1.000000e-01 2.347304e+01 +volume fraction= 0.215513 +fiber_centers_YZ= (0.007394,0.030534) (0.019526,0.004843) (0.015664,0.040234) (0.009445,0.017336) (0.002497,0.043647) (0.017263,0.022187) (0.000437,0.019808) (0.032394,0.030534) (0.044526,0.004843) (0.040664,0.040234) (0.034445,0.017336) (0.027497,0.043647) (0.042263,0.022187) (0.025437,0.019808) (0.052497,0.043647) (0.050437,0.019808) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.2155_2_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.2155_2_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..8c12a718fd5d012f8247ecee3802cac05251651e --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.2155_2_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 9.086351e+00 -2.168390e-04 -3.743549e-03 +1.000000e-02 1.808134e+01 -4.306924e-04 -7.460505e-03 +1.500000e-02 2.645583e+01 -6.326577e-04 -1.119168e-02 +2.000000e-02 3.365311e+01 -8.106446e-04 -1.500832e-02 +2.500000e-02 3.914879e+01 -9.521394e-04 -1.899881e-02 +3.000000e-02 4.275631e+01 -1.052007e-03 -2.320425e-02 +3.500000e-02 4.512564e+01 -1.123523e-03 -2.754030e-02 +4.000000e-02 4.677941e+01 -1.177218e-03 -3.193772e-02 +4.500000e-02 4.797685e+01 -1.218487e-03 -3.636195e-02 +5.000000e-02 4.884529e+01 -1.250231e-03 -4.079543e-02 +5.500000e-02 4.946332e+01 -1.274305e-03 -4.522750e-02 +6.000000e-02 4.988715e+01 -1.292192e-03 -4.965006e-02 +6.500000e-02 5.015995e+01 -1.305103e-03 -5.405676e-02 +7.000000e-02 5.031619e+01 -1.314051e-03 -5.844245e-02 +7.500000e-02 5.038396e+01 -1.319887e-03 -6.280297e-02 +8.000000e-02 5.038784e+01 -1.323434e-03 -6.713445e-02 +8.500000e-02 5.034396e+01 -1.325091e-03 -7.143521e-02 +9.000000e-02 5.026910e+01 -1.325461e-03 -7.570264e-02 +9.500000e-02 5.017602e+01 -1.324964e-03 -7.993509e-02 +1.000000e-01 5.007474e+01 -1.323938e-03 -8.413139e-02 +volume fraction= 0.215513 +fiber_centers_YZ= (0.007394,0.030534) (0.019526,0.004843) (0.015664,0.040234) (0.009445,0.017336) (0.002497,0.043647) (0.017263,0.022187) (0.000437,0.019808) (0.032394,0.030534) (0.044526,0.004843) (0.040664,0.040234) (0.034445,0.017336) (0.027497,0.043647) (0.042263,0.022187) (0.025437,0.019808) (0.052497,0.043647) (0.050437,0.019808) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.2155_3_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.2155_3_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..be617800f39a5a29693fd318da1333a596215e4d --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.2155_3_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 7.898481e+01 -1.919525e-03 -1.978554e-03 +1.000000e-02 1.578689e+02 -3.824831e-03 -3.942636e-03 +1.500000e-02 2.366526e+02 -5.716083e-03 -5.892412e-03 +2.000000e-02 3.153357e+02 -7.593448e-03 -7.828050e-03 +2.500000e-02 3.939155e+02 -9.457313e-03 -9.749878e-03 +3.000000e-02 4.723245e+02 -1.131256e-02 -1.166184e-02 +3.500000e-02 5.500232e+02 -1.319327e-02 -1.359759e-02 +4.000000e-02 6.264689e+02 -1.512846e-02 -1.559594e-02 +4.500000e-02 7.023482e+02 -1.707831e-02 -1.761437e-02 +5.000000e-02 7.780147e+02 -1.902387e-02 -1.962973e-02 +5.500000e-02 8.535280e+02 -2.096212e-02 -2.163829e-02 +6.000000e-02 9.289049e+02 -2.289234e-02 -2.363920e-02 +6.500000e-02 1.004157e+03 -2.481408e-02 -2.563195e-02 +7.000000e-02 1.079294e+03 -2.672697e-02 -2.761611e-02 +7.500000e-02 1.154325e+03 -2.863066e-02 -2.959131e-02 +8.000000e-02 1.229259e+03 -3.052484e-02 -3.155719e-02 +8.500000e-02 1.304102e+03 -3.240924e-02 -3.351346e-02 +9.000000e-02 1.378863e+03 -3.428361e-02 -3.545982e-02 +9.500000e-02 1.453546e+03 -3.614776e-02 -3.739605e-02 +1.000000e-01 1.528158e+03 -3.800148e-02 -3.932192e-02 +volume fraction= 0.215513 +fiber_centers_YZ= (0.009377,0.011130) (0.010258,0.027236) (0.019437,0.017031) (0.014659,0.038684) (0.002046,0.020549) (0.002484,0.036105) (0.001240,0.004784) (0.034377,0.011130) (0.035258,0.027236) (0.044437,0.017031) (0.039659,0.038684) (0.027046,0.020549) (0.027484,0.036105) (0.026240,0.004784) (0.052046,0.020549) (0.052484,0.036105) (0.051240,0.004784) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.2155_3_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.2155_3_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..bc49ad2e077faa009e6e6ff010c2f9ec5094e909 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.2155_3_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 5.092572e+00 +1.000000e-02 1.014413e+01 +1.500000e-02 1.469148e+01 +2.000000e-02 1.800770e+01 +2.500000e-02 2.022230e+01 +3.000000e-02 2.153189e+01 +3.500000e-02 2.229708e+01 +4.000000e-02 2.279926e+01 +4.500000e-02 2.315245e+01 +5.000000e-02 2.340757e+01 +5.500000e-02 2.358676e+01 +6.000000e-02 2.370668e+01 +6.500000e-02 2.377782e+01 +7.000000e-02 2.381042e+01 +7.500000e-02 2.380548e+01 +8.000000e-02 2.376205e+01 +8.500000e-02 2.367531e+01 +9.000000e-02 2.353586e+01 +9.500000e-02 2.335298e+01 +1.000000e-01 2.315621e+01 +volume fraction= 0.215513 +fiber_centers_YZ= (0.009377,0.011130) (0.010258,0.027236) (0.019437,0.017031) (0.014659,0.038684) (0.002046,0.020549) (0.002484,0.036105) (0.001240,0.004784) (0.034377,0.011130) (0.035258,0.027236) (0.044437,0.017031) (0.039659,0.038684) (0.027046,0.020549) (0.027484,0.036105) (0.026240,0.004784) (0.052046,0.020549) (0.052484,0.036105) (0.051240,0.004784) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.2155_3_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.2155_3_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..7a7584e5fb35a11f56d48e0da10878590a58cb55 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.2155_3_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 8.466969e+00 -2.058866e-04 -3.787416e-03 +1.000000e-02 1.688977e+01 -4.094689e-04 -7.544900e-03 +1.500000e-02 2.520932e+01 -6.096105e-04 -1.127920e-02 +2.000000e-02 3.260094e+01 -7.897779e-04 -1.508623e-02 +2.500000e-02 3.806570e+01 -9.286656e-04 -1.909894e-02 +3.000000e-02 4.164797e+01 -1.026979e-03 -2.331766e-02 +3.500000e-02 4.403288e+01 -1.098162e-03 -2.765706e-02 +4.000000e-02 4.571643e+01 -1.151889e-03 -3.205434e-02 +4.500000e-02 4.692460e+01 -1.192807e-03 -3.647968e-02 +5.000000e-02 4.777737e+01 -1.223605e-03 -4.091656e-02 +5.500000e-02 4.835188e+01 -1.246159e-03 -4.535419e-02 +6.000000e-02 4.870578e+01 -1.261963e-03 -4.978442e-02 +6.500000e-02 4.888515e+01 -1.272259e-03 -5.420082e-02 +7.000000e-02 4.892771e+01 -1.278101e-03 -5.859813e-02 +7.500000e-02 4.886468e+01 -1.280387e-03 -6.297205e-02 +8.000000e-02 4.872213e+01 -1.279885e-03 -6.731902e-02 +8.500000e-02 4.852181e+01 -1.277250e-03 -7.163614e-02 +9.000000e-02 4.828183e+01 -1.273038e-03 -7.592104e-02 +9.500000e-02 4.801717e+01 -1.267717e-03 -8.017182e-02 +1.000000e-01 4.774012e+01 -1.261678e-03 -8.438701e-02 +volume fraction= 0.215513 +fiber_centers_YZ= (0.009377,0.011130) (0.010258,0.027236) (0.019437,0.017031) (0.014659,0.038684) (0.002046,0.020549) (0.002484,0.036105) (0.001240,0.004784) (0.034377,0.011130) (0.035258,0.027236) (0.044437,0.017031) (0.039659,0.038684) (0.027046,0.020549) (0.027484,0.036105) (0.026240,0.004784) (0.052046,0.020549) (0.052484,0.036105) (0.051240,0.004784) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.2155_4_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.2155_4_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..b8fedc9e4002ac2858c72b1b3a6cae8b8699acc9 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.2155_4_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 7.898847e+01 -1.946550e-03 -1.946603e-03 +1.000000e-02 1.578752e+02 -3.878768e-03 -3.878890e-03 +1.500000e-02 2.366604e+02 -5.796820e-03 -5.797024e-03 +2.000000e-02 3.153442e+02 -7.700874e-03 -7.701175e-03 +2.500000e-02 3.939233e+02 -9.591332e-03 -9.591708e-03 +3.000000e-02 4.723274e+02 -1.147321e-02 -1.147335e-02 +3.500000e-02 5.500175e+02 -1.338025e-02 -1.338139e-02 +4.000000e-02 6.264624e+02 -1.534471e-02 -1.534811e-02 +4.500000e-02 7.023370e+02 -1.732669e-02 -1.733209e-02 +5.000000e-02 7.779971e+02 -1.930506e-02 -1.931259e-02 +5.500000e-02 8.535031e+02 -2.127639e-02 -2.128626e-02 +6.000000e-02 9.288723e+02 -2.323988e-02 -2.325230e-02 +6.500000e-02 1.004116e+03 -2.519503e-02 -2.521024e-02 +7.000000e-02 1.079244e+03 -2.714144e-02 -2.715964e-02 +7.500000e-02 1.154266e+03 -2.907873e-02 -2.910014e-02 +8.000000e-02 1.229191e+03 -3.100658e-02 -3.103141e-02 +8.500000e-02 1.304025e+03 -3.292469e-02 -3.295314e-02 +9.000000e-02 1.378775e+03 -3.483280e-02 -3.486505e-02 +9.500000e-02 1.453449e+03 -3.673068e-02 -3.676693e-02 +1.000000e-01 1.528051e+03 -3.861812e-02 -3.865856e-02 +volume fraction= 0.215513 +fiber_centers_YZ= (0.017582,0.029158) (0.011192,0.016262) (0.001649,0.039408) (0.010656,0.044458) (0.000765,0.025227) (0.008158,0.007406) (0.018370,0.037493) (0.042582,0.029158) (0.036192,0.016262) (0.026649,0.039408) (0.035656,0.044458) (0.025765,0.025227) (0.033158,0.007406) (0.043370,0.037493) (0.051649,0.039408) (0.050765,0.025227) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.2155_4_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.2155_4_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..ce8bb396705764cf5c5d1cab3b9f800761a99900 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.2155_4_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 5.006657e+00 +1.000000e-02 9.952647e+00 +1.500000e-02 1.434452e+01 +2.000000e-02 1.779143e+01 +2.500000e-02 2.012123e+01 +3.000000e-02 2.139116e+01 +3.500000e-02 2.215374e+01 +4.000000e-02 2.266945e+01 +4.500000e-02 2.303116e+01 +5.000000e-02 2.328150e+01 +5.500000e-02 2.345608e+01 +6.000000e-02 2.357680e+01 +6.500000e-02 2.365781e+01 +7.000000e-02 2.370792e+01 +7.500000e-02 2.373551e+01 +8.000000e-02 2.373987e+01 +8.500000e-02 2.372637e+01 +9.000000e-02 2.369836e+01 +9.500000e-02 2.365667e+01 +1.000000e-01 2.360097e+01 +volume fraction= 0.215513 +fiber_centers_YZ= (0.017582,0.029158) (0.011192,0.016262) (0.001649,0.039408) (0.010656,0.044458) (0.000765,0.025227) (0.008158,0.007406) (0.018370,0.037493) (0.042582,0.029158) (0.036192,0.016262) (0.026649,0.039408) (0.035656,0.044458) (0.025765,0.025227) (0.033158,0.007406) (0.043370,0.037493) (0.051649,0.039408) (0.050765,0.025227) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.2155_4_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.2155_4_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..c4e15f9f35688cdcdc557289aaee559c844b94c1 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.2155_4_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 8.789074e+00 -2.167987e-04 -3.711496e-03 +1.000000e-02 1.752325e+01 -4.311132e-04 -7.395468e-03 +1.500000e-02 2.607236e+01 -6.406071e-04 -1.106411e-02 +2.000000e-02 3.372993e+01 -8.310412e-04 -1.480059e-02 +2.500000e-02 3.947528e+01 -9.801932e-04 -1.874696e-02 +3.000000e-02 4.319987e+01 -1.084812e-03 -2.293082e-02 +3.500000e-02 4.565994e+01 -1.160309e-03 -2.725088e-02 +4.000000e-02 4.741387e+01 -1.217788e-03 -3.163318e-02 +4.500000e-02 4.870508e+01 -1.262418e-03 -3.604439e-02 +5.000000e-02 4.964210e+01 -1.296610e-03 -4.046940e-02 +5.500000e-02 5.030477e+01 -1.322446e-03 -4.489617e-02 +6.000000e-02 5.074969e+01 -1.341458e-03 -4.931621e-02 +6.500000e-02 5.102064e+01 -1.354894e-03 -5.372285e-02 +7.000000e-02 5.115251e+01 -1.363793e-03 -5.811081e-02 +7.500000e-02 5.117363e+01 -1.369020e-03 -6.247584e-02 +8.000000e-02 5.110727e+01 -1.371300e-03 -6.681453e-02 +8.500000e-02 5.097267e+01 -1.371239e-03 -7.112418e-02 +9.000000e-02 5.078583e+01 -1.369344e-03 -7.540266e-02 +9.500000e-02 5.056014e+01 -1.366042e-03 -7.964829e-02 +1.000000e-01 5.030698e+01 -1.361691e-03 -8.385980e-02 +volume fraction= 0.215513 +fiber_centers_YZ= (0.017582,0.029158) (0.011192,0.016262) (0.001649,0.039408) (0.010656,0.044458) (0.000765,0.025227) (0.008158,0.007406) (0.018370,0.037493) (0.042582,0.029158) (0.036192,0.016262) (0.026649,0.039408) (0.035656,0.044458) (0.025765,0.025227) (0.033158,0.007406) (0.043370,0.037493) (0.051649,0.039408) (0.050765,0.025227) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.2155_5_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.2155_5_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..d63d3c20f116482d601a775f5e2a6e94063a7af6 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.2155_5_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 7.898402e+01 -1.936344e-03 -1.959319e-03 +1.000000e-02 1.578668e+02 -3.858482e-03 -3.904184e-03 +1.500000e-02 2.366486e+02 -5.766579e-03 -5.834762e-03 +2.000000e-02 3.153295e+02 -7.660801e-03 -7.751221e-03 +2.500000e-02 3.939063e+02 -9.541502e-03 -9.653944e-03 +3.000000e-02 4.723108e+02 -1.141307e-02 -1.154769e-02 +3.500000e-02 5.500040e+02 -1.330981e-02 -1.346617e-02 +4.000000e-02 6.264459e+02 -1.526558e-02 -1.544257e-02 +4.500000e-02 7.023201e+02 -1.723872e-02 -1.743645e-02 +5.000000e-02 7.779808e+02 -1.920847e-02 -1.942648e-02 +5.500000e-02 8.534879e+02 -2.117153e-02 -2.140922e-02 +6.000000e-02 9.288584e+02 -2.312710e-02 -2.338384e-02 +6.500000e-02 1.004104e+03 -2.507473e-02 -2.534987e-02 +7.000000e-02 1.079234e+03 -2.701400e-02 -2.730690e-02 +7.500000e-02 1.154258e+03 -2.894455e-02 -2.925455e-02 +8.000000e-02 1.229184e+03 -3.086606e-02 -3.119250e-02 +8.500000e-02 1.304020e+03 -3.277823e-02 -3.312045e-02 +9.000000e-02 1.378773e+03 -3.468080e-02 -3.503814e-02 +9.500000e-02 1.453449e+03 -3.657353e-02 -3.694533e-02 +1.000000e-01 1.528053e+03 -3.845624e-02 -3.884184e-02 +volume fraction= 0.215513 +fiber_centers_YZ= (0.018290,0.031098) (0.005564,0.037487) (0.005984,0.012899) (0.018172,0.039104) (0.017482,0.011714) (0.001027,0.005816) (0.011084,0.027930) (0.043290,0.031098) (0.030564,0.037487) (0.030984,0.012899) (0.043172,0.039104) (0.042482,0.011714) (0.026027,0.005816) (0.036084,0.027930) (0.051027,0.005816) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.2155_5_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.2155_5_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..655fb121859223140ce8234e2ffcba3179327575 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.2155_5_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 5.096197e+00 +1.000000e-02 1.013949e+01 +1.500000e-02 1.458011e+01 +2.000000e-02 1.779803e+01 +2.500000e-02 2.003065e+01 +3.000000e-02 2.141139e+01 +3.500000e-02 2.221243e+01 +4.000000e-02 2.274436e+01 +4.500000e-02 2.312677e+01 +5.000000e-02 2.340922e+01 +5.500000e-02 2.361278e+01 +6.000000e-02 2.375546e+01 +6.500000e-02 2.384558e+01 +7.000000e-02 2.387909e+01 +7.500000e-02 2.383962e+01 +8.000000e-02 2.359345e+01 +8.500000e-02 2.292537e+01 +9.000000e-02 2.254324e+01 +9.500000e-02 2.260492e+01 +1.000000e-01 2.289319e+01 +volume fraction= 0.215513 +fiber_centers_YZ= (0.018290,0.031098) (0.005564,0.037487) (0.005984,0.012899) (0.018172,0.039104) (0.017482,0.011714) (0.001027,0.005816) (0.011084,0.027930) (0.043290,0.031098) (0.030564,0.037487) (0.030984,0.012899) (0.043172,0.039104) (0.042482,0.011714) (0.026027,0.005816) (0.036084,0.027930) (0.051027,0.005816) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.2155_5_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.2155_5_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..78270fc5a316a356591b6eeab83c7268ef7d9a6c --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.2155_5_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 9.190039e+00 -2.256098e-04 -3.665530e-03 +1.000000e-02 1.831030e+01 -4.485282e-04 -7.305211e-03 +1.500000e-02 2.715548e+01 -6.647159e-04 -1.094174e-02 +2.000000e-02 3.454814e+01 -8.513129e-04 -1.470436e-02 +2.500000e-02 3.994205e+01 -9.952197e-04 -1.867816e-02 +3.000000e-02 4.365472e+01 -1.101013e-03 -2.284320e-02 +3.500000e-02 4.617860e+01 -1.178420e-03 -2.714056e-02 +4.000000e-02 4.790168e+01 -1.235504e-03 -3.151726e-02 +4.500000e-02 4.908052e+01 -1.277857e-03 -3.593568e-02 +5.000000e-02 4.988188e+01 -1.309468e-03 -4.037064e-02 +5.500000e-02 5.040219e+01 -1.332612e-03 -4.480849e-02 +6.000000e-02 5.071028e+01 -1.349071e-03 -4.923931e-02 +6.500000e-02 5.085944e+01 -1.360288e-03 -5.365548e-02 +7.000000e-02 5.089267e+01 -1.367479e-03 -5.805083e-02 +7.500000e-02 5.084470e+01 -1.371661e-03 -6.242040e-02 +8.000000e-02 5.074312e+01 -1.373664e-03 -6.676031e-02 +8.500000e-02 5.061367e+01 -1.374385e-03 -7.106642e-02 +9.000000e-02 5.046247e+01 -1.373845e-03 -7.533908e-02 +9.500000e-02 5.030480e+01 -1.372643e-03 -7.957578e-02 +1.000000e-01 5.014815e+01 -1.371048e-03 -8.377565e-02 +volume fraction= 0.215513 +fiber_centers_YZ= (0.018290,0.031098) (0.005564,0.037487) (0.005984,0.012899) (0.018172,0.039104) (0.017482,0.011714) (0.001027,0.005816) (0.011084,0.027930) (0.043290,0.031098) (0.030564,0.037487) (0.030984,0.012899) (0.043172,0.039104) (0.042482,0.011714) (0.026027,0.005816) (0.036084,0.027930) (0.051027,0.005816) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.3079_1_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.3079_1_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..2f8ba443c1a1bce9ee9ced3c0ec21b2f37d4a486 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.3079_1_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.108424e+02 -1.817917e-03 -1.836460e-03 +1.000000e-02 2.214923e+02 -3.622616e-03 -3.659609e-03 +1.500000e-02 3.319504e+02 -5.414249e-03 -5.469599e-03 +2.000000e-02 4.422171e+02 -7.192972e-03 -7.266584e-03 +2.500000e-02 5.522902e+02 -8.959206e-03 -9.050861e-03 +3.000000e-02 6.621079e+02 -1.071808e-02 -1.082637e-02 +3.500000e-02 7.712043e+02 -1.249992e-02 -1.262577e-02 +4.000000e-02 8.791414e+02 -1.433208e-02 -1.447908e-02 +4.500000e-02 9.865114e+02 -1.617898e-02 -1.634799e-02 +5.000000e-02 1.093619e+03 -1.802227e-02 -1.821353e-02 +5.500000e-02 1.200516e+03 -1.985896e-02 -2.007261e-02 +6.000000e-02 1.307219e+03 -2.168831e-02 -2.192450e-02 +6.500000e-02 1.413739e+03 -2.350989e-02 -2.376873e-02 +7.000000e-02 1.520087e+03 -2.532331e-02 -2.560492e-02 +7.500000e-02 1.626270e+03 -2.712824e-02 -2.743271e-02 +8.000000e-02 1.732297e+03 -2.892438e-02 -2.925179e-02 +8.500000e-02 1.838176e+03 -3.071145e-02 -3.106186e-02 +9.000000e-02 1.943912e+03 -3.248922e-02 -3.286269e-02 +9.500000e-02 2.049512e+03 -3.425746e-02 -3.465405e-02 +1.000000e-01 2.154980e+03 -3.601600e-02 -3.643574e-02 +volume fraction= 0.307876 +fiber_centers_YZ= (0.005521,0.014793) (0.008621,0.031003) (0.017029,0.018619) (0.000382,0.004958) (0.015515,0.005576) (0.016849,0.031392) (0.015037,0.044583) (0.001487,0.025261) (0.000044,0.036409) (0.001161,0.045121) (0.030521,0.014793) (0.033621,0.031003) (0.042029,0.018619) (0.025382,0.004958) (0.040515,0.005576) (0.041849,0.031392) (0.040037,0.044583) (0.026487,0.025261) (0.025044,0.036409) (0.026161,0.045121) (0.050382,0.004958) (0.051487,0.025261) (0.050044,0.036409) (0.051161,0.045121) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.3079_1_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.3079_1_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..c4cd60d796430c2c03c59abcacdbf7027410c5c7 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.3079_1_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 6.142858e+00 +1.000000e-02 1.204955e+01 +1.500000e-02 1.683762e+01 +2.000000e-02 1.987152e+01 +2.500000e-02 2.158000e+01 +3.000000e-02 2.254755e+01 +3.500000e-02 2.313654e+01 +4.000000e-02 2.349945e+01 +4.500000e-02 2.371886e+01 +5.000000e-02 2.383455e+01 +5.500000e-02 2.387739e+01 +6.000000e-02 2.385160e+01 +6.500000e-02 2.376854e+01 +7.000000e-02 2.363090e+01 +7.500000e-02 2.344168e+01 +8.000000e-02 2.322073e+01 +8.500000e-02 2.300515e+01 +9.000000e-02 2.284052e+01 +9.500000e-02 2.276130e+01 +1.000000e-01 2.278138e+01 +volume fraction= 0.307876 +fiber_centers_YZ= (0.005521,0.014793) (0.008621,0.031003) (0.017029,0.018619) (0.000382,0.004958) (0.015515,0.005576) (0.016849,0.031392) (0.015037,0.044583) (0.001487,0.025261) (0.000044,0.036409) (0.001161,0.045121) (0.030521,0.014793) (0.033621,0.031003) (0.042029,0.018619) (0.025382,0.004958) (0.040515,0.005576) (0.041849,0.031392) (0.040037,0.044583) (0.026487,0.025261) (0.025044,0.036409) (0.026161,0.045121) (0.050382,0.004958) (0.051487,0.025261) (0.050044,0.036409) (0.051161,0.045121) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.3079_1_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.3079_1_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..2be291fb2b3a33b288087f2b6b07c13f1d8c6ad5 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.3079_1_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.136582e+01 -1.867795e-04 -3.596868e-03 +1.000000e-02 2.265304e+01 -3.717506e-04 -7.165274e-03 +1.500000e-02 3.305648e+01 -5.431628e-04 -1.079135e-02 +2.000000e-02 4.073525e+01 -6.738783e-04 -1.468177e-02 +2.500000e-02 4.557738e+01 -7.615273e-04 -1.886044e-02 +3.000000e-02 4.862090e+01 -8.203080e-04 -2.321689e-02 +3.500000e-02 5.060937e+01 -8.612049e-04 -2.766187e-02 +4.000000e-02 5.191880e+01 -8.899524e-04 -3.214983e-02 +4.500000e-02 5.275999e+01 -9.099999e-04 -3.665469e-02 +5.000000e-02 5.327127e+01 -9.237308e-04 -4.115923e-02 +5.500000e-02 5.355085e+01 -9.329012e-04 -4.565126e-02 +6.000000e-02 5.367165e+01 -9.388441e-04 -5.012196e-02 +6.500000e-02 5.368928e+01 -9.425855e-04 -5.456482e-02 +7.000000e-02 5.364649e+01 -9.449192e-04 -5.897506e-02 +7.500000e-02 5.357570e+01 -9.464568e-04 -6.334919e-02 +8.000000e-02 5.350103e+01 -9.476631e-04 -6.768475e-02 +8.500000e-02 5.343988e+01 -9.488852e-04 -7.198005e-02 +9.000000e-02 5.340431e+01 -9.503758e-04 -7.623403e-02 +9.500000e-02 5.340222e+01 -9.523127e-04 -8.044608e-02 +1.000000e-01 5.343836e+01 -9.548145e-04 -8.461603e-02 +volume fraction= 0.307876 +fiber_centers_YZ= (0.005521,0.014793) (0.008621,0.031003) (0.017029,0.018619) (0.000382,0.004958) (0.015515,0.005576) (0.016849,0.031392) (0.015037,0.044583) (0.001487,0.025261) (0.000044,0.036409) (0.001161,0.045121) (0.030521,0.014793) (0.033621,0.031003) (0.042029,0.018619) (0.025382,0.004958) (0.040515,0.005576) (0.041849,0.031392) (0.040037,0.044583) (0.026487,0.025261) (0.025044,0.036409) (0.026161,0.045121) (0.050382,0.004958) (0.051487,0.025261) (0.050044,0.036409) (0.051161,0.045121) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.3079_2_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.3079_2_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..a61c494eac3d23a6eb7629110f47ced6b8ed9689 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.3079_2_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.108561e+02 -1.821911e-03 -1.823282e-03 +1.000000e-02 2.215172e+02 -3.630476e-03 -3.633468e-03 +1.500000e-02 3.319840e+02 -5.425846e-03 -5.430707e-03 +2.000000e-02 4.422569e+02 -7.208187e-03 -7.215150e-03 +2.500000e-02 5.523331e+02 -8.978292e-03 -8.986901e-03 +3.000000e-02 6.621459e+02 -1.074511e-02 -1.074798e-02 +3.500000e-02 7.712378e+02 -1.253849e-02 -1.253125e-02 +4.000000e-02 8.791765e+02 -1.437834e-02 -1.437098e-02 +4.500000e-02 9.865417e+02 -1.623275e-02 -1.622702e-02 +5.000000e-02 1.093641e+03 -1.808391e-02 -1.807983e-02 +5.500000e-02 1.200529e+03 -1.992873e-02 -1.992633e-02 +6.000000e-02 1.307221e+03 -2.176644e-02 -2.176577e-02 +6.500000e-02 1.413729e+03 -2.359659e-02 -2.359768e-02 +7.000000e-02 1.520064e+03 -2.541875e-02 -2.542169e-02 +7.500000e-02 1.626233e+03 -2.723256e-02 -2.723743e-02 +8.000000e-02 1.732245e+03 -2.903769e-02 -2.904459e-02 +8.500000e-02 1.838108e+03 -3.083383e-02 -3.084291e-02 +9.000000e-02 1.943827e+03 -3.262071e-02 -3.263214e-02 +9.500000e-02 2.049410e+03 -3.439808e-02 -3.441206e-02 +1.000000e-01 2.154861e+03 -3.616573e-02 -3.618250e-02 +volume fraction= 0.307876 +fiber_centers_YZ= (0.007089,0.026395) (0.014143,0.016671) (0.012833,0.044199) (0.014419,0.005536) (0.015913,0.035763) (0.001590,0.011733) (0.000387,0.037182) (0.019545,0.027218) (0.001920,0.019720) (0.008152,0.034118) (0.032089,0.026395) (0.039143,0.016671) (0.037833,0.044199) (0.039419,0.005536) (0.040913,0.035763) (0.026590,0.011733) (0.025387,0.037182) (0.044545,0.027218) (0.026920,0.019720) (0.033152,0.034118) (0.051590,0.011733) (0.050387,0.037182) (0.051920,0.019720) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.3079_2_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.3079_2_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..f3d93cf518b4e536218fe99433a06e5c67af3eba --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.3079_2_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 6.215971e+00 +1.000000e-02 1.198151e+01 +1.500000e-02 1.669290e+01 +2.000000e-02 1.980318e+01 +2.500000e-02 2.162303e+01 +3.000000e-02 2.262129e+01 +3.500000e-02 2.320664e+01 +4.000000e-02 2.356693e+01 +4.500000e-02 2.378932e+01 +5.000000e-02 2.392014e+01 +5.500000e-02 2.397174e+01 +6.000000e-02 2.395767e+01 +6.500000e-02 2.387964e+01 +7.000000e-02 2.373654e+01 +7.500000e-02 2.354076e+01 +8.000000e-02 2.333294e+01 +8.500000e-02 2.318851e+01 +9.000000e-02 2.314231e+01 +9.500000e-02 2.319080e+01 +1.000000e-01 2.328561e+01 +volume fraction= 0.307876 +fiber_centers_YZ= (0.007089,0.026395) (0.014143,0.016671) (0.012833,0.044199) (0.014419,0.005536) (0.015913,0.035763) (0.001590,0.011733) (0.000387,0.037182) (0.019545,0.027218) (0.001920,0.019720) (0.008152,0.034118) (0.032089,0.026395) (0.039143,0.016671) (0.037833,0.044199) (0.039419,0.005536) (0.040913,0.035763) (0.026590,0.011733) (0.025387,0.037182) (0.044545,0.027218) (0.026920,0.019720) (0.033152,0.034118) (0.051590,0.011733) (0.050387,0.037182) (0.051920,0.019720) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.3079_2_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.3079_2_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..c775d1b5026c73dee04e774838011c0b5524ef92 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.3079_2_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.204279e+01 -1.984547e-04 -3.508314e-03 +1.000000e-02 2.369828e+01 -3.915973e-04 -7.009238e-03 +1.500000e-02 3.399914e+01 -5.666088e-04 -1.058631e-02 +2.000000e-02 4.184957e+01 -7.044486e-04 -1.440140e-02 +2.500000e-02 4.706928e+01 -8.018721e-04 -1.848870e-02 +3.000000e-02 5.035824e+01 -8.685100e-04 -2.277702e-02 +3.500000e-02 5.247432e+01 -9.151924e-04 -2.717604e-02 +4.000000e-02 5.388229e+01 -9.489201e-04 -3.162799e-02 +4.500000e-02 5.482568e+01 -9.735267e-04 -3.610262e-02 +5.000000e-02 5.545506e+01 -9.916217e-04 -4.058032e-02 +5.500000e-02 5.587231e+01 -1.005088e-03 -4.504753e-02 +6.000000e-02 5.614800e+01 -1.015288e-03 -4.949480e-02 +6.500000e-02 5.633046e+01 -1.023191e-03 -5.391572e-02 +7.000000e-02 5.645224e+01 -1.029472e-03 -5.830608e-02 +7.500000e-02 5.653812e+01 -1.034738e-03 -6.266223e-02 +8.000000e-02 5.659652e+01 -1.039036e-03 -6.698431e-02 +8.500000e-02 5.664007e+01 -1.042736e-03 -7.127032e-02 +9.000000e-02 5.667578e+01 -1.046012e-03 -7.551957e-02 +9.500000e-02 5.670851e+01 -1.048991e-03 -7.973167e-02 +1.000000e-01 5.674211e+01 -1.051773e-03 -8.390637e-02 +volume fraction= 0.307876 +fiber_centers_YZ= (0.007089,0.026395) (0.014143,0.016671) (0.012833,0.044199) (0.014419,0.005536) (0.015913,0.035763) (0.001590,0.011733) (0.000387,0.037182) (0.019545,0.027218) (0.001920,0.019720) (0.008152,0.034118) (0.032089,0.026395) (0.039143,0.016671) (0.037833,0.044199) (0.039419,0.005536) (0.040913,0.035763) (0.026590,0.011733) (0.025387,0.037182) (0.044545,0.027218) (0.026920,0.019720) (0.033152,0.034118) (0.051590,0.011733) (0.050387,0.037182) (0.051920,0.019720) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.3079_3_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.3079_3_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..ffa3b97429b41510a676b37be7304f5443f53423 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.3079_3_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.108436e+02 -1.770448e-03 -1.881788e-03 +1.000000e-02 2.214942e+02 -3.527680e-03 -3.750282e-03 +1.500000e-02 3.319523e+02 -5.271851e-03 -5.605632e-03 +2.000000e-02 4.422185e+02 -7.003120e-03 -7.447990e-03 +2.500000e-02 5.522904e+02 -8.722072e-03 -9.277513e-03 +3.000000e-02 6.621051e+02 -1.043631e-02 -1.109602e-02 +3.500000e-02 7.711979e+02 -1.217768e-02 -1.293490e-02 +4.000000e-02 8.791330e+02 -1.395762e-02 -1.483921e-02 +4.500000e-02 9.864999e+02 -1.574519e-02 -1.676630e-02 +5.000000e-02 1.093603e+03 -1.752726e-02 -1.869200e-02 +5.500000e-02 1.200496e+03 -1.930166e-02 -2.061239e-02 +6.000000e-02 1.307195e+03 -2.106779e-02 -2.252658e-02 +6.500000e-02 1.413711e+03 -2.282526e-02 -2.443405e-02 +7.000000e-02 1.520053e+03 -2.457374e-02 -2.633438e-02 +7.500000e-02 1.626232e+03 -2.631291e-02 -2.822716e-02 +8.000000e-02 1.732254e+03 -2.804251e-02 -3.011205e-02 +8.500000e-02 1.838127e+03 -2.976229e-02 -3.198872e-02 +9.000000e-02 1.943857e+03 -3.147204e-02 -3.385688e-02 +9.500000e-02 2.049452e+03 -3.317158e-02 -3.571628e-02 +1.000000e-01 2.154915e+03 -3.486076e-02 -3.756669e-02 +volume fraction= 0.307876 +fiber_centers_YZ= (0.017280,0.019825) (0.012754,0.037733) (0.013645,0.009306) (0.001186,0.020186) (0.000387,0.032134) (0.000433,0.004250) (0.003694,0.039403) (0.016663,0.030248) (0.007258,0.028537) (0.019621,0.045758) (0.042280,0.019825) (0.037754,0.037733) (0.038645,0.009306) (0.026186,0.020186) (0.025387,0.032134) (0.025433,0.004250) (0.028694,0.039403) (0.041663,0.030248) (0.032258,0.028537) (0.044621,0.045758) (0.051186,0.020186) (0.050387,0.032134) (0.050433,0.004250) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.3079_3_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.3079_3_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..cd173e29cc748c1bf610bc43ef7a759829dbdffc --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.3079_3_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 6.383076e+00 +1.000000e-02 1.233673e+01 +1.500000e-02 1.694176e+01 +2.000000e-02 2.000945e+01 +2.500000e-02 2.176887e+01 +3.000000e-02 2.272568e+01 +3.500000e-02 2.328135e+01 +4.000000e-02 2.361256e+01 +4.500000e-02 2.380197e+01 +5.000000e-02 2.390517e+01 +5.500000e-02 2.394796e+01 +6.000000e-02 2.395242e+01 +6.500000e-02 2.393075e+01 +7.000000e-02 2.389466e+01 +7.500000e-02 2.384345e+01 +8.000000e-02 2.378240e+01 +8.500000e-02 2.373028e+01 +9.000000e-02 2.371411e+01 +9.500000e-02 2.373317e+01 +1.000000e-01 2.377018e+01 +volume fraction= 0.307876 +fiber_centers_YZ= (0.017280,0.019825) (0.012754,0.037733) (0.013645,0.009306) (0.001186,0.020186) (0.000387,0.032134) (0.000433,0.004250) (0.003694,0.039403) (0.016663,0.030248) (0.007258,0.028537) (0.019621,0.045758) (0.042280,0.019825) (0.037754,0.037733) (0.038645,0.009306) (0.026186,0.020186) (0.025387,0.032134) (0.025433,0.004250) (0.028694,0.039403) (0.041663,0.030248) (0.032258,0.028537) (0.044621,0.045758) (0.051186,0.020186) (0.050387,0.032134) (0.050433,0.004250) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.3079_3_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.3079_3_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..45d4306a0181b610256df478ff0e51f1f52024ab --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.3079_3_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.152701e+01 -1.845187e-04 -3.646236e-03 +1.000000e-02 2.273190e+01 -3.643278e-04 -7.279829e-03 +1.500000e-02 3.257213e+01 -5.262594e-04 -1.098315e-02 +2.000000e-02 4.002095e+01 -6.539248e-04 -1.488803e-02 +2.500000e-02 4.489920e+01 -7.427053e-04 -1.904642e-02 +3.000000e-02 4.794769e+01 -8.027509e-04 -2.338385e-02 +3.500000e-02 4.994637e+01 -8.451837e-04 -2.781080e-02 +4.000000e-02 5.131016e+01 -8.760807e-04 -3.227878e-02 +4.500000e-02 5.225207e+01 -8.987884e-04 -3.676218e-02 +5.000000e-02 5.289485e+01 -9.153900e-04 -4.124582e-02 +5.500000e-02 5.332011e+01 -9.273523e-04 -4.571943e-02 +6.000000e-02 5.358967e+01 -9.359103e-04 -5.017462e-02 +6.500000e-02 5.374198e+01 -9.416807e-04 -5.460725e-02 +7.000000e-02 5.381076e+01 -9.453473e-04 -5.901294e-02 +7.500000e-02 5.382847e+01 -9.477241e-04 -6.338659e-02 +8.000000e-02 5.381386e+01 -9.491492e-04 -6.772627e-02 +8.500000e-02 5.378329e+01 -9.499837e-04 -7.202999e-02 +9.000000e-02 5.374963e+01 -9.505170e-04 -7.629625e-02 +9.500000e-02 5.372272e+01 -9.509748e-04 -8.052402e-02 +1.000000e-01 5.370983e+01 -9.515297e-04 -8.471264e-02 +volume fraction= 0.307876 +fiber_centers_YZ= (0.017280,0.019825) (0.012754,0.037733) (0.013645,0.009306) (0.001186,0.020186) (0.000387,0.032134) (0.000433,0.004250) (0.003694,0.039403) (0.016663,0.030248) (0.007258,0.028537) (0.019621,0.045758) (0.042280,0.019825) (0.037754,0.037733) (0.038645,0.009306) (0.026186,0.020186) (0.025387,0.032134) (0.025433,0.004250) (0.028694,0.039403) (0.041663,0.030248) (0.032258,0.028537) (0.044621,0.045758) (0.051186,0.020186) (0.050387,0.032134) (0.050433,0.004250) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.3079_4_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.3079_4_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..9ef65c0f050726d2656c75d1efab021c6dcd5ef9 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.3079_4_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.108336e+02 -1.833262e-03 -1.822508e-03 +1.000000e-02 2.214750e+02 -3.653282e-03 -3.631721e-03 +1.500000e-02 3.319250e+02 -5.460213e-03 -5.427792e-03 +2.000000e-02 4.421840e+02 -7.254207e-03 -7.210877e-03 +2.500000e-02 5.522498e+02 -9.035587e-03 -8.981343e-03 +3.000000e-02 6.620616e+02 -1.080839e-02 -1.074388e-02 +3.500000e-02 7.711519e+02 -1.260422e-02 -1.252989e-02 +4.000000e-02 8.790814e+02 -1.445425e-02 -1.436632e-02 +4.500000e-02 9.864453e+02 -1.632056e-02 -1.621675e-02 +5.000000e-02 1.093547e+03 -1.818373e-02 -1.806324e-02 +5.500000e-02 1.200438e+03 -2.004061e-02 -1.990291e-02 +6.000000e-02 1.307137e+03 -2.189044e-02 -2.173504e-02 +6.500000e-02 1.413652e+03 -2.373275e-02 -2.355920e-02 +7.000000e-02 1.519995e+03 -2.556716e-02 -2.537502e-02 +7.500000e-02 1.626174e+03 -2.739332e-02 -2.718215e-02 +8.000000e-02 1.732197e+03 -2.921091e-02 -2.898030e-02 +8.500000e-02 1.838071e+03 -3.101965e-02 -3.076921e-02 +9.000000e-02 1.943803e+03 -3.281927e-02 -3.254863e-02 +9.500000e-02 2.049399e+03 -3.460956e-02 -3.431836e-02 +1.000000e-01 2.154864e+03 -3.639032e-02 -3.607823e-02 +volume fraction= 0.307876 +fiber_centers_YZ= (0.015401,0.045098) (0.018564,0.032604) (0.002415,0.016701) (0.012023,0.010941) (0.004346,0.028131) (0.001127,0.005490) (0.001834,0.041928) (0.018921,0.020165) (0.009895,0.035530) (0.016456,0.004341) (0.040401,0.045098) (0.043564,0.032604) (0.027415,0.016701) (0.037023,0.010941) (0.029346,0.028131) (0.026127,0.005490) (0.026834,0.041928) (0.043921,0.020165) (0.034895,0.035530) (0.041456,0.004341) (0.052415,0.016701) (0.051127,0.005490) (0.051834,0.041928) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.3079_4_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.3079_4_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..b675876544560e3f6aea1056fa830161fb086097 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.3079_4_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 6.081829e+00 +1.000000e-02 1.210085e+01 +1.500000e-02 1.696586e+01 +2.000000e-02 2.004606e+01 +2.500000e-02 2.179021e+01 +3.000000e-02 2.274581e+01 +3.500000e-02 2.330942e+01 +4.000000e-02 2.364405e+01 +4.500000e-02 2.383626e+01 +5.000000e-02 2.391306e+01 +5.500000e-02 2.389216e+01 +6.000000e-02 2.374366e+01 +6.500000e-02 2.325682e+01 +7.000000e-02 2.265864e+01 +7.500000e-02 2.251771e+01 +8.000000e-02 2.274678e+01 +8.500000e-02 2.311519e+01 +9.000000e-02 2.345417e+01 +9.500000e-02 2.364298e+01 +1.000000e-01 2.363760e+01 +volume fraction= 0.307876 +fiber_centers_YZ= (0.015401,0.045098) (0.018564,0.032604) (0.002415,0.016701) (0.012023,0.010941) (0.004346,0.028131) (0.001127,0.005490) (0.001834,0.041928) (0.018921,0.020165) (0.009895,0.035530) (0.016456,0.004341) (0.040401,0.045098) (0.043564,0.032604) (0.027415,0.016701) (0.037023,0.010941) (0.029346,0.028131) (0.026127,0.005490) (0.026834,0.041928) (0.043921,0.020165) (0.034895,0.035530) (0.041456,0.004341) (0.052415,0.016701) (0.051127,0.005490) (0.051834,0.041928) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.3079_4_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.3079_4_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..f6302bcd3872f6a04a82254df9fe25b244982076 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.3079_4_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.070214e+01 -1.772756e-04 -3.657002e-03 +1.000000e-02 2.133651e+01 -3.527172e-04 -7.285526e-03 +1.500000e-02 3.150377e+01 -5.203719e-04 -1.093036e-02 +2.000000e-02 3.929755e+01 -6.519625e-04 -1.481003e-02 +2.500000e-02 4.414918e+01 -7.389475e-04 -1.899231e-02 +3.000000e-02 4.724640e+01 -7.983689e-04 -2.334178e-02 +3.500000e-02 4.927958e+01 -8.401509e-04 -2.777805e-02 +4.000000e-02 5.060624e+01 -8.695069e-04 -3.225970e-02 +4.500000e-02 5.143770e+01 -8.896156e-04 -3.676259e-02 +5.000000e-02 5.191645e+01 -9.028251e-04 -4.126973e-02 +5.500000e-02 5.214766e+01 -9.109290e-04 -4.576866e-02 +6.000000e-02 5.221864e+01 -9.156528e-04 -5.024772e-02 +6.500000e-02 5.218510e+01 -9.179689e-04 -5.470056e-02 +7.000000e-02 5.209642e+01 -9.188607e-04 -5.912093e-02 +7.500000e-02 5.198237e+01 -9.189107e-04 -6.350532e-02 +8.000000e-02 5.186569e+01 -9.186937e-04 -6.785036e-02 +8.500000e-02 5.176423e+01 -9.185677e-04 -7.215424e-02 +9.000000e-02 5.167093e+01 -9.182879e-04 -7.641911e-02 +9.500000e-02 5.160433e+01 -9.182775e-04 -8.064277e-02 +1.000000e-01 5.154913e+01 -9.184769e-04 -8.482603e-02 +volume fraction= 0.307876 +fiber_centers_YZ= (0.015401,0.045098) (0.018564,0.032604) (0.002415,0.016701) (0.012023,0.010941) (0.004346,0.028131) (0.001127,0.005490) (0.001834,0.041928) (0.018921,0.020165) (0.009895,0.035530) (0.016456,0.004341) (0.040401,0.045098) (0.043564,0.032604) (0.027415,0.016701) (0.037023,0.010941) (0.029346,0.028131) (0.026127,0.005490) (0.026834,0.041928) (0.043921,0.020165) (0.034895,0.035530) (0.041456,0.004341) (0.052415,0.016701) (0.051127,0.005490) (0.051834,0.041928) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.3079_5_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.3079_5_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..f5aa6804b01acea1b4b848917bddef792c2f4a44 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.3079_5_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.108472e+02 -1.806295e-03 -1.843859e-03 +1.000000e-02 2.215006e+02 -3.599336e-03 -3.674496e-03 +1.500000e-02 3.319611e+02 -5.379274e-03 -5.492062e-03 +2.000000e-02 4.422291e+02 -7.146267e-03 -7.296710e-03 +2.500000e-02 5.523021e+02 -8.900769e-03 -9.088737e-03 +3.000000e-02 6.621172e+02 -1.064854e-02 -1.087193e-02 +3.500000e-02 7.712096e+02 -1.242128e-02 -1.267788e-02 +4.000000e-02 8.791447e+02 -1.424082e-02 -1.454107e-02 +4.500000e-02 9.865106e+02 -1.607236e-02 -1.642286e-02 +5.000000e-02 1.093612e+03 -1.789948e-02 -1.830229e-02 +5.500000e-02 1.200503e+03 -1.971951e-02 -2.017593e-02 +6.000000e-02 1.307200e+03 -2.153175e-02 -2.204299e-02 +6.500000e-02 1.413713e+03 -2.333579e-02 -2.390298e-02 +7.000000e-02 1.520052e+03 -2.513124e-02 -2.575549e-02 +7.500000e-02 1.626227e+03 -2.691778e-02 -2.760015e-02 +8.000000e-02 1.732245e+03 -2.869510e-02 -2.943663e-02 +8.500000e-02 1.838115e+03 -3.046295e-02 -3.126464e-02 +9.000000e-02 1.943841e+03 -3.222108e-02 -3.308389e-02 +9.500000e-02 2.049431e+03 -3.396929e-02 -3.489416e-02 +1.000000e-01 2.154890e+03 -3.570741e-02 -3.669523e-02 +volume fraction= 0.307876 +fiber_centers_YZ= (0.014671,0.008729) (0.002283,0.031141) (0.017886,0.030781) (0.001426,0.043121) (0.019099,0.045561) (0.000573,0.018562) (0.006577,0.024322) (0.000826,0.005368) (0.013269,0.016844) (0.012167,0.040660) (0.039671,0.008729) (0.027283,0.031141) (0.042886,0.030781) (0.026426,0.043121) (0.044099,0.045561) (0.025573,0.018562) (0.031577,0.024322) (0.025826,0.005368) (0.038269,0.016844) (0.037167,0.040660) (0.052283,0.031141) (0.051426,0.043121) (0.050573,0.018562) (0.050826,0.005368) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.3079_5_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.3079_5_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..6b5555c1ed3c94dc2590e20fbb27776a4b5f3b48 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.3079_5_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 6.234429e+00 +1.000000e-02 1.221792e+01 +1.500000e-02 1.695452e+01 +2.000000e-02 2.000022e+01 +2.500000e-02 2.175335e+01 +3.000000e-02 2.271978e+01 +3.500000e-02 2.329098e+01 +4.000000e-02 2.364965e+01 +4.500000e-02 2.387833e+01 +5.000000e-02 2.402037e+01 +5.500000e-02 2.409866e+01 +6.000000e-02 2.413147e+01 +6.500000e-02 2.413557e+01 +7.000000e-02 2.411164e+01 +7.500000e-02 2.407217e+01 +8.000000e-02 2.402040e+01 +8.500000e-02 2.395525e+01 +9.000000e-02 2.388345e+01 +9.500000e-02 2.380899e+01 +1.000000e-01 2.372968e+01 +volume fraction= 0.307876 +fiber_centers_YZ= (0.014671,0.008729) (0.002283,0.031141) (0.017886,0.030781) (0.001426,0.043121) (0.019099,0.045561) (0.000573,0.018562) (0.006577,0.024322) (0.000826,0.005368) (0.013269,0.016844) (0.012167,0.040660) (0.039671,0.008729) (0.027283,0.031141) (0.042886,0.030781) (0.026426,0.043121) (0.044099,0.045561) (0.025573,0.018562) (0.031577,0.024322) (0.025826,0.005368) (0.038269,0.016844) (0.037167,0.040660) (0.052283,0.031141) (0.051426,0.043121) (0.050573,0.018562) (0.050826,0.005368) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.3079_5_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.3079_5_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..2e690274cf321d50e87d69bae9ec681e919410e4 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.3079_5_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.108035e+01 -1.808664e-04 -3.648250e-03 +1.000000e-02 2.203652e+01 -3.593258e-04 -7.271075e-03 +1.500000e-02 3.210439e+01 -5.255188e-04 -1.093346e-02 +2.000000e-02 3.952551e+01 -6.527808e-04 -1.484203e-02 +2.500000e-02 4.419450e+01 -7.380788e-04 -1.903021e-02 +3.000000e-02 4.716728e+01 -7.962904e-04 -2.338199e-02 +3.500000e-02 4.910410e+01 -8.369105e-04 -2.782122e-02 +4.000000e-02 5.035257e+01 -8.649753e-04 -3.230767e-02 +4.500000e-02 5.112029e+01 -8.839326e-04 -3.681516e-02 +5.000000e-02 5.154370e+01 -8.960032e-04 -4.132748e-02 +5.500000e-02 5.172962e+01 -9.031866e-04 -4.583063e-02 +6.000000e-02 5.175956e+01 -9.069567e-04 -5.031449e-02 +6.500000e-02 5.170113e+01 -9.086077e-04 -5.477042e-02 +7.000000e-02 5.160264e+01 -9.091018e-04 -5.919213e-02 +7.500000e-02 5.149469e+01 -9.090849e-04 -6.357559e-02 +8.000000e-02 5.140396e+01 -9.091045e-04 -6.791756e-02 +8.500000e-02 5.133894e+01 -9.094249e-04 -7.221675e-02 +9.000000e-02 5.131106e+01 -9.102983e-04 -7.647206e-02 +9.500000e-02 5.131312e+01 -9.115084e-04 -8.068543e-02 +1.000000e-01 5.135024e+01 -9.132661e-04 -8.485608e-02 +volume fraction= 0.307876 +fiber_centers_YZ= (0.014671,0.008729) (0.002283,0.031141) (0.017886,0.030781) (0.001426,0.043121) (0.019099,0.045561) (0.000573,0.018562) (0.006577,0.024322) (0.000826,0.005368) (0.013269,0.016844) (0.012167,0.040660) (0.039671,0.008729) (0.027283,0.031141) (0.042886,0.030781) (0.026426,0.043121) (0.044099,0.045561) (0.025573,0.018562) (0.031577,0.024322) (0.025826,0.005368) (0.038269,0.016844) (0.037167,0.040660) (0.052283,0.031141) (0.051426,0.043121) (0.050573,0.018562) (0.050826,0.005368) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4002_1_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4002_1_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..762f299ca321ff71bea7b3924e832f71e7e82583 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4002_1_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.426959e+02 -1.760310e-03 -1.643354e-03 +1.000000e-02 2.850744e+02 -3.508521e-03 -3.274526e-03 +1.500000e-02 4.271370e+02 -5.244768e-03 -4.893657e-03 +2.000000e-02 5.688850e+02 -6.969186e-03 -6.500896e-03 +2.500000e-02 7.103168e+02 -8.681990e-03 -8.096892e-03 +3.000000e-02 8.513734e+02 -1.038651e-02 -9.689098e-03 +3.500000e-02 9.916710e+02 -1.211584e-02 -1.130142e-02 +4.000000e-02 1.130870e+03 -1.390549e-02 -1.294279e-02 +4.500000e-02 1.269458e+03 -1.571707e-02 -1.458864e-02 +5.000000e-02 1.407697e+03 -1.752896e-02 -1.622803e-02 +5.500000e-02 1.545634e+03 -1.933749e-02 -1.785912e-02 +6.000000e-02 1.683286e+03 -2.114180e-02 -1.948139e-02 +6.500000e-02 1.820664e+03 -2.294137e-02 -2.109451e-02 +7.000000e-02 1.957778e+03 -2.473574e-02 -2.269818e-02 +7.500000e-02 2.094636e+03 -2.652450e-02 -2.429214e-02 +8.000000e-02 2.231248e+03 -2.830727e-02 -2.587617e-02 +8.500000e-02 2.367620e+03 -3.008370e-02 -2.745009e-02 +9.000000e-02 2.503759e+03 -3.185346e-02 -2.901371e-02 +9.500000e-02 2.639670e+03 -3.361626e-02 -3.056692e-02 +1.000000e-01 2.775360e+03 -3.537184e-02 -3.210959e-02 +volume fraction= 0.400239 +fiber_centers_YZ= (0.010892,0.018051) (0.000975,0.041662) (0.009854,0.039577) (0.013192,0.030748) (0.017159,0.043584) (0.003515,0.011639) (0.002189,0.026107) (0.017234,0.010333) (0.011821,0.004835) (0.000080,0.004444) (0.017154,0.023654) (0.003720,0.034257) (0.000200,0.018625) (0.035892,0.018051) (0.025975,0.041662) (0.034854,0.039577) (0.038192,0.030748) (0.042159,0.043584) (0.028515,0.011639) (0.027189,0.026107) (0.042234,0.010333) (0.036821,0.004835) (0.025080,0.004444) (0.042154,0.023654) (0.028720,0.034257) (0.025200,0.018625) (0.050975,0.041662) (0.052189,0.026107) (0.050080,0.004444) (0.050200,0.018625) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4002_1_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4002_1_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..8fe703f7e8641bc3dcc41ff55cb065e86477dd9a --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4002_1_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 7.594326e+00 +1.000000e-02 1.468459e+01 +1.500000e-02 1.936973e+01 +2.000000e-02 2.188644e+01 +2.500000e-02 2.310958e+01 +3.000000e-02 2.368339e+01 +3.500000e-02 2.395725e+01 +4.000000e-02 2.405506e+01 +4.500000e-02 2.405257e+01 +5.000000e-02 2.398837e+01 +5.500000e-02 2.388953e+01 +6.000000e-02 2.377962e+01 +6.500000e-02 2.369143e+01 +7.000000e-02 2.364944e+01 +7.500000e-02 2.365302e+01 +8.000000e-02 2.368893e+01 +8.500000e-02 2.374986e+01 +9.000000e-02 2.383257e+01 +9.500000e-02 2.393700e+01 +1.000000e-01 2.404345e+01 +volume fraction= 0.400239 +fiber_centers_YZ= (0.010892,0.018051) (0.000975,0.041662) (0.009854,0.039577) (0.013192,0.030748) (0.017159,0.043584) (0.003515,0.011639) (0.002189,0.026107) (0.017234,0.010333) (0.011821,0.004835) (0.000080,0.004444) (0.017154,0.023654) (0.003720,0.034257) (0.000200,0.018625) (0.035892,0.018051) (0.025975,0.041662) (0.034854,0.039577) (0.038192,0.030748) (0.042159,0.043584) (0.028515,0.011639) (0.027189,0.026107) (0.042234,0.010333) (0.036821,0.004835) (0.025080,0.004444) (0.042154,0.023654) (0.028720,0.034257) (0.025200,0.018625) (0.050975,0.041662) (0.052189,0.026107) (0.050080,0.004444) (0.050200,0.018625) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4002_1_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4002_1_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..7bb0ad0c5e9f16c8bab4588bb559d601d7c62661 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4002_1_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.399447e+01 -1.730974e-04 -3.425215e-03 +1.000000e-02 2.749991e+01 -3.396921e-04 -6.872741e-03 +1.500000e-02 3.834919e+01 -4.747650e-04 -1.056521e-02 +2.000000e-02 4.525525e+01 -5.650441e-04 -1.462018e-02 +2.500000e-02 4.937878e+01 -6.235068e-04 -1.891935e-02 +3.000000e-02 5.194704e+01 -6.633195e-04 -2.334186e-02 +3.500000e-02 5.359985e+01 -6.914233e-04 -2.782379e-02 +4.000000e-02 5.467605e+01 -7.117243e-04 -3.232931e-02 +4.500000e-02 5.537401e+01 -7.266361e-04 -3.683728e-02 +5.000000e-02 5.582532e+01 -7.378251e-04 -4.133387e-02 +5.500000e-02 5.612433e+01 -7.465272e-04 -4.580920e-02 +6.000000e-02 5.633975e+01 -7.536679e-04 -5.025606e-02 +6.500000e-02 5.652062e+01 -7.599322e-04 -5.466925e-02 +7.000000e-02 5.669897e+01 -7.658430e-04 -5.904494e-02 +7.500000e-02 5.690515e+01 -7.718571e-04 -6.337992e-02 +8.000000e-02 5.713924e+01 -7.778484e-04 -6.767573e-02 +8.500000e-02 5.741331e+01 -7.841514e-04 -7.193014e-02 +9.000000e-02 5.772970e+01 -7.908453e-04 -7.614305e-02 +9.500000e-02 5.808702e+01 -7.979528e-04 -8.031478e-02 +1.000000e-01 5.848170e+01 -8.054622e-04 -8.444596e-02 +volume fraction= 0.400239 +fiber_centers_YZ= (0.010892,0.018051) (0.000975,0.041662) (0.009854,0.039577) (0.013192,0.030748) (0.017159,0.043584) (0.003515,0.011639) (0.002189,0.026107) (0.017234,0.010333) (0.011821,0.004835) (0.000080,0.004444) (0.017154,0.023654) (0.003720,0.034257) (0.000200,0.018625) (0.035892,0.018051) (0.025975,0.041662) (0.034854,0.039577) (0.038192,0.030748) (0.042159,0.043584) (0.028515,0.011639) (0.027189,0.026107) (0.042234,0.010333) (0.036821,0.004835) (0.025080,0.004444) (0.042154,0.023654) (0.028720,0.034257) (0.025200,0.018625) (0.050975,0.041662) (0.052189,0.026107) (0.050080,0.004444) (0.050200,0.018625) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4002_2_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4002_2_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..87e618768119e13a211044062fa29089e96cf676 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4002_2_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.426807e+02 -1.632484e-03 -1.780126e-03 +1.000000e-02 2.850470e+02 -3.253023e-03 -3.547848e-03 +1.500000e-02 4.271003e+02 -4.861757e-03 -5.303303e-03 +2.000000e-02 5.688420e+02 -6.458828e-03 -7.046631e-03 +2.500000e-02 7.102708e+02 -8.044673e-03 -8.778089e-03 +3.000000e-02 8.513324e+02 -9.624927e-03 -1.050095e-02 +3.500000e-02 9.916333e+02 -1.122713e-02 -1.224525e-02 +4.000000e-02 1.130829e+03 -1.286237e-02 -1.404776e-02 +4.500000e-02 1.269422e+03 -1.450299e-02 -1.587085e-02 +5.000000e-02 1.407669e+03 -1.613811e-02 -1.769278e-02 +5.500000e-02 1.545618e+03 -1.776598e-02 -1.950989e-02 +6.000000e-02 1.683283e+03 -1.938612e-02 -2.132134e-02 +6.500000e-02 1.820675e+03 -2.099819e-02 -2.312661e-02 +7.000000e-02 1.957805e+03 -2.260192e-02 -2.492526e-02 +7.500000e-02 2.094681e+03 -2.419706e-02 -2.671689e-02 +8.000000e-02 2.231311e+03 -2.578338e-02 -2.850114e-02 +8.500000e-02 2.367703e+03 -2.736069e-02 -3.027768e-02 +9.000000e-02 2.503863e+03 -2.892883e-02 -3.204621e-02 +9.500000e-02 2.639796e+03 -3.048765e-02 -3.380646e-02 +1.000000e-01 2.775509e+03 -3.203705e-02 -3.555820e-02 +volume fraction= 0.400239 +fiber_centers_YZ= (0.015762,0.043158) (0.012080,0.016817) (0.000509,0.007438) (0.013997,0.031230) (0.007272,0.037189) (0.000294,0.019624) (0.017092,0.006816) (0.007911,0.023942) (0.000116,0.041563) (0.000432,0.028384) (0.007929,0.045075) (0.007894,0.009824) (0.017234,0.023890) (0.040762,0.043158) (0.037080,0.016817) (0.025509,0.007438) (0.038997,0.031230) (0.032272,0.037189) (0.025294,0.019624) (0.042092,0.006816) (0.032911,0.023942) (0.025116,0.041563) (0.025432,0.028384) (0.032929,0.045075) (0.032894,0.009824) (0.042234,0.023890) (0.050509,0.007438) (0.050294,0.019624) (0.050116,0.041563) (0.050432,0.028384) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4002_2_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4002_2_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..55ddafce30b35a40216b856e2ea4030c3597b7c5 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4002_2_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 8.230419e+00 +1.000000e-02 1.524876e+01 +1.500000e-02 1.942542e+01 +2.000000e-02 2.174371e+01 +2.500000e-02 2.293230e+01 +3.000000e-02 2.350287e+01 +3.500000e-02 2.376076e+01 +4.000000e-02 2.386886e+01 +4.500000e-02 2.389454e+01 +5.000000e-02 2.388211e+01 +5.500000e-02 2.383691e+01 +6.000000e-02 2.377938e+01 +6.500000e-02 2.373449e+01 +7.000000e-02 2.372513e+01 +7.500000e-02 2.376685e+01 +8.000000e-02 2.386187e+01 +8.500000e-02 2.400393e+01 +9.000000e-02 2.418758e+01 +9.500000e-02 2.438790e+01 +1.000000e-01 2.459038e+01 +volume fraction= 0.400239 +fiber_centers_YZ= (0.015762,0.043158) (0.012080,0.016817) (0.000509,0.007438) (0.013997,0.031230) (0.007272,0.037189) (0.000294,0.019624) (0.017092,0.006816) (0.007911,0.023942) (0.000116,0.041563) (0.000432,0.028384) (0.007929,0.045075) (0.007894,0.009824) (0.017234,0.023890) (0.040762,0.043158) (0.037080,0.016817) (0.025509,0.007438) (0.038997,0.031230) (0.032272,0.037189) (0.025294,0.019624) (0.042092,0.006816) (0.032911,0.023942) (0.025116,0.041563) (0.025432,0.028384) (0.032929,0.045075) (0.032894,0.009824) (0.042234,0.023890) (0.050509,0.007438) (0.050294,0.019624) (0.050116,0.041563) (0.050432,0.028384) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4002_2_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4002_2_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..faad2e7052f5cf916ca80434068e295bf90ecd0e --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4002_2_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.546697e+01 -1.775421e-04 -3.507022e-03 +1.000000e-02 3.006987e+01 -3.463519e-04 -7.038760e-03 +1.500000e-02 4.091691e+01 -4.777268e-04 -1.081301e-02 +2.000000e-02 4.776321e+01 -5.653761e-04 -1.491129e-02 +2.500000e-02 5.181721e+01 -6.211110e-04 -1.924438e-02 +3.000000e-02 5.432648e+01 -6.581320e-04 -2.369878e-02 +3.500000e-02 5.595871e+01 -6.837824e-04 -2.820977e-02 +4.000000e-02 5.708139e+01 -7.023360e-04 -3.273959e-02 +4.500000e-02 5.790437e+01 -7.164012e-04 -3.726585e-02 +5.000000e-02 5.855731e+01 -7.277033e-04 -4.177398e-02 +5.500000e-02 5.912194e+01 -7.373971e-04 -4.625435e-02 +6.000000e-02 5.964947e+01 -7.462476e-04 -5.070069e-02 +6.500000e-02 6.017137e+01 -7.547925e-04 -5.510881e-02 +7.000000e-02 6.070872e+01 -7.632951e-04 -5.947679e-02 +7.500000e-02 6.127314e+01 -7.720149e-04 -6.380289e-02 +8.000000e-02 6.187136e+01 -7.810938e-04 -6.808638e-02 +8.500000e-02 6.251053e+01 -7.907367e-04 -7.232615e-02 +9.000000e-02 6.318173e+01 -8.007249e-04 -7.652428e-02 +9.500000e-02 6.388784e+01 -8.111963e-04 -8.068025e-02 +1.000000e-01 6.462596e+01 -8.221329e-04 -8.479471e-02 +volume fraction= 0.400239 +fiber_centers_YZ= (0.015762,0.043158) (0.012080,0.016817) (0.000509,0.007438) (0.013997,0.031230) (0.007272,0.037189) (0.000294,0.019624) (0.017092,0.006816) (0.007911,0.023942) (0.000116,0.041563) (0.000432,0.028384) (0.007929,0.045075) (0.007894,0.009824) (0.017234,0.023890) (0.040762,0.043158) (0.037080,0.016817) (0.025509,0.007438) (0.038997,0.031230) (0.032272,0.037189) (0.025294,0.019624) (0.042092,0.006816) (0.032911,0.023942) (0.025116,0.041563) (0.025432,0.028384) (0.032929,0.045075) (0.032894,0.009824) (0.042234,0.023890) (0.050509,0.007438) (0.050294,0.019624) (0.050116,0.041563) (0.050432,0.028384) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4002_3_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4002_3_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..0846548e7a231b161a697491e4bd0d5168a504eb --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4002_3_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.426876e+02 -1.712507e-03 -1.695957e-03 +1.000000e-02 2.850594e+02 -3.412779e-03 -3.379822e-03 +1.500000e-02 4.271169e+02 -5.100952e-03 -5.051734e-03 +2.000000e-02 5.688614e+02 -6.777168e-03 -6.711837e-03 +2.500000e-02 7.102915e+02 -8.441771e-03 -8.360566e-03 +3.000000e-02 8.513498e+02 -1.009953e-02 -1.000316e-02 +3.500000e-02 9.916476e+02 -1.178140e-02 -1.166646e-02 +4.000000e-02 1.130846e+03 -1.351023e-02 -1.337259e-02 +4.500000e-02 1.269438e+03 -1.525249e-02 -1.509134e-02 +5.000000e-02 1.407681e+03 -1.699183e-02 -1.680662e-02 +5.500000e-02 1.545624e+03 -1.872551e-02 -1.851569e-02 +6.000000e-02 1.683284e+03 -2.045282e-02 -2.021791e-02 +6.500000e-02 1.820670e+03 -2.217333e-02 -2.191285e-02 +7.000000e-02 1.957792e+03 -2.388666e-02 -2.360018e-02 +7.500000e-02 2.094661e+03 -2.559244e-02 -2.527957e-02 +8.000000e-02 2.231283e+03 -2.729038e-02 -2.695074e-02 +8.500000e-02 2.367666e+03 -2.898019e-02 -2.861345e-02 +9.000000e-02 2.503816e+03 -3.066160e-02 -3.026747e-02 +9.500000e-02 2.639740e+03 -3.233441e-02 -3.191261e-02 +1.000000e-01 2.775443e+03 -3.399841e-02 -3.354871e-02 +volume fraction= 0.400239 +fiber_centers_YZ= (0.004600,0.039119) (0.010908,0.026130) (0.017806,0.039711) (0.009701,0.014077) (0.017103,0.031049) (0.008833,0.004517) (0.001219,0.031838) (0.002300,0.023061) (0.016322,0.019251) (0.000404,0.007256) (0.017025,0.006770) (0.000243,0.045651) (0.000118,0.015006) (0.029600,0.039119) (0.035908,0.026130) (0.042806,0.039711) (0.034701,0.014077) (0.042103,0.031049) (0.033833,0.004517) (0.026219,0.031838) (0.027300,0.023061) (0.041322,0.019251) (0.025404,0.007256) (0.042025,0.006770) (0.025243,0.045651) (0.025118,0.015006) (0.051219,0.031838) (0.052300,0.023061) (0.050404,0.007256) (0.050243,0.045651) (0.050118,0.015006) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4002_3_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4002_3_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..77cafb89ae455f54216f1cad30fc929c7d8604aa --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4002_3_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 7.668261e+00 +1.000000e-02 1.459226e+01 +1.500000e-02 1.915025e+01 +2.000000e-02 2.170207e+01 +2.500000e-02 2.301050e+01 +3.000000e-02 2.364131e+01 +3.500000e-02 2.392959e+01 +4.000000e-02 2.402606e+01 +4.500000e-02 2.399790e+01 +5.000000e-02 2.388730e+01 +5.500000e-02 2.372482e+01 +6.000000e-02 2.355578e+01 +6.500000e-02 2.342968e+01 +7.000000e-02 2.337402e+01 +7.500000e-02 2.340167e+01 +8.000000e-02 2.350060e+01 +8.500000e-02 2.364448e+01 +9.000000e-02 2.380200e+01 +9.500000e-02 2.393798e+01 +1.000000e-01 2.403145e+01 +volume fraction= 0.400239 +fiber_centers_YZ= (0.004600,0.039119) (0.010908,0.026130) (0.017806,0.039711) (0.009701,0.014077) (0.017103,0.031049) (0.008833,0.004517) (0.001219,0.031838) (0.002300,0.023061) (0.016322,0.019251) (0.000404,0.007256) (0.017025,0.006770) (0.000243,0.045651) (0.000118,0.015006) (0.029600,0.039119) (0.035908,0.026130) (0.042806,0.039711) (0.034701,0.014077) (0.042103,0.031049) (0.033833,0.004517) (0.026219,0.031838) (0.027300,0.023061) (0.041322,0.019251) (0.025404,0.007256) (0.042025,0.006770) (0.025243,0.045651) (0.025118,0.015006) (0.051219,0.031838) (0.052300,0.023061) (0.050404,0.007256) (0.050243,0.045651) (0.050118,0.015006) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4002_3_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4002_3_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..10f469b3cdc17023a65d56ebc651103308708b48 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4002_3_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.518914e+01 -1.829222e-04 -3.381728e-03 +1.000000e-02 2.971747e+01 -3.584752e-04 -6.786362e-03 +1.500000e-02 4.102914e+01 -4.976928e-04 -1.046575e-02 +2.000000e-02 4.812292e+01 -5.892517e-04 -1.452699e-02 +2.500000e-02 5.227635e+01 -6.467686e-04 -1.885044e-02 +3.000000e-02 5.487221e+01 -6.853509e-04 -2.329748e-02 +3.500000e-02 5.660182e+01 -7.128983e-04 -2.779606e-02 +4.000000e-02 5.781614e+01 -7.335568e-04 -3.230958e-02 +4.500000e-02 5.871676e+01 -7.498455e-04 -3.681658e-02 +5.000000e-02 5.942863e+01 -7.633931e-04 -4.130360e-02 +5.500000e-02 6.003177e+01 -7.752758e-04 -4.576203e-02 +6.000000e-02 6.057797e+01 -7.862083e-04 -5.018643e-02 +6.500000e-02 6.110112e+01 -7.966722e-04 -5.457335e-02 +7.000000e-02 6.162354e+01 -8.069948e-04 -5.892066e-02 +7.500000e-02 6.216000e+01 -8.174009e-04 -6.322714e-02 +8.000000e-02 6.271881e+01 -8.280553e-04 -6.749200e-02 +8.500000e-02 6.331012e+01 -8.390490e-04 -7.171513e-02 +9.000000e-02 6.393971e+01 -8.505670e-04 -7.589559e-02 +9.500000e-02 6.460686e+01 -8.624997e-04 -8.003485e-02 +1.000000e-01 6.531722e+01 -8.749952e-04 -8.413230e-02 +volume fraction= 0.400239 +fiber_centers_YZ= (0.004600,0.039119) (0.010908,0.026130) (0.017806,0.039711) (0.009701,0.014077) (0.017103,0.031049) (0.008833,0.004517) (0.001219,0.031838) (0.002300,0.023061) (0.016322,0.019251) (0.000404,0.007256) (0.017025,0.006770) (0.000243,0.045651) (0.000118,0.015006) (0.029600,0.039119) (0.035908,0.026130) (0.042806,0.039711) (0.034701,0.014077) (0.042103,0.031049) (0.033833,0.004517) (0.026219,0.031838) (0.027300,0.023061) (0.041322,0.019251) (0.025404,0.007256) (0.042025,0.006770) (0.025243,0.045651) (0.025118,0.015006) (0.051219,0.031838) (0.052300,0.023061) (0.050404,0.007256) (0.050243,0.045651) (0.050118,0.015006) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4002_4_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4002_4_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..931aa2add9a8dd2efd955dddbe3fc187fd1e87bb --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4002_4_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.426804e+02 -1.687010e-03 -1.723590e-03 +1.000000e-02 2.850456e+02 -3.361894e-03 -3.434980e-03 +1.500000e-02 4.270972e+02 -5.024788e-03 -5.134310e-03 +2.000000e-02 5.688366e+02 -6.675836e-03 -6.821719e-03 +2.500000e-02 7.102623e+02 -8.315488e-03 -8.497508e-03 +3.000000e-02 8.513190e+02 -9.949274e-03 -1.016552e-02 +3.500000e-02 9.916158e+02 -1.160647e-02 -1.185364e-02 +4.000000e-02 1.130809e+03 -1.330615e-02 -1.359011e-02 +4.500000e-02 1.269397e+03 -1.501682e-02 -1.534169e-02 +5.000000e-02 1.407639e+03 -1.672386e-02 -1.709035e-02 +5.500000e-02 1.545581e+03 -1.842489e-02 -1.883307e-02 +6.000000e-02 1.683239e+03 -2.011925e-02 -2.056915e-02 +6.500000e-02 1.820625e+03 -2.180654e-02 -2.229813e-02 +7.000000e-02 1.957747e+03 -2.348641e-02 -2.401966e-02 +7.500000e-02 2.094615e+03 -2.515855e-02 -2.573339e-02 +8.000000e-02 2.231237e+03 -2.682267e-02 -2.743902e-02 +8.500000e-02 2.367620e+03 -2.847850e-02 -2.913630e-02 +9.000000e-02 2.503771e+03 -3.012582e-02 -3.082498e-02 +9.500000e-02 2.639695e+03 -3.176442e-02 -3.250486e-02 +1.000000e-01 2.775398e+03 -3.339413e-02 -3.417576e-02 +volume fraction= 0.400239 +fiber_centers_YZ= (0.009390,0.023462) (0.008170,0.034554) (0.014867,0.043928) (0.000418,0.030778) (0.006773,0.004573) (0.020352,0.007227) (0.012014,0.013278) (0.000788,0.044033) (0.015206,0.029094) (0.000062,0.020559) (0.004293,0.012653) (0.017052,0.020635) (0.017244,0.036530) (0.034390,0.023462) (0.033170,0.034554) (0.039867,0.043928) (0.025418,0.030778) (0.031773,0.004573) (0.045352,0.007227) (0.037014,0.013278) (0.025788,0.044033) (0.040206,0.029094) (0.025062,0.020559) (0.029293,0.012653) (0.042052,0.020635) (0.042244,0.036530) (0.050418,0.030778) (0.050788,0.044033) (0.050062,0.020559) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4002_4_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4002_4_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..02b155eadb3a3c655329118906cc2078c6525a73 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4002_4_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 7.861944e+00 +1.000000e-02 1.476896e+01 +1.500000e-02 1.932791e+01 +2.000000e-02 2.178864e+01 +2.500000e-02 2.307145e+01 +3.000000e-02 2.371445e+01 +3.500000e-02 2.402352e+01 +4.000000e-02 2.416052e+01 +4.500000e-02 2.419462e+01 +5.000000e-02 2.415772e+01 +5.500000e-02 2.408257e+01 +6.000000e-02 2.400776e+01 +6.500000e-02 2.397298e+01 +7.000000e-02 2.399371e+01 +7.500000e-02 2.404622e+01 +8.000000e-02 2.410496e+01 +8.500000e-02 2.416180e+01 +9.000000e-02 2.420714e+01 +9.500000e-02 2.425412e+01 +1.000000e-01 2.430800e+01 +volume fraction= 0.400239 +fiber_centers_YZ= (0.009390,0.023462) (0.008170,0.034554) (0.014867,0.043928) (0.000418,0.030778) (0.006773,0.004573) (0.020352,0.007227) (0.012014,0.013278) (0.000788,0.044033) (0.015206,0.029094) (0.000062,0.020559) (0.004293,0.012653) (0.017052,0.020635) (0.017244,0.036530) (0.034390,0.023462) (0.033170,0.034554) (0.039867,0.043928) (0.025418,0.030778) (0.031773,0.004573) (0.045352,0.007227) (0.037014,0.013278) (0.025788,0.044033) (0.040206,0.029094) (0.025062,0.020559) (0.029293,0.012653) (0.042052,0.020635) (0.042244,0.036530) (0.050418,0.030778) (0.050788,0.044033) (0.050062,0.020559) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4002_4_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4002_4_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..153b2169f78fbc1701228c73e5797a3a620fa39d --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4002_4_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.485095e+01 -1.761184e-04 -3.465077e-03 +1.000000e-02 2.910154e+01 -3.457350e-04 -6.942073e-03 +1.500000e-02 4.049997e+01 -4.855855e-04 -1.061862e-02 +2.000000e-02 4.773931e+01 -5.803760e-04 -1.464094e-02 +2.500000e-02 5.221874e+01 -6.442672e-04 -1.889139e-02 +3.000000e-02 5.507941e+01 -6.884281e-04 -2.327759e-02 +3.500000e-02 5.696637e+01 -7.198395e-04 -2.773554e-02 +4.000000e-02 5.825836e+01 -7.430272e-04 -3.222232e-02 +4.500000e-02 5.916274e+01 -7.606140e-04 -3.671438e-02 +5.000000e-02 5.981017e+01 -7.742857e-04 -4.119729e-02 +5.500000e-02 6.028935e+01 -7.852261e-04 -4.566125e-02 +6.000000e-02 6.066278e+01 -7.943112e-04 -5.009925e-02 +6.500000e-02 6.097802e+01 -8.021846e-04 -5.450628e-02 +7.000000e-02 6.126765e+01 -8.093516e-04 -5.887857e-02 +7.500000e-02 6.155870e+01 -8.162726e-04 -6.321281e-02 +8.000000e-02 6.186172e+01 -8.230443e-04 -6.750854e-02 +8.500000e-02 6.219070e+01 -8.299448e-04 -7.176406e-02 +9.000000e-02 6.255232e+01 -8.371012e-04 -7.597885e-02 +9.500000e-02 6.294944e+01 -8.445855e-04 -8.015290e-02 +1.000000e-01 6.338741e+01 -8.525216e-04 -8.428583e-02 +volume fraction= 0.400239 +fiber_centers_YZ= (0.009390,0.023462) (0.008170,0.034554) (0.014867,0.043928) (0.000418,0.030778) (0.006773,0.004573) (0.020352,0.007227) (0.012014,0.013278) (0.000788,0.044033) (0.015206,0.029094) (0.000062,0.020559) (0.004293,0.012653) (0.017052,0.020635) (0.017244,0.036530) (0.034390,0.023462) (0.033170,0.034554) (0.039867,0.043928) (0.025418,0.030778) (0.031773,0.004573) (0.045352,0.007227) (0.037014,0.013278) (0.025788,0.044033) (0.040206,0.029094) (0.025062,0.020559) (0.029293,0.012653) (0.042052,0.020635) (0.042244,0.036530) (0.050418,0.030778) (0.050788,0.044033) (0.050062,0.020559) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4002_5_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4002_5_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..ad680cb450757e908e844743f85084a94d11ce79 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4002_5_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.426764e+02 -1.672974e-03 -1.735155e-03 +1.000000e-02 2.850368e+02 -3.333893e-03 -3.458050e-03 +1.500000e-02 4.270828e+02 -4.982895e-03 -5.168823e-03 +2.000000e-02 5.688158e+02 -6.620122e-03 -6.867616e-03 +2.500000e-02 7.102343e+02 -8.245984e-03 -8.554786e-03 +3.000000e-02 8.512814e+02 -9.866052e-03 -1.023459e-02 +3.500000e-02 9.915674e+02 -1.150967e-02 -1.193557e-02 +4.000000e-02 1.130754e+03 -1.319293e-02 -1.368697e-02 +4.500000e-02 1.269333e+03 -1.488591e-02 -1.545469e-02 +5.000000e-02 1.407564e+03 -1.657483e-02 -1.722007e-02 +5.500000e-02 1.545496e+03 -1.825737e-02 -1.897996e-02 +6.000000e-02 1.683142e+03 -1.993293e-02 -2.073362e-02 +6.500000e-02 1.820516e+03 -2.160110e-02 -2.248058e-02 +7.000000e-02 1.957626e+03 -2.326154e-02 -2.422047e-02 +7.500000e-02 2.094482e+03 -2.491394e-02 -2.595294e-02 +8.000000e-02 2.231091e+03 -2.655802e-02 -2.767767e-02 +8.500000e-02 2.367461e+03 -2.819353e-02 -2.939438e-02 +9.000000e-02 2.503599e+03 -2.982024e-02 -3.110282e-02 +9.500000e-02 2.639510e+03 -3.143796e-02 -3.280277e-02 +1.000000e-01 2.775199e+03 -3.304652e-02 -3.449403e-02 +volume fraction= 0.400239 +fiber_centers_YZ= (0.018524,0.044107) (0.016980,0.013210) (0.010117,0.029458) (0.002906,0.004729) (0.002886,0.019842) (0.003942,0.038510) (0.010350,0.008220) (0.011633,0.020068) (0.000047,0.028519) (0.019867,0.034350) (0.000954,0.012370) (0.017088,0.026124) (0.010818,0.045617) (0.043524,0.044107) (0.041980,0.013210) (0.035117,0.029458) (0.027906,0.004729) (0.027886,0.019842) (0.028942,0.038510) (0.035350,0.008220) (0.036633,0.020068) (0.025047,0.028519) (0.044867,0.034350) (0.025954,0.012370) (0.042088,0.026124) (0.035818,0.045617) (0.052906,0.004729) (0.052886,0.019842) (0.050047,0.028519) (0.050954,0.012370) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4002_5_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4002_5_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..1264617984107b4a34cb844945753d13d802a0cf --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4002_5_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 8.007669e+00 +1.000000e-02 1.496429e+01 +1.500000e-02 1.941917e+01 +2.000000e-02 2.187643e+01 +2.500000e-02 2.310049e+01 +3.000000e-02 2.366851e+01 +3.500000e-02 2.394883e+01 +4.000000e-02 2.409499e+01 +4.500000e-02 2.416236e+01 +5.000000e-02 2.417253e+01 +5.500000e-02 2.414618e+01 +6.000000e-02 2.409717e+01 +6.500000e-02 2.403408e+01 +7.000000e-02 2.396866e+01 +7.500000e-02 2.392068e+01 +8.000000e-02 2.390149e+01 +8.500000e-02 2.391304e+01 +9.000000e-02 2.395125e+01 +9.500000e-02 2.401891e+01 +1.000000e-01 2.411511e+01 +volume fraction= 0.400239 +fiber_centers_YZ= (0.018524,0.044107) (0.016980,0.013210) (0.010117,0.029458) (0.002906,0.004729) (0.002886,0.019842) (0.003942,0.038510) (0.010350,0.008220) (0.011633,0.020068) (0.000047,0.028519) (0.019867,0.034350) (0.000954,0.012370) (0.017088,0.026124) (0.010818,0.045617) (0.043524,0.044107) (0.041980,0.013210) (0.035117,0.029458) (0.027906,0.004729) (0.027886,0.019842) (0.028942,0.038510) (0.035350,0.008220) (0.036633,0.020068) (0.025047,0.028519) (0.044867,0.034350) (0.025954,0.012370) (0.042088,0.026124) (0.035818,0.045617) (0.052906,0.004729) (0.052886,0.019842) (0.050047,0.028519) (0.050954,0.012370) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4002_5_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4002_5_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..a843d5d4fce45ec02fd16454d450bd5c7ee67fe7 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4002_5_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.443310e+01 -1.696949e-04 -3.532686e-03 +1.000000e-02 2.828698e+01 -3.328958e-04 -7.076550e-03 +1.500000e-02 3.937151e+01 -4.665444e-04 -1.081966e-02 +2.000000e-02 4.660708e+01 -5.580312e-04 -1.488588e-02 +2.500000e-02 5.082331e+01 -6.156917e-04 -1.920709e-02 +3.000000e-02 5.341496e+01 -6.538785e-04 -2.365565e-02 +3.500000e-02 5.508583e+01 -6.802418e-04 -2.816230e-02 +4.000000e-02 5.620034e+01 -6.991063e-04 -3.268793e-02 +4.500000e-02 5.694594e+01 -7.126444e-04 -3.721312e-02 +5.000000e-02 5.744251e+01 -7.224169e-04 -4.172453e-02 +5.500000e-02 5.777980e+01 -7.297502e-04 -4.621116e-02 +6.000000e-02 5.801293e+01 -7.353559e-04 -5.066714e-02 +6.500000e-02 5.819189e+01 -7.399938e-04 -5.508651e-02 +7.000000e-02 5.834153e+01 -7.439152e-04 -5.946746e-02 +7.500000e-02 5.849094e+01 -7.475958e-04 -6.380663e-02 +8.000000e-02 5.865815e+01 -7.513083e-04 -6.810239e-02 +8.500000e-02 5.885531e+01 -7.552462e-04 -7.235384e-02 +9.000000e-02 5.909021e+01 -7.595461e-04 -7.656064e-02 +9.500000e-02 5.936715e+01 -7.642980e-04 -8.072287e-02 +1.000000e-01 5.968758e+01 -7.695519e-04 -8.484096e-02 +volume fraction= 0.400239 +fiber_centers_YZ= (0.018524,0.044107) (0.016980,0.013210) (0.010117,0.029458) (0.002906,0.004729) (0.002886,0.019842) (0.003942,0.038510) (0.010350,0.008220) (0.011633,0.020068) (0.000047,0.028519) (0.019867,0.034350) (0.000954,0.012370) (0.017088,0.026124) (0.010818,0.045617) (0.043524,0.044107) (0.041980,0.013210) (0.035117,0.029458) (0.027906,0.004729) (0.027886,0.019842) (0.028942,0.038510) (0.035350,0.008220) (0.036633,0.020068) (0.025047,0.028519) (0.044867,0.034350) (0.025954,0.012370) (0.042088,0.026124) (0.035818,0.045617) (0.052906,0.004729) (0.052886,0.019842) (0.050047,0.028519) (0.050954,0.012370) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4926_1_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4926_1_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..f93bcbc9e4a4aca4bbe584658bdf07d46b0a7d07 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4926_1_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.744906e+02 -1.591126e-03 -1.585365e-03 +1.000000e-02 3.485168e+02 -3.171190e-03 -3.159528e-03 +1.500000e-02 5.220811e+02 -4.740315e-03 -4.722614e-03 +2.000000e-02 6.951864e+02 -6.298628e-03 -6.274752e-03 +2.500000e-02 8.678325e+02 -7.846428e-03 -7.816355e-03 +3.000000e-02 1.039972e+03 -9.387561e-03 -9.352666e-03 +3.500000e-02 1.211288e+03 -1.094804e-02 -1.090847e-02 +4.000000e-02 1.381522e+03 -1.254936e-02 -1.249899e-02 +4.500000e-02 1.551078e+03 -1.416252e-02 -1.409870e-02 +5.000000e-02 1.720172e+03 -1.577302e-02 -1.569452e-02 +5.500000e-02 1.888848e+03 -1.737843e-02 -1.728417e-02 +6.000000e-02 2.057119e+03 -1.897814e-02 -1.886708e-02 +6.500000e-02 2.224997e+03 -2.057177e-02 -2.044285e-02 +7.000000e-02 2.392492e+03 -2.215901e-02 -2.201117e-02 +7.500000e-02 2.559612e+03 -2.373957e-02 -2.357174e-02 +8.000000e-02 2.726367e+03 -2.531317e-02 -2.512432e-02 +8.500000e-02 2.892762e+03 -2.687958e-02 -2.666866e-02 +9.000000e-02 3.058806e+03 -2.843860e-02 -2.820456e-02 +9.500000e-02 3.224504e+03 -2.999002e-02 -2.973185e-02 +1.000000e-01 3.389861e+03 -3.153370e-02 -3.125036e-02 +volume fraction= 0.492602 +fiber_centers_YZ= (0.010813,0.028925) (0.009327,0.013245) (0.016611,0.023707) (0.000312,0.039188) (0.008858,0.020943) (0.016842,0.006730) (0.017200,0.033821) (0.008492,0.036878) (0.001085,0.004309) (0.009045,0.004238) (0.017266,0.015843) (0.020018,0.044782) (0.002970,0.030968) (0.010221,0.045164) (0.002035,0.015831) (0.000604,0.023496) (0.035813,0.028925) (0.034327,0.013245) (0.041611,0.023707) (0.025312,0.039188) (0.033858,0.020943) (0.041842,0.006730) (0.042200,0.033821) (0.033492,0.036878) (0.026085,0.004309) (0.034045,0.004238) (0.042266,0.015843) (0.045018,0.044782) (0.027970,0.030968) (0.035221,0.045164) (0.027035,0.015831) (0.025604,0.023496) (0.050312,0.039188) (0.051085,0.004309) (0.052970,0.030968) (0.052035,0.015831) (0.050604,0.023496) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4926_1_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4926_1_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..4bf404d81535693be2da1a2eeb040e9338952625 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4926_1_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 9.749742e+00 +1.000000e-02 1.753676e+01 +1.500000e-02 2.145927e+01 +2.000000e-02 2.332363e+01 +2.500000e-02 2.407260e+01 +3.000000e-02 2.428756e+01 +3.500000e-02 2.429963e+01 +4.000000e-02 2.424244e+01 +4.500000e-02 2.417531e+01 +5.000000e-02 2.412044e+01 +5.500000e-02 2.406432e+01 +6.000000e-02 2.398995e+01 +6.500000e-02 2.388249e+01 +7.000000e-02 2.375713e+01 +7.500000e-02 2.368098e+01 +8.000000e-02 2.367817e+01 +8.500000e-02 2.372046e+01 +9.000000e-02 2.378603e+01 +9.500000e-02 2.387895e+01 +1.000000e-01 2.400440e+01 +volume fraction= 0.492602 +fiber_centers_YZ= (0.010813,0.028925) (0.009327,0.013245) (0.016611,0.023707) (0.000312,0.039188) (0.008858,0.020943) (0.016842,0.006730) (0.017200,0.033821) (0.008492,0.036878) (0.001085,0.004309) (0.009045,0.004238) (0.017266,0.015843) (0.020018,0.044782) (0.002970,0.030968) (0.010221,0.045164) (0.002035,0.015831) (0.000604,0.023496) (0.035813,0.028925) (0.034327,0.013245) (0.041611,0.023707) (0.025312,0.039188) (0.033858,0.020943) (0.041842,0.006730) (0.042200,0.033821) (0.033492,0.036878) (0.026085,0.004309) (0.034045,0.004238) (0.042266,0.015843) (0.045018,0.044782) (0.027970,0.030968) (0.035221,0.045164) (0.027035,0.015831) (0.025604,0.023496) (0.050312,0.039188) (0.051085,0.004309) (0.052970,0.030968) (0.052035,0.015831) (0.050604,0.023496) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4926_1_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4926_1_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..1f52258dcb6574e85754bcc05afcb7ee1c7684d7 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4926_1_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 2.142395e+01 -1.963727e-04 -3.090302e-03 +1.000000e-02 4.106310e+01 -3.783666e-04 -6.278582e-03 +1.500000e-02 5.437671e+01 -5.079715e-04 -9.914375e-03 +2.000000e-02 6.222049e+01 -5.896098e-04 -1.398092e-02 +2.500000e-02 6.712944e+01 -6.442895e-04 -1.827649e-02 +3.000000e-02 7.061906e+01 -6.854197e-04 -2.266592e-02 +3.500000e-02 7.336342e+01 -7.192859e-04 -2.708573e-02 +4.000000e-02 7.570974e+01 -7.492423e-04 -3.150245e-02 +4.500000e-02 7.783040e+01 -7.769373e-04 -3.590005e-02 +5.000000e-02 7.983594e+01 -8.035355e-04 -4.026767e-02 +5.500000e-02 8.178779e+01 -8.296634e-04 -4.459969e-02 +6.000000e-02 8.371933e+01 -8.556667e-04 -4.889324e-02 +6.500000e-02 8.564653e+01 -8.817164e-04 -5.314718e-02 +7.000000e-02 8.757557e+01 -9.078786e-04 -5.736138e-02 +7.500000e-02 8.950657e+01 -9.341521e-04 -6.153637e-02 +8.000000e-02 9.143591e+01 -9.604915e-04 -6.567310e-02 +8.500000e-02 9.335812e+01 -9.868259e-04 -6.977277e-02 +9.000000e-02 9.526700e+01 -1.013073e-03 -7.383665e-02 +9.500000e-02 9.715693e+01 -1.039151e-03 -7.786596e-02 +1.000000e-01 9.900931e+01 -1.064774e-03 -8.186372e-02 +volume fraction= 0.492602 +fiber_centers_YZ= (0.010813,0.028925) (0.009327,0.013245) (0.016611,0.023707) (0.000312,0.039188) (0.008858,0.020943) (0.016842,0.006730) (0.017200,0.033821) (0.008492,0.036878) (0.001085,0.004309) (0.009045,0.004238) (0.017266,0.015843) (0.020018,0.044782) (0.002970,0.030968) (0.010221,0.045164) (0.002035,0.015831) (0.000604,0.023496) (0.035813,0.028925) (0.034327,0.013245) (0.041611,0.023707) (0.025312,0.039188) (0.033858,0.020943) (0.041842,0.006730) (0.042200,0.033821) (0.033492,0.036878) (0.026085,0.004309) (0.034045,0.004238) (0.042266,0.015843) (0.045018,0.044782) (0.027970,0.030968) (0.035221,0.045164) (0.027035,0.015831) (0.025604,0.023496) (0.050312,0.039188) (0.051085,0.004309) (0.052970,0.030968) (0.052035,0.015831) (0.050604,0.023496) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4926_2_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4926_2_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..9b00245b275008954e66fd7fa0a8a60a9187f75e --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4926_2_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.744918e+02 -1.588414e-03 -1.590837e-03 +1.000000e-02 3.485203e+02 -3.165748e-03 -3.170460e-03 +1.500000e-02 5.220880e+02 -4.732126e-03 -4.738995e-03 +2.000000e-02 6.951977e+02 -6.287675e-03 -6.296572e-03 +2.500000e-02 8.678494e+02 -7.832647e-03 -7.843634e-03 +3.000000e-02 1.039996e+03 -9.370334e-03 -9.385783e-03 +3.500000e-02 1.211320e+03 -1.092647e-02 -1.094780e-02 +4.000000e-02 1.381560e+03 -1.252311e-02 -1.254518e-02 +4.500000e-02 1.551124e+03 -1.413079e-02 -1.415252e-02 +5.000000e-02 1.720229e+03 -1.573533e-02 -1.575632e-02 +5.500000e-02 1.888915e+03 -1.733442e-02 -1.735421e-02 +6.000000e-02 2.057198e+03 -1.892748e-02 -1.894560e-02 +6.500000e-02 2.225088e+03 -2.051415e-02 -2.053009e-02 +7.000000e-02 2.392595e+03 -2.209409e-02 -2.210738e-02 +7.500000e-02 2.559729e+03 -2.366703e-02 -2.367717e-02 +8.000000e-02 2.726497e+03 -2.523271e-02 -2.523920e-02 +8.500000e-02 2.892906e+03 -2.679090e-02 -2.679323e-02 +9.000000e-02 3.058965e+03 -2.834140e-02 -2.833905e-02 +9.500000e-02 3.224677e+03 -2.988402e-02 -2.987648e-02 +1.000000e-01 3.390050e+03 -3.141861e-02 -3.140537e-02 +volume fraction= 0.492602 +fiber_centers_YZ= (0.008101,0.012457) (0.007207,0.045576) (0.000884,0.024952) (0.016977,0.016021) (0.001591,0.016711) (0.016397,0.005578) (0.007473,0.036849) (0.000259,0.004893) (0.008338,0.028846) (0.017131,0.043929) (0.000018,0.040972) (0.000021,0.032789) (0.008167,0.004201) (0.018142,0.024680) (0.016005,0.034769) (0.008302,0.020546) (0.033101,0.012457) (0.032207,0.045576) (0.025884,0.024952) (0.041977,0.016021) (0.026591,0.016711) (0.041397,0.005578) (0.032473,0.036849) (0.025259,0.004893) (0.033338,0.028846) (0.042131,0.043929) (0.025018,0.040972) (0.025021,0.032789) (0.033167,0.004201) (0.043142,0.024680) (0.041005,0.034769) (0.033302,0.020546) (0.050884,0.024952) (0.051591,0.016711) (0.050259,0.004893) (0.050018,0.040972) (0.050021,0.032789) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4926_2_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4926_2_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..0ede13510f1c0e607840c5fcd530c360761b8736 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4926_2_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 9.704314e+00 +1.000000e-02 1.741551e+01 +1.500000e-02 2.119008e+01 +2.000000e-02 2.294864e+01 +2.500000e-02 2.371094e+01 +3.000000e-02 2.397050e+01 +3.500000e-02 2.398329e+01 +4.000000e-02 2.386412e+01 +4.500000e-02 2.366997e+01 +5.000000e-02 2.340676e+01 +5.500000e-02 2.306244e+01 +6.000000e-02 2.281155e+01 +6.500000e-02 2.277100e+01 +7.000000e-02 2.277804e+01 +7.500000e-02 2.284205e+01 +8.000000e-02 2.303260e+01 +8.500000e-02 2.329010e+01 +9.000000e-02 2.353413e+01 +9.500000e-02 2.374931e+01 +1.000000e-01 2.395557e+01 +volume fraction= 0.492602 +fiber_centers_YZ= (0.008101,0.012457) (0.007207,0.045576) (0.000884,0.024952) (0.016977,0.016021) (0.001591,0.016711) (0.016397,0.005578) (0.007473,0.036849) (0.000259,0.004893) (0.008338,0.028846) (0.017131,0.043929) (0.000018,0.040972) (0.000021,0.032789) (0.008167,0.004201) (0.018142,0.024680) (0.016005,0.034769) (0.008302,0.020546) (0.033101,0.012457) (0.032207,0.045576) (0.025884,0.024952) (0.041977,0.016021) (0.026591,0.016711) (0.041397,0.005578) (0.032473,0.036849) (0.025259,0.004893) (0.033338,0.028846) (0.042131,0.043929) (0.025018,0.040972) (0.025021,0.032789) (0.033167,0.004201) (0.043142,0.024680) (0.041005,0.034769) (0.033302,0.020546) (0.050884,0.024952) (0.051591,0.016711) (0.050259,0.004893) (0.050018,0.040972) (0.050021,0.032789) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4926_2_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4926_2_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..b40f6fa6795f7f021014f185b56ea03959be83d9 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4926_2_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 2.221334e+01 -2.033390e-04 -3.027018e-03 +1.000000e-02 4.266800e+01 -3.929146e-04 -6.144522e-03 +1.500000e-02 5.593249e+01 -5.220530e-04 -9.791385e-03 +2.000000e-02 6.328199e+01 -5.985438e-04 -1.391180e-02 +2.500000e-02 6.770987e+01 -6.480092e-04 -1.825635e-02 +3.000000e-02 7.096195e+01 -6.864160e-04 -2.266662e-02 +3.500000e-02 7.372064e+01 -7.202575e-04 -2.707974e-02 +4.000000e-02 7.626730e+01 -7.522385e-04 -3.147048e-02 +4.500000e-02 7.873640e+01 -7.837443e-04 -3.582579e-02 +5.000000e-02 8.121943e+01 -8.156868e-04 -4.013727e-02 +5.500000e-02 8.375329e+01 -8.484382e-04 -4.440154e-02 +6.000000e-02 8.636467e+01 -8.823537e-04 -4.861571e-02 +6.500000e-02 8.906341e+01 -9.175587e-04 -5.277919e-02 +7.000000e-02 9.185060e+01 -9.540800e-04 -5.689242e-02 +7.500000e-02 9.472323e+01 -9.918908e-04 -6.095636e-02 +8.000000e-02 9.767521e+01 -1.030923e-03 -6.497235e-02 +8.500000e-02 1.006884e+02 -1.070942e-03 -6.894323e-02 +9.000000e-02 1.037626e+02 -1.112013e-03 -7.286913e-02 +9.500000e-02 1.068755e+02 -1.153805e-03 -7.675387e-02 +1.000000e-01 1.100078e+02 -1.196227e-03 -8.059870e-02 +volume fraction= 0.492602 +fiber_centers_YZ= (0.008101,0.012457) (0.007207,0.045576) (0.000884,0.024952) (0.016977,0.016021) (0.001591,0.016711) (0.016397,0.005578) (0.007473,0.036849) (0.000259,0.004893) (0.008338,0.028846) (0.017131,0.043929) (0.000018,0.040972) (0.000021,0.032789) (0.008167,0.004201) (0.018142,0.024680) (0.016005,0.034769) (0.008302,0.020546) (0.033101,0.012457) (0.032207,0.045576) (0.025884,0.024952) (0.041977,0.016021) (0.026591,0.016711) (0.041397,0.005578) (0.032473,0.036849) (0.025259,0.004893) (0.033338,0.028846) (0.042131,0.043929) (0.025018,0.040972) (0.025021,0.032789) (0.033167,0.004201) (0.043142,0.024680) (0.041005,0.034769) (0.033302,0.020546) (0.050884,0.024952) (0.051591,0.016711) (0.050259,0.004893) (0.050018,0.040972) (0.050021,0.032789) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4926_3_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4926_3_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..e8505cf0d0e30a4f571f907c145801b585a7975d --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4926_3_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.744991e+02 -1.558303e-03 -1.620293e-03 +1.000000e-02 3.485347e+02 -3.105623e-03 -3.229282e-03 +1.500000e-02 5.221092e+02 -4.642085e-03 -4.827092e-03 +2.000000e-02 6.952254e+02 -6.167816e-03 -6.413852e-03 +2.500000e-02 8.678833e+02 -7.683157e-03 -7.989921e-03 +3.000000e-02 1.040036e+03 -9.192500e-03 -9.559811e-03 +3.500000e-02 1.211366e+03 -1.072023e-02 -1.114978e-02 +4.000000e-02 1.381611e+03 -1.228157e-02 -1.278197e-02 +4.500000e-02 1.551181e+03 -1.385104e-02 -1.442699e-02 +5.000000e-02 1.720291e+03 -1.541645e-02 -1.606938e-02 +5.500000e-02 1.888983e+03 -1.697576e-02 -1.770652e-02 +6.000000e-02 2.057270e+03 -1.852844e-02 -1.933776e-02 +6.500000e-02 2.225165e+03 -2.007414e-02 -2.096269e-02 +7.000000e-02 2.392677e+03 -2.161257e-02 -2.258095e-02 +7.500000e-02 2.559815e+03 -2.314348e-02 -2.419223e-02 +8.000000e-02 2.726587e+03 -2.466664e-02 -2.579624e-02 +8.500000e-02 2.893001e+03 -2.618182e-02 -2.739273e-02 +9.000000e-02 3.059063e+03 -2.768886e-02 -2.898145e-02 +9.500000e-02 3.224780e+03 -2.918760e-02 -3.056221e-02 +1.000000e-01 3.390156e+03 -3.067790e-02 -3.213482e-02 +volume fraction= 0.492602 +fiber_centers_YZ= (0.016330,0.028995) (0.000479,0.029560) (0.007995,0.004667) (0.000569,0.045606) (0.012430,0.020525) (0.009901,0.042321) (0.017098,0.045654) (0.000036,0.006624) (0.015780,0.005533) (0.018885,0.036876) (0.005006,0.023016) (0.008649,0.032501) (0.007419,0.013471) (0.016800,0.013952) (0.002491,0.037981) (0.000178,0.016722) (0.041330,0.028995) (0.025479,0.029560) (0.032995,0.004667) (0.025569,0.045606) (0.037430,0.020525) (0.034901,0.042321) (0.042098,0.045654) (0.025036,0.006624) (0.040780,0.005533) (0.043885,0.036876) (0.030006,0.023016) (0.033649,0.032501) (0.032419,0.013471) (0.041800,0.013952) (0.027491,0.037981) (0.025178,0.016722) (0.050479,0.029560) (0.050569,0.045606) (0.050036,0.006624) (0.052491,0.037981) (0.050178,0.016722) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4926_3_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4926_3_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..506c5a6da048c7f87694e4b7f61ec1650a9ddcd4 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4926_3_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 1.005078e+01 +1.000000e-02 1.775133e+01 +1.500000e-02 2.166950e+01 +2.000000e-02 2.345437e+01 +2.500000e-02 2.414542e+01 +3.000000e-02 2.433239e+01 +3.500000e-02 2.422528e+01 +4.000000e-02 2.386093e+01 +4.500000e-02 2.345054e+01 +5.000000e-02 2.338277e+01 +5.500000e-02 2.347562e+01 +6.000000e-02 2.353254e+01 +6.500000e-02 2.369480e+01 +7.000000e-02 2.400259e+01 +7.500000e-02 2.435293e+01 +8.000000e-02 2.466156e+01 +8.500000e-02 2.488781e+01 +9.000000e-02 2.504615e+01 +9.500000e-02 2.518585e+01 +1.000000e-01 2.534804e+01 +volume fraction= 0.492602 +fiber_centers_YZ= (0.016330,0.028995) (0.000479,0.029560) (0.007995,0.004667) (0.000569,0.045606) (0.012430,0.020525) (0.009901,0.042321) (0.017098,0.045654) (0.000036,0.006624) (0.015780,0.005533) (0.018885,0.036876) (0.005006,0.023016) (0.008649,0.032501) (0.007419,0.013471) (0.016800,0.013952) (0.002491,0.037981) (0.000178,0.016722) (0.041330,0.028995) (0.025479,0.029560) (0.032995,0.004667) (0.025569,0.045606) (0.037430,0.020525) (0.034901,0.042321) (0.042098,0.045654) (0.025036,0.006624) (0.040780,0.005533) (0.043885,0.036876) (0.030006,0.023016) (0.033649,0.032501) (0.032419,0.013471) (0.041800,0.013952) (0.027491,0.037981) (0.025178,0.016722) (0.050479,0.029560) (0.050569,0.045606) (0.050036,0.006624) (0.052491,0.037981) (0.050178,0.016722) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4926_3_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4926_3_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..65f0c6ef647db7e357b8384598cd4c24ff982772 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4926_3_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 2.033552e+01 -1.824132e-04 -3.268331e-03 +1.000000e-02 3.893633e+01 -3.514078e-04 -6.614172e-03 +1.500000e-02 5.091056e+01 -4.666555e-04 -1.040447e-02 +2.000000e-02 5.752924e+01 -5.346173e-04 -1.460905e-02 +2.500000e-02 6.131229e+01 -5.762488e-04 -1.902948e-02 +3.000000e-02 6.373999e+01 -6.047463e-04 -2.353527e-02 +3.500000e-02 6.548306e+01 -6.263608e-04 -2.806493e-02 +4.000000e-02 6.684681e+01 -6.440571e-04 -3.258950e-02 +4.500000e-02 6.799886e+01 -6.595250e-04 -3.709292e-02 +5.000000e-02 6.903841e+01 -6.737699e-04 -4.156596e-02 +5.500000e-02 7.002405e+01 -6.874188e-04 -4.600320e-02 +6.000000e-02 7.100113e+01 -7.009321e-04 -5.040102e-02 +6.500000e-02 7.198294e+01 -7.143457e-04 -5.475959e-02 +7.000000e-02 7.298698e+01 -7.279066e-04 -5.907726e-02 +7.500000e-02 7.402215e+01 -7.417083e-04 -6.335374e-02 +8.000000e-02 7.509301e+01 -7.558068e-04 -6.758908e-02 +8.500000e-02 7.620103e+01 -7.702297e-04 -7.178358e-02 +9.000000e-02 7.734572e+01 -7.849820e-04 -7.593772e-02 +9.500000e-02 7.852522e+01 -8.000537e-04 -8.005208e-02 +1.000000e-01 7.973633e+01 -8.154219e-04 -8.412740e-02 +volume fraction= 0.492602 +fiber_centers_YZ= (0.016330,0.028995) (0.000479,0.029560) (0.007995,0.004667) (0.000569,0.045606) (0.012430,0.020525) (0.009901,0.042321) (0.017098,0.045654) (0.000036,0.006624) (0.015780,0.005533) (0.018885,0.036876) (0.005006,0.023016) (0.008649,0.032501) (0.007419,0.013471) (0.016800,0.013952) (0.002491,0.037981) (0.000178,0.016722) (0.041330,0.028995) (0.025479,0.029560) (0.032995,0.004667) (0.025569,0.045606) (0.037430,0.020525) (0.034901,0.042321) (0.042098,0.045654) (0.025036,0.006624) (0.040780,0.005533) (0.043885,0.036876) (0.030006,0.023016) (0.033649,0.032501) (0.032419,0.013471) (0.041800,0.013952) (0.027491,0.037981) (0.025178,0.016722) (0.050479,0.029560) (0.050569,0.045606) (0.050036,0.006624) (0.052491,0.037981) (0.050178,0.016722) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4926_4_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4926_4_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..d86a6b4d53380bbaf417300b004acfbd3189878e --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4926_4_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.744858e+02 -1.574998e-03 -1.606112e-03 +1.000000e-02 3.485089e+02 -3.138975e-03 -3.200929e-03 +1.500000e-02 5.220722e+02 -4.692054e-03 -4.784577e-03 +2.000000e-02 6.951780e+02 -6.234362e-03 -6.357186e-03 +2.500000e-02 8.678267e+02 -7.766163e-03 -7.919163e-03 +3.000000e-02 1.039972e+03 -9.290932e-03 -9.475634e-03 +3.500000e-02 1.211294e+03 -1.083479e-02 -1.105113e-02 +4.000000e-02 1.381532e+03 -1.241701e-02 -1.266423e-02 +4.500000e-02 1.551096e+03 -1.400898e-02 -1.428842e-02 +5.000000e-02 1.720200e+03 -1.559758e-02 -1.590919e-02 +5.500000e-02 1.888887e+03 -1.718068e-02 -1.752402e-02 +6.000000e-02 2.057170e+03 -1.875773e-02 -1.913229e-02 +6.500000e-02 2.225061e+03 -2.032836e-02 -2.073360e-02 +7.000000e-02 2.392570e+03 -2.189227e-02 -2.232763e-02 +7.500000e-02 2.559705e+03 -2.344920e-02 -2.391407e-02 +8.000000e-02 2.726475e+03 -2.499890e-02 -2.549267e-02 +8.500000e-02 2.892887e+03 -2.654114e-02 -2.706317e-02 +9.000000e-02 3.058947e+03 -2.807574e-02 -2.862537e-02 +9.500000e-02 3.224662e+03 -2.960251e-02 -3.017909e-02 +1.000000e-01 3.390037e+03 -3.112131e-02 -3.172415e-02 +volume fraction= 0.492602 +fiber_centers_YZ= (0.007803,0.021269) (0.017257,0.044906) (0.000124,0.017139) (0.001056,0.026811) (0.000280,0.044002) (0.008286,0.029957) (0.007152,0.013364) (0.016706,0.006605) (0.008555,0.005442) (0.015294,0.026333) (0.001284,0.035366) (0.000800,0.007541) (0.008949,0.037794) (0.008972,0.045794) (0.016513,0.035153) (0.015183,0.014637) (0.032803,0.021269) (0.042257,0.044906) (0.025124,0.017139) (0.026056,0.026811) (0.025280,0.044002) (0.033286,0.029957) (0.032152,0.013364) (0.041706,0.006605) (0.033555,0.005442) (0.040294,0.026333) (0.026284,0.035366) (0.025800,0.007541) (0.033949,0.037794) (0.033972,0.045794) (0.041513,0.035153) (0.040183,0.014637) (0.050124,0.017139) (0.051056,0.026811) (0.050280,0.044002) (0.051284,0.035366) (0.050800,0.007541) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4926_4_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4926_4_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..a14aa4c2d30983e6a7240922cda124910dbeee88 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4926_4_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 9.813919e+00 +1.000000e-02 1.741834e+01 +1.500000e-02 2.124358e+01 +2.000000e-02 2.297972e+01 +2.500000e-02 2.373238e+01 +3.000000e-02 2.399015e+01 +3.500000e-02 2.399571e+01 +4.000000e-02 2.385457e+01 +4.500000e-02 2.361421e+01 +5.000000e-02 2.329417e+01 +5.500000e-02 2.297244e+01 +6.000000e-02 2.281907e+01 +6.500000e-02 2.278262e+01 +7.000000e-02 2.281749e+01 +7.500000e-02 2.293995e+01 +8.000000e-02 2.313776e+01 +8.500000e-02 2.336845e+01 +9.000000e-02 2.357767e+01 +9.500000e-02 2.376746e+01 +1.000000e-01 2.394892e+01 +volume fraction= 0.492602 +fiber_centers_YZ= (0.007803,0.021269) (0.017257,0.044906) (0.000124,0.017139) (0.001056,0.026811) (0.000280,0.044002) (0.008286,0.029957) (0.007152,0.013364) (0.016706,0.006605) (0.008555,0.005442) (0.015294,0.026333) (0.001284,0.035366) (0.000800,0.007541) (0.008949,0.037794) (0.008972,0.045794) (0.016513,0.035153) (0.015183,0.014637) (0.032803,0.021269) (0.042257,0.044906) (0.025124,0.017139) (0.026056,0.026811) (0.025280,0.044002) (0.033286,0.029957) (0.032152,0.013364) (0.041706,0.006605) (0.033555,0.005442) (0.040294,0.026333) (0.026284,0.035366) (0.025800,0.007541) (0.033949,0.037794) (0.033972,0.045794) (0.041513,0.035153) (0.040183,0.014637) (0.050124,0.017139) (0.051056,0.026811) (0.050280,0.044002) (0.051284,0.035366) (0.050800,0.007541) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4926_4_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4926_4_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..c268b26e171a629b5cd7cd1ddea44f062334001c --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4926_4_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 2.327862e+01 -2.113747e-04 -2.972096e-03 +1.000000e-02 4.442454e+01 -4.068077e-04 -6.049182e-03 +1.500000e-02 5.812831e+01 -5.408418e-04 -9.653541e-03 +2.000000e-02 6.598367e+01 -6.227667e-04 -1.372507e-02 +2.500000e-02 7.080063e+01 -6.764727e-04 -1.803443e-02 +3.000000e-02 7.426091e+01 -7.173205e-04 -2.242921e-02 +3.500000e-02 7.714546e+01 -7.526113e-04 -2.683758e-02 +4.000000e-02 7.981668e+01 -7.858529e-04 -3.122598e-02 +4.500000e-02 8.243413e+01 -8.187321e-04 -3.557844e-02 +5.000000e-02 8.507602e+01 -8.521620e-04 -3.988652e-02 +5.500000e-02 8.778696e+01 -8.865824e-04 -4.414664e-02 +6.000000e-02 9.058336e+01 -9.222295e-04 -4.835694e-02 +6.500000e-02 9.347463e+01 -9.592553e-04 -5.251659e-02 +7.000000e-02 9.643966e+01 -9.973766e-04 -5.662881e-02 +7.500000e-02 9.947252e+01 -1.036572e-03 -6.069451e-02 +8.000000e-02 1.025562e+02 -1.076662e-03 -6.471608e-02 +8.500000e-02 1.056693e+02 -1.117419e-03 -6.869636e-02 +9.000000e-02 1.087880e+02 -1.158578e-03 -7.263844e-02 +9.500000e-02 1.118878e+02 -1.199866e-03 -7.654543e-02 +1.000000e-01 1.149454e+02 -1.241012e-03 -8.042025e-02 +volume fraction= 0.492602 +fiber_centers_YZ= (0.007803,0.021269) (0.017257,0.044906) (0.000124,0.017139) (0.001056,0.026811) (0.000280,0.044002) (0.008286,0.029957) (0.007152,0.013364) (0.016706,0.006605) (0.008555,0.005442) (0.015294,0.026333) (0.001284,0.035366) (0.000800,0.007541) (0.008949,0.037794) (0.008972,0.045794) (0.016513,0.035153) (0.015183,0.014637) (0.032803,0.021269) (0.042257,0.044906) (0.025124,0.017139) (0.026056,0.026811) (0.025280,0.044002) (0.033286,0.029957) (0.032152,0.013364) (0.041706,0.006605) (0.033555,0.005442) (0.040294,0.026333) (0.026284,0.035366) (0.025800,0.007541) (0.033949,0.037794) (0.033972,0.045794) (0.041513,0.035153) (0.040183,0.014637) (0.050124,0.017139) (0.051056,0.026811) (0.050280,0.044002) (0.051284,0.035366) (0.050800,0.007541) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4926_5_11.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4926_5_11.txt new file mode 100644 index 0000000000000000000000000000000000000000..1e3770e7e184675e58d11efb51712442536b0511 --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4926_5_11.txt @@ -0,0 +1,24 @@ +Strain_11 Stress_11 Strain_22 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 1.744859e+02 -1.594479e-03 -1.587386e-03 +1.000000e-02 3.485095e+02 -3.177790e-03 -3.163632e-03 +1.500000e-02 5.220734e+02 -4.750056e-03 -4.728864e-03 +2.000000e-02 6.951803e+02 -6.311407e-03 -6.283211e-03 +2.500000e-02 8.678303e+02 -7.862194e-03 -7.826961e-03 +3.000000e-02 1.039978e+03 -9.406878e-03 -9.363856e-03 +3.500000e-02 1.211303e+03 -1.097100e-02 -1.091881e-02 +4.000000e-02 1.381541e+03 -1.257433e-02 -1.251126e-02 +4.500000e-02 1.551106e+03 -1.418868e-02 -1.411355e-02 +5.000000e-02 1.720213e+03 -1.579997e-02 -1.571208e-02 +5.500000e-02 1.888901e+03 -1.740583e-02 -1.730456e-02 +6.000000e-02 2.057187e+03 -1.900567e-02 -1.889042e-02 +6.500000e-02 2.225080e+03 -2.059911e-02 -2.046929e-02 +7.000000e-02 2.392592e+03 -2.218584e-02 -2.204087e-02 +7.500000e-02 2.559730e+03 -2.376556e-02 -2.360486e-02 +8.000000e-02 2.726503e+03 -2.533802e-02 -2.516103e-02 +8.500000e-02 2.892917e+03 -2.690298e-02 -2.670915e-02 +9.000000e-02 3.058981e+03 -2.846022e-02 -2.824903e-02 +9.500000e-02 3.224699e+03 -3.000957e-02 -2.978050e-02 +1.000000e-01 3.390077e+03 -3.155085e-02 -3.130341e-02 +volume fraction= 0.492602 +fiber_centers_YZ= (0.000042,0.023899) (0.017234,0.045466) (0.016882,0.037534) (0.007944,0.018467) (0.008938,0.004706) (0.007532,0.027226) (0.000096,0.004769) (0.013553,0.013052) (0.016874,0.020416) (0.017280,0.005710) (0.000493,0.031945) (0.007502,0.044112) (0.000504,0.039756) (0.015905,0.029801) (0.007692,0.034999) (0.000025,0.013932) (0.025042,0.023899) (0.042234,0.045466) (0.041882,0.037534) (0.032944,0.018467) (0.033938,0.004706) (0.032532,0.027226) (0.025096,0.004769) (0.038553,0.013052) (0.041874,0.020416) (0.042280,0.005710) (0.025493,0.031945) (0.032502,0.044112) (0.025504,0.039756) (0.040905,0.029801) (0.032692,0.034999) (0.025025,0.013932) (0.050042,0.023899) (0.050096,0.004769) (0.050493,0.031945) (0.050504,0.039756) (0.050025,0.013932) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4926_5_12.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4926_5_12.txt new file mode 100644 index 0000000000000000000000000000000000000000..f9081700b0165e09cf9ec37913a58737c9356caa --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4926_5_12.txt @@ -0,0 +1,24 @@ +Strain_12 Stress_12 +0.000000e+00 0.000000e+00 +5.000000e-03 9.593057e+00 +1.000000e-02 1.745316e+01 +1.500000e-02 2.138537e+01 +2.000000e-02 2.320460e+01 +2.500000e-02 2.395013e+01 +3.000000e-02 2.416381e+01 +3.500000e-02 2.411150e+01 +4.000000e-02 2.392011e+01 +4.500000e-02 2.365663e+01 +5.000000e-02 2.343410e+01 +5.500000e-02 2.334460e+01 +6.000000e-02 2.339781e+01 +6.500000e-02 2.354478e+01 +7.000000e-02 2.371524e+01 +7.500000e-02 2.386302e+01 +8.000000e-02 2.399114e+01 +8.500000e-02 2.411538e+01 +9.000000e-02 2.425066e+01 +9.500000e-02 2.441519e+01 +1.000000e-01 2.454863e+01 +volume fraction= 0.492602 +fiber_centers_YZ= (0.000042,0.023899) (0.017234,0.045466) (0.016882,0.037534) (0.007944,0.018467) (0.008938,0.004706) (0.007532,0.027226) (0.000096,0.004769) (0.013553,0.013052) (0.016874,0.020416) (0.017280,0.005710) (0.000493,0.031945) (0.007502,0.044112) (0.000504,0.039756) (0.015905,0.029801) (0.007692,0.034999) (0.000025,0.013932) (0.025042,0.023899) (0.042234,0.045466) (0.041882,0.037534) (0.032944,0.018467) (0.033938,0.004706) (0.032532,0.027226) (0.025096,0.004769) (0.038553,0.013052) (0.041874,0.020416) (0.042280,0.005710) (0.025493,0.031945) (0.032502,0.044112) (0.025504,0.039756) (0.040905,0.029801) (0.032692,0.034999) (0.025025,0.013932) (0.050042,0.023899) (0.050096,0.004769) (0.050493,0.031945) (0.050504,0.039756) (0.050025,0.013932) diff --git a/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4926_5_22.txt b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4926_5_22.txt new file mode 100644 index 0000000000000000000000000000000000000000..6a0e17b06ad1f8a469fdfa8c49a0d14c3167111d --- /dev/null +++ b/data_generation/shahriar_modified_2025_12/RVE_Datasets/GPP_0.4926_5_22.txt @@ -0,0 +1,24 @@ +Strain_22 Stress_22 Strain_11 Strain_33 +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +5.000000e-03 2.120928e+01 -1.948136e-04 -3.100091e-03 +1.000000e-02 4.088347e+01 -3.776289e-04 -6.273890e-03 +1.500000e-02 5.396941e+01 -5.047687e-04 -9.937176e-03 +2.000000e-02 6.131876e+01 -5.805369e-04 -1.406790e-02 +2.500000e-02 6.572654e+01 -6.290202e-04 -1.842681e-02 +3.000000e-02 6.874756e+01 -6.641990e-04 -2.287452e-02 +3.500000e-02 7.109568e+01 -6.927771e-04 -2.734481e-02 +4.000000e-02 7.311745e+01 -7.181899e-04 -3.180381e-02 +4.500000e-02 7.500288e+01 -7.423743e-04 -3.623265e-02 +5.000000e-02 7.684489e+01 -7.663128e-04 -4.062190e-02 +5.500000e-02 7.868921e+01 -7.905194e-04 -4.496704e-02 +6.000000e-02 8.056653e+01 -8.153102e-04 -4.926591e-02 +6.500000e-02 8.247350e+01 -8.405561e-04 -5.352045e-02 +7.000000e-02 8.441595e+01 -8.663646e-04 -5.773039e-02 +7.500000e-02 8.639174e+01 -8.926851e-04 -6.189677e-02 +8.000000e-02 8.839531e+01 -9.194310e-04 -6.602081e-02 +8.500000e-02 9.040801e+01 -9.463039e-04 -7.010554e-02 +9.000000e-02 9.243824e+01 -9.735273e-04 -7.414922e-02 +9.500000e-02 9.446393e+01 -1.000792e-03 -7.815483e-02 +1.000000e-01 9.646982e+01 -1.027937e-03 -8.212391e-02 +volume fraction= 0.492602 +fiber_centers_YZ= (0.000042,0.023899) (0.017234,0.045466) (0.016882,0.037534) (0.007944,0.018467) (0.008938,0.004706) (0.007532,0.027226) (0.000096,0.004769) (0.013553,0.013052) (0.016874,0.020416) (0.017280,0.005710) (0.000493,0.031945) (0.007502,0.044112) (0.000504,0.039756) (0.015905,0.029801) (0.007692,0.034999) (0.000025,0.013932) (0.025042,0.023899) (0.042234,0.045466) (0.041882,0.037534) (0.032944,0.018467) (0.033938,0.004706) (0.032532,0.027226) (0.025096,0.004769) (0.038553,0.013052) (0.041874,0.020416) (0.042280,0.005710) (0.025493,0.031945) (0.032502,0.044112) (0.025504,0.039756) (0.040905,0.029801) (0.032692,0.034999) (0.025025,0.013932) (0.050042,0.023899) (0.050096,0.004769) (0.050493,0.031945) (0.050504,0.039756) (0.050025,0.013932) diff --git a/hybrid_diffusion_material_generation/checkpoints/config_1_continuous_100_epoch/exp_20260114_164540/best_model.pt b/hybrid_diffusion_material_generation/checkpoints/config_1_continuous_100_epoch/exp_20260114_164540/best_model.pt new file mode 100644 index 0000000000000000000000000000000000000000..b09c5434e5f60299cbd0602daa4e3369e22ad052 --- /dev/null +++ b/hybrid_diffusion_material_generation/checkpoints/config_1_continuous_100_epoch/exp_20260114_164540/best_model.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8aafe2a67097e06eea3fc09caa22e76acdef941c9aa8696e101c933e074c7c17 +size 108633654 diff --git a/hybrid_diffusion_material_generation/checkpoints/config_1_continuous_100_epoch/exp_20260114_164540/training_config.json b/hybrid_diffusion_material_generation/checkpoints/config_1_continuous_100_epoch/exp_20260114_164540/training_config.json new file mode 100644 index 0000000000000000000000000000000000000000..fe4c633c645ea8d4834e8b211244aaa250f84c02 --- /dev/null +++ b/hybrid_diffusion_material_generation/checkpoints/config_1_continuous_100_epoch/exp_20260114_164540/training_config.json @@ -0,0 +1,44 @@ +{ + "data_dir": "/project/luofeng/feiyang/MaterialGeneration/data_generation/processed_dataset/config_1/", + "output_dir": "./checkpoints/config_1_continuous_100_epoch/", + "experiment_dir": "./checkpoints/config_1_continuous_100_epoch/exp_20260114_164540", + "timestamp": "20260114_164540", + "batch_size": 32, + "num_epochs": 100, + "learning_rate": 0.0001, + "T": 100, + "n_max_layer": 10, + "beta_start": 0.0001, + "beta_end": 0.02, + "lambda_angle": 1.0, + "lambda_material": 1.0, + "lambda_vf_category": 1.0, + "lambda_layer": 1.0, + "save_every": 5, + "normalization_method": "zscore", + "random_seed": 533, + "device": "cuda:1", + "gen_eval_n_samples": 100, + "gen_eval_every": 5, + "use_discrete_angles": false, + "visualize_matches": true, + "save_visualizations": true, + "n_visualization_samples": 200, + "warmup_ratio": 0.01, + "log_every_n_steps": 100, + "model_config": { + "n_conditions": 15, + "n_materials": 4, + "n_vf_categories": 5, + "n_max_layer": 10, + "d_model": 256, + "n_heads": 4, + "n_layers": 6, + "dropout": 0.0 + }, + "mask_ids": { + "material": 4, + "vf_category": 5, + "layer": 2 + } +} \ No newline at end of file diff --git a/hybrid_diffusion_material_generation/dataset.py b/hybrid_diffusion_material_generation/dataset.py new file mode 100644 index 0000000000000000000000000000000000000000..aa2e34dd406b589f8ba14b4af8fc841d77c74f21 --- /dev/null +++ b/hybrid_diffusion_material_generation/dataset.py @@ -0,0 +1,525 @@ +""" +PyTorch Dataset for loading processed material design data. + +This module provides a Dataset class that: +1. Loads processed data from .npz files +2. Normalizes coefficients using min/max/std statistics +3. Converts angles from degrees to radians +4. Constructs inputs for MaterialHybridDenoiser model +""" + +import numpy as np +import torch +from torch.utils.data import Dataset +from typing import Dict, Optional, Tuple +import math +from load_processed_data import load_processed_data, load_metadata + + +class MaterialDesignDataset(Dataset): + """ + PyTorch Dataset for material design data. + + Loads processed data and constructs inputs for MaterialHybridDenoiser: + - material_t: (B,) material type + - vf_category_t: (B,) volume fraction category (0-4) + - layer_t: (B, L) layer alive/dead mask + - angle_t: (B, L, 1) angles in radians + - cond: (B, C) normalized polynomial coefficients + """ + + def __init__( + self, + data_dir: str, + split: str = 'train', + n_max_layer: int = 10, + normalize_coefficients: bool = True, + normalize_method: str = 'minmax', # 'minmax' or 'zscore' + device: Optional[torch.device] = None, + use_discrete_angles: bool = True, # If True, use discrete angle categories + angle_resolution: float = 1.0 # Resolution in degrees for angle discretization + ): + """ + Initialize dataset. + + Args: + data_dir: Directory containing processed data + split: 'train' or 'test' + n_max_layer: Maximum number of layers (L in model). If None, will be determined from metadata. + normalize_coefficients: Whether to normalize coefficients + normalize_method: 'minmax' or 'zscore' normalization + device: Device to move tensors to (None = CPU) + use_discrete_angles: If True, use discrete angle categories + angle_resolution: Resolution in degrees for angle discretization (default: 1.0) + """ + self.data_dir = data_dir + self.split = split + self.normalize_coefficients = normalize_coefficients + self.normalize_method = normalize_method + self.device = device or torch.device('cpu') + self.use_discrete_angles = use_discrete_angles + self.angle_resolution = angle_resolution + + # Load data + print(f"Loading {split} data from {data_dir}...") + self.data = load_processed_data(data_dir, split) + self.metadata = load_metadata(data_dir) + + # Determine n_max_layer from metadata if not provided + if n_max_layer is None: + n_max_layer = self.metadata.get('max_layers', 10) + print(f" Using max_layers from metadata: {n_max_layer}") + self.n_max_layer = n_max_layer + + # Get angle range from metadata + angle_min_raw = float(self.metadata.get('angle_min', 0.0)) + angle_max_raw = float(self.metadata.get('angle_max', 90.0)) + + # Generate angle categories based on resolution + if use_discrete_angles: + # Floor the min and ceil the max to ensure full coverage + self.angle_min = np.floor(angle_min_raw / angle_resolution) * angle_resolution + self.angle_max = np.ceil(angle_max_raw / angle_resolution) * angle_resolution + + # Generate categories from floored min to ceiled max with given resolution + num_categories = int((self.angle_max - self.angle_min) / angle_resolution) + 1 + self.angle_categories = np.linspace(self.angle_min, self.angle_max, num_categories, dtype=np.float32) + self.n_angle_categories = len(self.angle_categories) + print(f" Angle categories: {self.n_angle_categories} categories from {self.angle_min}° to {self.angle_max}° (resolution: {angle_resolution}°, raw range: {angle_min_raw}° to {angle_max_raw}°)") + else: + self.angle_min = angle_min_raw + self.angle_max = angle_max_raw + self.angle_categories = None + self.n_angle_categories = None + + # Get normalization statistics from metadata (must use metadata for consistency) + self.coeff_min = np.array(self.metadata['coefficient_min'], dtype=np.float32) + self.coeff_max = np.array(self.metadata['coefficient_max'], dtype=np.float32) + self.coeff_mean = np.array(self.metadata['coefficient_mean'], dtype=np.float32) + self.coeff_std = np.array(self.metadata['coefficient_std'], dtype=np.float32) + + # Verify metadata has required statistics + if normalize_method == 'zscore': + if len(self.coeff_mean) == 0 or len(self.coeff_std) == 0: + raise ValueError("Metadata must contain 'coefficient_mean' and 'coefficient_std' for zscore normalization") + elif normalize_method == 'minmax': + if len(self.coeff_min) == 0 or len(self.coeff_max) == 0: + raise ValueError("Metadata must contain 'coefficient_min' and 'coefficient_max' for minmax normalization") + + # Note: Angles are converted from degrees to radians only (no normalization) + + # Dataset size + self.n_samples = len(self.data['polynomial_coefficients']) + + print(f" Loaded {self.n_samples} samples") + print(f" Coefficient normalization: {normalize_method if normalize_coefficients else 'none'}") + print(f" Max layers: {self.n_max_layer}") + + def __len__(self) -> int: + return self.n_samples + + def _normalize_coefficients(self, coeffs: np.ndarray) -> np.ndarray: + """ + Normalize polynomial coefficients. + + Args: + coeffs: Coefficients of shape [5, degree] + + Returns: + Normalized coefficients of shape [5*degree] + """ + coeffs_flat = coeffs.flatten() # [5*degree] + + if not self.normalize_coefficients: + return coeffs_flat + + if self.normalize_method == 'minmax': + # Min-max normalization to [0, 1] + range_vals = self.coeff_max - self.coeff_min + range_vals = np.where(range_vals == 0, 1.0, range_vals) # Avoid division by zero + normalized = (coeffs_flat - self.coeff_min) / range_vals + elif self.normalize_method == 'zscore': + # Z-score normalization (mean=0, std=1) + std_vals = np.where(self.coeff_std == 0, 1.0, self.coeff_std) # Avoid division by zero + normalized = (coeffs_flat - self.coeff_mean) / std_vals + else: + raise ValueError(f"Unknown normalization method: {self.normalize_method}") + + return normalized.astype(np.float32) + + def _degrees_to_radians(self, angles_deg: np.ndarray) -> np.ndarray: + """ + Convert angles from degrees to radians (no normalization). + + Args: + angles_deg: Angles in degrees + + Returns: + Angles in radians (raw conversion, not normalized) + """ + return np.deg2rad(angles_deg).astype(np.float32) + + def _volume_fraction_to_category(self, volume_fraction: float) -> int: + """ + Convert volume fraction to category index. + + Categories: + 0: 0.0924 + 1: 0.2155 + 2: 0.3079 + 3: 0.4002 + 4: 0.4926 + + Args: + volume_fraction: Volume fraction value + + Returns: + Category index (0-4) + """ + vf_categories = np.array([0.0924, 0.2155, 0.3079, 0.4002, 0.4926], dtype=np.float32) + distances = np.abs(vf_categories - volume_fraction) + category_idx = np.argmin(distances) + return int(category_idx) + + def _degrees_to_category(self, angles_deg: np.ndarray) -> np.ndarray: + """ + Convert angles from degrees to discrete categories. + + Categories are dynamically generated from angle_min to angle_max with angle_resolution. + + Args: + angles_deg: Angles in degrees + + Returns: + Category indices as int64 + """ + if self.angle_categories is None: + raise ValueError("Angle categories not initialized. Set use_discrete_angles=True.") + + # Find closest category for each angle + angles_deg = np.asarray(angles_deg, dtype=np.float32) + # Reshape for broadcasting + if angles_deg.ndim == 0: + angles_deg = angles_deg.reshape(1) + + # Compute distances to each category + distances = np.abs(angles_deg[:, np.newaxis] - self.angle_categories[np.newaxis, :]) + # Find index of closest category + category_indices = np.argmin(distances, axis=1) + + return category_indices.astype(np.int64) + + def _category_to_degrees(self, category_indices: np.ndarray) -> np.ndarray: + """ + Convert category indices back to degrees. + + Args: + category_indices: Category indices (int64) + + Returns: + Angles in degrees (float32) + """ + if self.angle_categories is None: + raise ValueError("Angle categories not initialized. Set use_discrete_angles=True.") + + category_indices = np.asarray(category_indices, dtype=np.int64) + # Clip to valid range + category_indices = np.clip(category_indices, 0, len(self.angle_categories) - 1) + return self.angle_categories[category_indices].astype(np.float32) + + def _prepare_layers( + self, + stacking_sequence: np.ndarray, + n_layers: int, + use_discrete_angles: bool = True + ) -> Tuple[np.ndarray, np.ndarray]: + """ + Prepare layer data: angles and alive/dead mask. + + Args: + stacking_sequence: Array of angles in degrees [n_layers] + n_layers: Actual number of layers + use_discrete_angles: If True, convert angles to discrete categories; if False, use continuous radians + + Returns: + Tuple of (angles, layer_mask): + - angles: [n_max_layer] discrete category indices (if use_discrete_angles) or [n_max_layer, 1] radians (if not) + - layer_mask: [n_max_layer] 1 for alive, 0 for dead + """ + if use_discrete_angles: + # Convert to discrete categories + angles_cat = self._degrees_to_category(stacking_sequence[:n_layers]) + n_angle_categories = self.n_angle_categories + dead_category = n_angle_categories # Category n_angle_categories = dead layer + + # Pad or truncate to n_max_layer + if n_layers < self.n_max_layer: + # Pad with dead_category (category n_angle_categories = dead layer) + angles_padded = np.full(self.n_max_layer, dead_category, dtype=np.int64) + angles_padded[:n_layers] = angles_cat + layer_mask = np.zeros(self.n_max_layer, dtype=np.int64) + layer_mask[:n_layers] = 1 # 1 = alive + else: + # Truncate + angles_padded = angles_cat[:self.n_max_layer] + layer_mask = np.ones(self.n_max_layer, dtype=np.int64) + + return angles_padded, layer_mask + else: + # Original continuous version (for backward compatibility) + # Convert to radians (no normalization) + angles_rad = self._degrees_to_radians(stacking_sequence[:n_layers]) + + # Pad or truncate to n_max_layer + if n_layers < self.n_max_layer: + # Pad with zeros + angles_padded = np.zeros(self.n_max_layer, dtype=np.float32) + angles_padded[:n_layers] = angles_rad + layer_mask = np.zeros(self.n_max_layer, dtype=np.int64) + layer_mask[:n_layers] = 1 # 1 = alive + else: + # Truncate + angles_padded = angles_rad[:self.n_max_layer] + layer_mask = np.ones(self.n_max_layer, dtype=np.int64) + + # Reshape angles to [n_max_layer, 1] + angles_padded = angles_padded.reshape(-1, 1) + + return angles_padded, layer_mask + + def __getitem__(self, idx: int) -> Dict[str, torch.Tensor]: + """ + Get a single sample. + + Args: + idx: Sample index + + Returns: + Dictionary with model inputs: + - material_t: (1,) material type + - vf_category_t: (1,) volume fraction category (0-4) + - layer_t: (n_max_layer,) layer alive/dead mask + - angle_t: (n_max_layer, 1) angles in radians (converted from degrees, not normalized) + - cond: (5*degree,) normalized polynomial coefficients + """ + # Extract data + coeffs = self.data['polynomial_coefficients'][idx] # [5, degree] + material_type = self.data['material_type'][idx] # scalar + volume_fraction = self.data['volume_fraction'][idx] # scalar + stacking_sequence = self.data['stacking_sequence'][idx] # [max_layers] + n_layers = self.data['stacking_sequence_lengths'][idx] # scalar + + # Convert volume fraction to category (0-4) + vf_category = self._volume_fraction_to_category(volume_fraction) + + # Normalize coefficients + cond = self._normalize_coefficients(coeffs) # [5*degree] + + # Prepare layers + angles, layer_mask = self._prepare_layers(stacking_sequence, n_layers, use_discrete_angles=self.use_discrete_angles) + + # Convert to tensors (keep on CPU, let DataLoader handle device transfer) + if self.use_discrete_angles: + angle_dtype = torch.long + else: + angle_dtype = torch.float32 + + sample = { + 'material_t': torch.tensor([material_type], dtype=torch.long), + 'vf_category_t': torch.tensor([vf_category], dtype=torch.long), # Changed from nfiber_t + 'layer_t': torch.tensor(layer_mask, dtype=torch.long), + 'angle_t': torch.tensor(angles, dtype=angle_dtype), + 'cond': torch.tensor(cond, dtype=torch.float32) + } + + return sample + + def get_batch( + self, + indices: Optional[np.ndarray] = None, + batch_size: Optional[int] = None + ) -> Dict[str, torch.Tensor]: + """ + Get a batch of samples (for testing/debugging). + + Args: + indices: Optional array of indices to sample + batch_size: Optional batch size (uses all if None) + + Returns: + Batched dictionary with model inputs + """ + if indices is None: + if batch_size is None: + indices = np.arange(len(self)) + else: + indices = np.random.choice(len(self), batch_size, replace=False) + + # Collect samples + samples = [self[i] for i in indices] + + # Stack into batch + batch = { + 'material_t': torch.stack([s['material_t'] for s in samples]).squeeze(-1), # (B,) + 'vf_category_t': torch.stack([s['vf_category_t'] for s in samples]).squeeze(-1), # (B,) + 'layer_t': torch.stack([s['layer_t'] for s in samples]), # (B, L) + 'angle_t': torch.stack([s['angle_t'] for s in samples]), # (B, L, 1) + 'cond': torch.stack([s['cond'] for s in samples]) # (B, C) + } + + return batch + + +def project_conditions(cond: torch.Tensor, d_model: int, proj_layer: Optional[torch.nn.Module] = None) -> Tuple[torch.Tensor, torch.nn.Module]: + """ + Project condition vectors to model dimension for cross-attention. + + The model expects cond_tokens: (B, n_conditions, d_model) for cross-attention, + but the dataset provides cond: (B, n_conditions). This function projects + each coefficient to d_model dimension. + + Args: + cond: Condition tensor of shape (B, n_conditions) + d_model: Model dimension + proj_layer: Optional pre-created projection layer (for reuse) + + Returns: + Tuple of (cond_tokens, proj_layer): + - cond_tokens: (B, n_conditions, d_model) + - proj_layer: The projection layer (for reuse in next calls) + """ + import torch.nn as nn + + # Create or reuse projection layer + if proj_layer is None: + proj_layer = nn.Linear(1, d_model).to(cond.device) + + # Expand and project: (B, n_conditions) -> (B, n_conditions, 1) -> (B, n_conditions, d_model) + cond_expanded = cond.unsqueeze(-1) # (B, n_conditions, 1) + cond_tokens = proj_layer(cond_expanded) # (B, n_conditions, d_model) + + return cond_tokens, proj_layer + + +def create_dataloader( + data_dir: str, + split: str = 'train', + batch_size: int = 32, + shuffle: bool = True, + n_max_layer: int = 24, + normalize_coefficients: bool = True, + normalize_method: str = 'minmax', + num_workers: int = 0, + device: Optional[torch.device] = None, + use_discrete_angles: bool = True, # If True, use discrete angle categories + angle_resolution: float = 1.0 # Resolution in degrees for angle discretization +): + """ + Create a DataLoader for the dataset. + + Args: + data_dir: Directory containing processed data + split: 'train' or 'test' + batch_size: Batch size + shuffle: Whether to shuffle data + n_max_layer: Maximum number of layers (None = use metadata) + normalize_coefficients: Whether to normalize coefficients + normalize_method: 'minmax' or 'zscore' + num_workers: Number of worker processes + device: Device to move tensors to + use_discrete_angles: If True, use discrete angle categories + angle_resolution: Resolution in degrees for angle discretization (default: 1.0) + + Returns: + DataLoader instance + """ + from torch.utils.data import DataLoader + + dataset = MaterialDesignDataset( + data_dir=data_dir, + split=split, + n_max_layer=n_max_layer, + normalize_coefficients=normalize_coefficients, + normalize_method=normalize_method, + device=device, + use_discrete_angles=use_discrete_angles, + angle_resolution=angle_resolution + ) + + # Custom collate function to handle batching + def collate_fn(batch): + """Collate function to stack samples into batch.""" + return { + 'material_t': torch.stack([s['material_t'] for s in batch]).squeeze(-1), # (B,) + 'vf_category_t': torch.stack([s['vf_category_t'] for s in batch]).squeeze(-1), # (B,) + 'layer_t': torch.stack([s['layer_t'] for s in batch]), # (B, L) + 'angle_t': torch.stack([s['angle_t'] for s in batch]), # (B, L, 1) + 'cond': torch.stack([s['cond'] for s in batch]) # (B, C) + } + + dataloader = DataLoader( + dataset, + batch_size=batch_size, + shuffle=shuffle, + num_workers=num_workers, + collate_fn=collate_fn, + pin_memory=False # Disable pin_memory to avoid device conflicts + ) + + return dataloader + + +if __name__ == "__main__": + # Example usage + import os + + data_dir = "processed_data" + + if not os.path.exists(data_dir): + print(f"Error: {data_dir} does not exist!") + print("Please run process_all_datasets.py first.") + else: + print("="*80) + print("Testing MaterialDesignDataset") + print("="*80) + + # Create dataset + dataset = MaterialDesignDataset( + data_dir=data_dir, + split='train', + n_max_layer=10, + normalize_coefficients=True, + normalize_method='zscore' + ) + + # Get a single sample + print("\nSingle sample:") + sample = dataset[0] + for key, value in sample.items(): + print(f" {key}: {value.shape} {value.dtype}") + + # Get a batch + print("\nBatch of 3 samples:") + batch = dataset.get_batch(batch_size=3) + for key, value in batch.items(): + print(f" {key}: {value.shape} {value.dtype}") + + # Test DataLoader + print("\nDataLoader test:") + dataloader = create_dataloader( + data_dir=data_dir, + split='train', + batch_size=4, + shuffle=False, + n_max_layer=10 + ) + + for i, batch in enumerate(dataloader): + print(f"\nBatch {i+1}:") + for key, value in batch.items(): + print(f" {key}: {value.shape} {value.dtype}") + if i >= 1: # Just show first 2 batches + break + + print("\n" + "="*80) + print("Dataset test complete!") diff --git a/hybrid_diffusion_material_generation/load_processed_data.py b/hybrid_diffusion_material_generation/load_processed_data.py new file mode 100644 index 0000000000000000000000000000000000000000..f90a5fdcf29414f244f4db63f88f70ff9838b8b4 --- /dev/null +++ b/hybrid_diffusion_material_generation/load_processed_data.py @@ -0,0 +1,180 @@ +""" +Utility script to load and inspect processed dataset files. + +This demonstrates how to load the preprocessed data for model training. +""" + +import numpy as np +import json +import os + + +def load_processed_data(data_dir: str, split: str = 'train'): + """ + Load processed dataset from .npz file. + + Args: + data_dir: Directory containing processed data + split: 'train' or 'test' + + Returns: + Dictionary containing all data arrays + """ + filepath = os.path.join(data_dir, f"{split}_data.npz") + data = np.load(filepath) + + # Convert to dictionary + result = {key: data[key] for key in data.files} + return result + + +def load_metadata(data_dir: str): + """ + Load metadata from JSON file. + + Args: + data_dir: Directory containing processed data + + Returns: + Dictionary containing metadata + """ + filepath = os.path.join(data_dir, "metadata.json") + with open(filepath, 'r') as f: + metadata = json.load(f) + return metadata + + +def get_minmax_statistics(data_dir: str): + """ + Get min/max/std statistics from metadata. + + Args: + data_dir: Directory containing processed data + + Returns: + Dictionary with min/max/std statistics: + - coefficient_min: List of (5 * degree) min values + - coefficient_max: List of (5 * degree) max values + - coefficient_std: List of (5 * degree) std values + - layers_min, layers_max: Min/max number of layers + - fibers_min, fibers_max: Min/max number of fibers + - volume_fraction_min, volume_fraction_max: Min/max volume fraction + - angle_min, angle_max: Min/max angles in degrees + """ + metadata = load_metadata(data_dir) + + return { + 'coefficient_min': metadata.get('coefficient_min', []), + 'coefficient_max': metadata.get('coefficient_max', []), + 'coefficient_std': metadata.get('coefficient_std', []), + 'layers_min': metadata.get('layers_min'), + 'layers_max': metadata.get('layers_max'), + 'fibers_min': metadata.get('fibers_min'), + 'fibers_max': metadata.get('fibers_max'), + 'volume_fraction_min': metadata.get('volume_fraction_min'), + 'volume_fraction_max': metadata.get('volume_fraction_max'), + 'angle_min': metadata.get('angle_min'), + 'angle_max': metadata.get('angle_max') + } + + +def print_data_summary(data_dir: str): + """ + Print summary of processed data. + + Args: + data_dir: Directory containing processed data + """ + print("="*80) + print("PROCESSED DATA SUMMARY") + print("="*80) + + # Load metadata + metadata = load_metadata(data_dir) + + print(f"\nDataset Statistics:") + print(f" Total samples: {metadata['n_samples']}") + print(f" Train samples: {metadata['n_train']}") + print(f" Test samples: {metadata['n_test']}") + print(f" Polynomial degree: {metadata['polynomial_degree']}") + print(f" Max layers: {metadata['max_layers']}") + print(f" Max fibers: {metadata['max_fibers']}") + + # Load train data + train_data = load_processed_data(data_dir, 'train') + + print(f"\nTrain Data Shapes:") + for key, value in train_data.items(): + print(f" {key}: {value.shape} (dtype: {value.dtype})") + + # Load test data + test_data = load_processed_data(data_dir, 'test') + + print(f"\nTest Data Shapes:") + for key, value in test_data.items(): + print(f" {key}: {value.shape} (dtype: {value.dtype})") + + # Material type distribution + print(f"\nMaterial Type Distribution (Train):") + unique, counts = np.unique(train_data['material_type'], return_counts=True) + material_names = {0: 'CPP', 1: 'CHDPE', 2: 'GPP', 3: 'GHDPE'} + for mat_id, count in zip(unique, counts): + print(f" {material_names[mat_id]} (id={mat_id}): {count} samples") + + print(f"\nMaterial Type Distribution (Test):") + unique, counts = np.unique(test_data['material_type'], return_counts=True) + for mat_id, count in zip(unique, counts): + print(f" {material_names[mat_id]} (id={mat_id}): {count} samples") + + # Print min/max/std statistics + print(f"\nMin/Max/Std Statistics:") + print(f" Polynomial coefficients:") + print(f" Min: {len(metadata.get('coefficient_min', []))} values") + print(f" Max: {len(metadata.get('coefficient_max', []))} values") + print(f" Std: {len(metadata.get('coefficient_std', []))} values") + print(f" Layers: {metadata.get('layers_min', 'N/A')} to {metadata.get('layers_max', 'N/A')}") + print(f" Fibers: {metadata.get('fibers_min', 'N/A')} to {metadata.get('fibers_max', 'N/A')}") + print(f" Volume fraction: {metadata.get('volume_fraction_min', 'N/A'):.6f} to {metadata.get('volume_fraction_max', 'N/A'):.6f}") + print(f" Angles: {metadata.get('angle_min', 'N/A'):.2f}° to {metadata.get('angle_max', 'N/A'):.2f}°") + + print("\n" + "="*80) + + +if __name__ == "__main__": + import argparse + + parser = argparse.ArgumentParser(description="Load and inspect processed data") + parser.add_argument( + "--data_dir", + type=str, + default="processed_data", + help="Directory containing processed data" + ) + + args = parser.parse_args() + + if not os.path.exists(args.data_dir): + print(f"Error: Directory {args.data_dir} does not exist!") + print("Please run process_all_datasets.py first.") + else: + print_data_summary(args.data_dir) + + # Example: Load a single sample + print("\n" + "="*80) + print("EXAMPLE: Loading a single sample") + print("="*80) + + train_data = load_processed_data(args.data_dir, 'train') + + # Get first sample + idx = 0 + print(f"\nSample {idx}:") + print(f" Polynomial coefficients shape: {train_data['polynomial_coefficients'][idx].shape}") + print(f" Material type: {train_data['material_type'][idx]}") + print(f" Number of fibers: {train_data['number_of_fibers'][idx]}") + print(f" Volume fraction: {train_data['volume_fraction'][idx]:.6f}") + print(f" Stacking sequence length: {train_data['stacking_sequence_lengths'][idx]}") + print(f" Stacking sequence: {train_data['stacking_sequence'][idx][:train_data['stacking_sequence_lengths'][idx]]}") + print(f" Fiber centers length: {train_data['fiber_center_lengths'][idx]}") + print(f" Fiber centers shape: {train_data['fiber_centers_YZ'][idx][:train_data['fiber_center_lengths'][idx]].shape}") + diff --git a/hybrid_diffusion_material_generation/models.py b/hybrid_diffusion_material_generation/models.py new file mode 100644 index 0000000000000000000000000000000000000000..dc2014ee42e7f4bf5c4235923e92af62ffe7b97d --- /dev/null +++ b/hybrid_diffusion_material_generation/models.py @@ -0,0 +1,400 @@ +import torch +import torch.nn as nn +from typing import Dict, Tuple +from dataclasses import dataclass +import math + + +# ========================= +# Config +# ========================= + +@dataclass +class ModelConfig: + # problem sizes + n_conditions: int = 8 + n_materials: int = 10 + n_vf_categories: int = 5 # Volume fraction categories: 0.0924, 0.2155, 0.3079, 0.4002, 0.4926 + n_max_layer: int = 24 + + # model architecture + d_model: int = 256 + n_heads: int = 4 + n_layers: int = 6 + dropout: float = 0.0 + + # angle is in radians, limited to (-pi/2, pi/2) + +# ========================= +# Model +# ========================= + +def timestep_embedding(t: torch.Tensor, dim: int) -> torch.Tensor: + """ + Sinusoidal timestep embedding. t: (B,) + """ + half = dim // 2 + freqs = torch.exp(-math.log(10000) * torch.arange(0, half, device=t.device) / half) + args = t.float().unsqueeze(1) * freqs.unsqueeze(0) + emb = torch.cat([torch.cos(args), torch.sin(args)], dim=1) + if dim % 2 == 1: + emb = torch.cat([emb, torch.zeros_like(emb[:, :1])], dim=1) + return emb # (B, dim) + +class SelfCrossAttnBlock(nn.Module): + def __init__(self, d_model, n_heads, dropout=0.0): + super().__init__() + self.self_attn = nn.MultiheadAttention( + d_model, n_heads, dropout=dropout, batch_first=True + ) + self.cross_attn = nn.MultiheadAttention( + d_model, n_heads, dropout=dropout, batch_first=True + ) + self.ff = nn.Sequential( + nn.Linear(d_model, 4 * d_model), + nn.SiLU(), + nn.Linear(4 * d_model, d_model), + ) + + self.ln1 = nn.LayerNorm(d_model) + self.ln2 = nn.LayerNorm(d_model) + self.ln3 = nn.LayerNorm(d_model) + + def forward(self, x, cond_tokens, key_padding_mask=None): + """ + x: (B, N, d) ← material + nfiber + angle tokens + cond_tokens:(B, M, d) ← condition tokens + key_padding_mask: (B, N) optional padding mask (True = mask out, False = keep) + """ + # self-attention (within tokens) + x = self.ln1(x + self.self_attn(x, x, x, key_padding_mask=key_padding_mask)[0]) + + # cross-attention (tokens attend to conditions) + x = self.ln2(x + self.cross_attn(x, cond_tokens, cond_tokens)[0]) + + # feed-forward + x = self.ln3(x + self.ff(x)) + return x + +class MaterialHybridDenoiser(nn.Module): + """ + Inputs: + material_t: (B,) in [0..n_materials-1] or MASK + vf_category_t: (B,) in [0..4] volume fraction category or MASK + layer_t: (B,L) in {0,1} or MASK + Note: When use_discrete_angles=True, layer_t is redundant (derived from angle_t, + where angle_t==n_angle_categories means dead layer). The model ignores layer_emb + in this case and only uses angle_emb. + angle_t: (B,L) discrete category indices [0..n_angle_categories-1] or MASK (if use_discrete_angles) + OR (B,L,1) continuous (if not use_discrete_angles) + When discrete: category n_angle_categories = dead layer, n_angle_categories+1 = MASK + cond: (B,C) continuous + t: (B,) timestep + + Outputs: + material logits: (B, n_materials) + vf_category_logits: (B, 5) # 5 volume fraction categories + layer logits: (B,L,2) # alive/dead (only if not use_discrete_angles) + angle_logits: (B,L,n_angle_categories+1) # discrete angle categories + dead (if use_discrete_angles) + OR angle: (B,L,1) # angle in radians, range (0, pi/2) (if not use_discrete_angles) + """ + def __init__(self, cfg: ModelConfig, mask_ids: Dict[str, int], use_discrete_angles: bool = True, n_angle_categories: int = 7): + super().__init__() + self.cfg = cfg + self.L = cfg.n_max_layer + d = cfg.d_model + self.mask_ids = mask_ids + self.use_discrete_angles = use_discrete_angles + self.n_angle_categories = n_angle_categories # 7 categories: 0, 15, 30, 45, 60, 75, 90 degrees + + # +1 to include mask token for material + self.material_emb = nn.Embedding(cfg.n_materials + 1, d) + # vf_category: 5 categories (0-4) plus mask; we allocate 6 + self.vf_category_emb = nn.Embedding(cfg.n_vf_categories + 1, d) + + if use_discrete_angles: + # Angle categories: 0, 15, 30, 45, 60, 75, 90 degrees (7 categories) + # Category 7: dead layer + # Category 8: mask token + # Total: n_angle_categories (7) + 1 (dead) + 1 (mask) = 9 + # Note: layer state is encoded in angle_emb (category 7 = dead), so no separate layer_emb needed + self.angle_emb = nn.Embedding(n_angle_categories + 2, d) + self.layer_emb = None # Not needed when using discrete angles + else: + # layer token: {MASK, 0, 1} => 3 (only needed for continuous angles) + self.layer_emb = nn.Embedding(3, d) + self.angle_in = nn.Linear(1, d) + + # Condition projection (TRAINED). + # We represent each scalar condition coefficient as a token embedding of size d_model. + # Input cond can be either: + # - (B, C): raw condition vector (preferred; gets projected here) + # - (B, C, d): already-projected condition tokens (backward-compatible) + # Use separate projection for each condition to allow condition-specific transformations + self.cond_proj = nn.ModuleList([ + nn.Linear(1, d) for _ in range(cfg.n_conditions) + ]) + + self.blocks = nn.ModuleList([ + SelfCrossAttnBlock(d, cfg.n_heads, cfg.dropout) + for _ in range(cfg.n_layers) + ]) + + # Positional embeddings for entire sequence: material (pos 0) + vf_category (pos 1) + layers (pos 2 to 2+L-1) + # This replaces role embeddings - position encodes both role and location + # Needed to enforce that dead tokens must be at the end of the sequence + self.pos_emb = nn.Embedding(2 + cfg.n_max_layer, d) + + self.t_proj = nn.Linear(d, d) + + enc_layer = nn.TransformerEncoderLayer( + d_model=d, + nhead=cfg.n_heads, + dropout=cfg.dropout, + batch_first=True, + ) + self.encoder = nn.TransformerEncoder(enc_layer, num_layers=cfg.n_layers) + self.ln = nn.LayerNorm(d) + + self.material_head = nn.Linear(d, cfg.n_materials) + self.vf_category_head = nn.Linear(d, cfg.n_vf_categories) # 5 volume fraction categories + if use_discrete_angles: + # Combined angle+layer logits: n_angle_categories for angles + 1 for dead layer = n_angle_categories + 1 + # Categories 0 to n_angle_categories-1: angle categories (0, 15, 30, 45, 60, 75, 90 degrees) + # Category n_angle_categories: dead layer + self.angle_head = nn.Linear(d, n_angle_categories + 1) + self.layer_head = None # Not needed when using discrete angles + else: + self.layer_head = nn.Linear(d, 2) # alive/dead for continuous mode + self.angle_head = nn.Linear(d, 1) + + def forward(self, material_t, vf_category_t, layer_t, angle_t, cond, t): + B, L = layer_t.shape + assert L == self.L + + # Project conditions if provided as raw scalars (B, C) + if cond.dim() == 2: + # Apply condition-specific projections: each condition gets its own transformation + cond_list = [] + for i in range(cond.shape[1]): + cond_list.append(self.cond_proj[i](cond[:, i:i+1].unsqueeze(-1))) # (B, 1, d) + cond = torch.cat(cond_list, dim=1) # (B, C, d) + + # global tokens as a 2-token "prefix" + g_mat = self.material_emb(material_t).unsqueeze(1) # (B,1,d) + g_vf = self.vf_category_emb(vf_category_t).unsqueeze(1) # (B,1,d) + + # per-layer tokens + # NOTE: Positional embeddings are critical - they allow the model to enforce + # that dead tokens (category 7) must appear at the end of the sequence. + # Without positional info, the model can't distinguish positions and dead tokens + # could appear anywhere, which doesn't match the data structure. + if self.use_discrete_angles: + # angle_t is (B, L) with category indices + # Layer state is encoded in angle_emb (category 7 = dead), so no layer_emb needed + layer_h = self.angle_emb(angle_t) # (B, L, d) + else: + # angle_t is (B, L, 1) continuous + # For continuous angles, layer and angle are separate, so we need both embeddings + layer_h = self.layer_emb(layer_t) + self.angle_in(angle_t) # (B,L,d) + + h = torch.cat([g_mat, g_vf, layer_h], dim=1) # (B, 2+L, d) + + # Add positional embeddings to entire sequence + # Position 0: material token, Position 1: vf_category token, Positions 2+: layer tokens + # This replaces role embeddings - position encodes both role and location + pos_indices = torch.arange(2 + self.L, device=h.device) # (2+L,) + h = h + self.pos_emb(pos_indices).unsqueeze(0) # (B, 2+L, d) + + # add timestep + conditions + t_emb = timestep_embedding(t, h.size(-1)) # (B,d) + h = h + self.t_proj(t_emb).unsqueeze(1) + + # Create key padding mask to enforce that tokens after first dead token are invalid + # This ensures dead tokens must be at the end of the sequence + # key_padding_mask: (B, N) where True = mask out, False = keep + key_padding_mask = None + if self.use_discrete_angles: + # Find first dead token position for each batch + # angle_t shape: (B, L), dead_category = n_angle_categories + dead_category = self.n_angle_categories + is_dead = (angle_t == dead_category) # (B, L) + + # Find first dead position for each batch (or L if no dead tokens) + first_dead_pos = torch.zeros(B, dtype=torch.long, device=angle_t.device) + for b in range(B): + dead_positions = torch.where(is_dead[b])[0] + if len(dead_positions) > 0: + first_dead_pos[b] = dead_positions[0].item() + 2 # +2 for global tokens offset + else: + first_dead_pos[b] = 2 + L # No dead tokens, mask nothing + + # Create key padding mask: (B, N) where N = 2 + L + # Mask out positions >= first_dead_pos (only for layer tokens, keep global tokens) + N = 2 + L + key_padding_mask = torch.zeros(B, N, dtype=torch.bool, device=h.device) + for b in range(B): + first_invalid = first_dead_pos[b].item() + if first_invalid < 2 + L: # Only mask if there are dead tokens + # Mask out invalid layer token positions (>= first_invalid) + # True means mask out, so set positions >= first_invalid to True + key_padding_mask[b, first_invalid:] = True + # Keep global tokens (positions 0, 1) always unmasked + key_padding_mask[b, :2] = False + + for block in self.blocks: + h = block(h, cond, key_padding_mask=key_padding_mask) + + h = self.ln(h) + + if self.use_discrete_angles: + # Combined angle+layer output: logits for angle categories + dead layer + # Categories 0 to n_angle_categories-1: angle categories + # Category n_angle_categories: dead layer + angle_logits = self.angle_head(h[:, 2:]) # (B, L, n_angle_categories + 1) + out = { + "material_logits": self.material_head(h[:, 0]), # (B, n_materials) + "vf_category_logits": self.vf_category_head(h[:, 1]), # (B, 5) + "angle_logits": angle_logits, # (B,L,n_angle_categories+1) + } + else: + # Angle output: apply sigmoid and scale by pi/2 to get range (0, pi/2) + angle_raw = self.angle_head(h[:, 2:]) # (B,L,1) + angle = torch.sigmoid(angle_raw) * (math.pi / 2) # (B,L,1) in radians + out = { + "material_logits": self.material_head(h[:, 0]), # (B, n_materials) + "vf_category_logits": self.vf_category_head(h[:, 1]), # (B, 5) + "layer_logits": self.layer_head(h[:, 2:]), # (B,L,2) + "angle": angle, # (B,L,1) in radians, range (0, pi/2) + } + return out + +# ------------------------- +# MAIN: Dummy input demo +# ------------------------- + +if __name__ == "__main__": + torch.manual_seed(0) + device = "cuda" if torch.cuda.is_available() else "cpu" + + B = 2 + L = 6 + + # Create model config + cfg = ModelConfig( + n_conditions=4, + n_materials=5, + n_fiber_max=10, + n_max_layer=L, + d_model=128, + n_heads=4, + n_layers=3, + dropout=0.0 + ) + + # Define mask IDs (typically the last valid ID + 1) + mask_ids = { + "material": cfg.n_materials, # 5 = MASK for material + "nfiber": cfg.n_fiber_max + 1, # 11 = MASK for nfiber + "layer": 2 # 2 = MASK for layer (0=dead, 1=alive, 2=MASK) + } + + # Create model + model = MaterialHybridDenoiser(cfg, mask_ids).to(device) + + # dummy inputs + material_t = torch.tensor([mask_ids["material"], 2], device=device) # First is MASK, second is material 2 + nfiber_t = torch.tensor([mask_ids["nfiber"], 4], device=device) # First is MASK, second is 4 fibers + layer_t = torch.tensor( + [[mask_ids["layer"], mask_ids["layer"], mask_ids["layer"], 1, 1, 1], # First 3 are MASK, rest are alive + [mask_ids["layer"], mask_ids["layer"], 1, 1, 1, 1]], # First 2 are MASK, rest are alive + device=device + ) + angle_t = torch.randn(B, L, 1, device=device) + + # Condition should be (B, n_conditions, d_model) for cross-attention + cond = torch.randn(B, cfg.n_conditions, cfg.d_model, device=device) + t = torch.randint(0, 100, (B,), device=device) + + # Test permutation invariance + print("\n=== Testing Permutation Invariance ===") + print("Note: All layer tokens have the same role embedding (role 2), but self-attention") + print(" is still position-dependent because tokens at different positions see different neighbors.\n") + + # Original forward pass + model.eval() + with torch.no_grad(): + out_original = model(material_t, nfiber_t, layer_t, angle_t, cond, t) + + # Test 1: Permute only angle_t (creates MISMATCH with layer_t) + torch.manual_seed(33) + perm_indices = torch.randperm(L) + angle_t_perm = angle_t[:, perm_indices, :] + + with torch.no_grad(): + out_perm_angle_only = model(material_t, nfiber_t, layer_t, angle_t_perm, cond, t) + + print(f"1. Permuting ONLY angle_t (creates mismatch with layer_t):") + print(f" Permutation: {perm_indices.tolist()}") + print(f" Original angle[0]: {out_original['angle'][0, :, 0].tolist()}") + print(f" Permuted angle[0]: {out_perm_angle_only['angle'][0, :, 0].tolist()}") + print(f" -> Different outputs because angle_t and layer_t are misaligned!\n") + + # Test 2: Permute both angle_t AND layer_t together (they stay aligned) + layer_t_perm = layer_t[:, perm_indices] + + with torch.no_grad(): + out_perm_both = model(material_t, nfiber_t, layer_t_perm, angle_t_perm, cond, t) + + print(f"2. Permuting BOTH angle_t AND layer_t together (they stay aligned):") + print(f" Original angle[0]: {out_original['angle'][0, :, 0].tolist()}") + print(f" Permuted angle[0]: {out_perm_both['angle'][0, :, 0].tolist()}") + print(f" Expected (original[perm]): {out_original['angle'][0, perm_indices, 0].tolist()}") + + # Check if outputs are just permuted + diff = torch.abs(out_original['angle'][0, perm_indices, 0] - out_perm_both['angle'][0, :, 0]) + print(f" Difference: Max={diff.max().item():.6f}, Mean={diff.mean().item():.6f}") + print(f" -> Outputs are permuted (difference ~0), BUT model is still position-dependent!") + print(f" -> Even with same role embedding, self-attention sees different neighbors at different positions.\n") + + # Test 3: Show that position matters even with identical inputs + # Create identical layer tokens (same layer_t and angle_t for all layers) + layer_t_identical = torch.ones(B, L, dtype=torch.long, device=device) # All alive + angle_t_identical = torch.ones(B, L, 1, device=device) * 0.5 # All same angle + + with torch.no_grad(): + out_identical = model(material_t, nfiber_t, layer_t_identical, angle_t_identical, cond, t) + + print(f"3. Testing with IDENTICAL layer tokens (same layer_t=1, same angle_t=0.5 for all):") + print(f" All layers have same role embedding, same layer state, same angle input") + print(f" Output angles[0]: {out_identical['angle'][0, :, 0].tolist()}") + angle_std = out_identical['angle'][0, :, 0].std().item() + print(f" Std dev of outputs: {angle_std:.6f}") + if angle_std > 0.001: + print(f" -> Different outputs despite identical inputs!") + print(f" -> This proves position matters (self-attention is position-dependent)\n") + else: + print(f" -> Outputs are identical (model is position-invariant for this case)\n") + + # Use the original output for display + out = out_original + + # print outputs + print("\n=== Model Outputs ===") + for k, v in out.items(): + print(f"{k:20s} shape = {tuple(v.shape)}") + if k == "material_logits": + print(" material logits:", v) + if k == "angle": + print(f" angle range: [{v.min().item():.4f}, {v.max().item():.4f}] radians") + print(f" angle range: [{v.min().item() * 180 / math.pi:.2f}°, {v.max().item() * 180 / math.pi:.2f}°] degrees") + + print("\n=== Model Config ===") + print(f"n_conditions: {cfg.n_conditions}") + print(f"n_materials: {cfg.n_materials}") + print(f"n_fiber_max: {cfg.n_fiber_max}") + print(f"n_max_layer: {cfg.n_max_layer}") + print(f"d_model: {cfg.d_model}") + print(f"n_heads: {cfg.n_heads}") + print(f"n_layers: {cfg.n_layers}") + print(f"angle range: (-π/2, π/2) radians = (-90°, 90°) degrees") \ No newline at end of file diff --git a/hybrid_diffusion_material_generation/poster/column_hybrid_diffusion.md b/hybrid_diffusion_material_generation/poster/column_hybrid_diffusion.md new file mode 100644 index 0000000000000000000000000000000000000000..2ab1e38aa2e61c76c46599805c06c8ded5655118 --- /dev/null +++ b/hybrid_diffusion_material_generation/poster/column_hybrid_diffusion.md @@ -0,0 +1,124 @@ +## Hybrid Diffusion for Conditional Material Design (1 poster column) + +### Problem / Goal +- **Goal**: Generate *manufacturable laminate designs* (material + volume fraction + stacking sequence) that match a **target mechanical response**. +- **Input (conditioning signal)**: A set of stress/strain curves summarized as **5 no-intercept polynomial fits** (degree \(d\); in training config \(d=3\Rightarrow 15\) coefficients). +- **Output (design variables)**: + - **Material**: 4 classes (`CPP`, `CHDPE`, `GPP`, `GHDPE`) + - **Volume fraction**: 5-category discrete variable \([0.0924, 0.2155, 0.3079, 0.4002, 0.4926]\) + - **Stacking sequence**: up to \(L=10\) layers, represented by + - **Layer alive/dead mask** \( \in \{0,1\}^L\) + - **Layer angles** (continuous, radians) \( \in (0, \pi/2)^L\) + +### Conditioning: 5 polynomial relationships (degree \(d\), no intercept) +From each dataset curve file, we fit \(d\)-degree polynomials for: +- **(1)** \( \varepsilon_{11} \rightarrow \sigma_{11} \) +- **(2)** \( \varepsilon_{11} \rightarrow \varepsilon_{22} \) +- **(3)** \( \varepsilon_{22} \rightarrow \sigma_{22} \) +- **(4)** \( \varepsilon_{22} \rightarrow \varepsilon_{11} \) +- **(5)** \( \varepsilon_{12} \rightarrow \sigma_{12} \) + +Flatten the coefficients into a vector of length \(5d\), then **normalize** (e.g., z-score) using training metadata. + +### Method: Hybrid Diffusion + Transformer Denoiser +- **Hybrid diffusion**: + - **Discrete mask diffusion** for **material**, **vf-category**, **layer mask** (randomly replace tokens with a learned MASK via a diffusion schedule). + - **Gaussian diffusion** for **continuous angles** (DDPM-style noise + denoise). +- **Denoiser network**: a Transformer-style sequence model with + - **Tokens**: `[material] [vf-category] [layer_1] … [layer_L]` + - **Cross-attention** to projected condition tokens (each scalar coefficient becomes a learned token embedding) + - **Timestep embedding** added to all tokens + - **Heads**: logits for discrete variables + continuous angle regression (angles constrained to \( (0,\pi/2)\) via sigmoid scaling) + +### Hybrid diffusion mathematics (discrete + continuous) +Let \(t\in\{0,\dots,T-1\}\), \(\beta_t\in(0,1)\), \(\alpha_t = 1-\beta_t\), and \(\bar\alpha_t=\prod_{s=0}^{t}\alpha_s\). + +**Discrete mask diffusion** (for material, vf-category, layer mask): +- Forward noising (mask corruption) for token \(x_0\): + \[ + q(x_t \mid x_0)= + \begin{cases} + x_0 & \text{with prob. } \bar\alpha_t \\ + \text{MASK} & \text{with prob. } 1-\bar\alpha_t + \end{cases} + \] +- Model outputs logits \(\mathrm{logits}_\theta(x_t,c,t)\) and is trained to predict \(x_0\) with cross-entropy: + \[ + \mathcal{L}_{disc} = \mathrm{CE}\big(\mathrm{logits}_\theta,\; x_0\big). + \] + +**Continuous DDPM** (for angles \(a\), per-layer, continuous in radians): +- Forward noising: + \[ + q(a_t \mid a_0)=\sqrt{\bar\alpha_t}\,a_0 + \sqrt{1-\bar\alpha_t}\,\epsilon,\quad \epsilon\sim\mathcal{N}(0,I). + \] +- Model predicts the *clean* angles \(\hat a_0=f_\theta(a_t,x_t,c,t)\). The reverse DDPM step uses the implied noise + \[ + \hat\epsilon = \frac{a_t - \sqrt{\bar\alpha_t}\,\hat a_0}{\sqrt{1-\bar\alpha_t}} + \] + and samples + \[ + p_\theta(a_{t-1}\mid a_t)=\mathcal{N}\!\Big(\mu_\theta(a_t,t),\;\beta_t I\Big), + \quad + \mu_\theta = \frac{1}{\sqrt{\alpha_t}}\!\left(a_t - \frac{\beta_t}{\sqrt{1-\bar\alpha_t}}\hat\epsilon\right). + \] +- Training loss (only on alive layers): + \[ + \mathcal{L}_{angle} = \lVert \hat a_0 - a_0\rVert_2^2. + \] + +**Total objective** (weighted sum): +\[ +\mathcal{L}=\lambda_m\mathcal{L}_{mat}+\lambda_{vf}\mathcal{L}_{vf}+\lambda_\ell\mathcal{L}_{layer}+\lambda_a\mathcal{L}_{angle}. +\] + +### Training Objective +- **Classification losses (CE)**: material, vf-category, layer mask +- **Regression loss (MSE)**: angles (only on alive layers) +- **Total**: weighted sum \( \mathcal{L}=\lambda_m\mathcal{L}_m+\lambda_{vf}\mathcal{L}_{vf}+\lambda_\ell\mathcal{L}_{layer}+\lambda_a\mathcal{L}_{angle}\) + +### Sampling (Inference) +- **Initialize**: discrete variables as MASK; angles as Gaussian noise. +- **Iterate \(t=T\rightarrow 0\)**: + - Sample discrete tokens from predicted logits (with small “remask” probability to improve mixing) + - DDPM reverse step for angles using the predicted clean angles +- **Result**: a full design candidate (material, vf-category, layer mask, angles) conditioned on target curves. + +### Figure slot: Transformer denoiser architecture +Paste this as your architecture figure (or recreate it in PowerPoint/Figma): + +```mermaid +flowchart TB + subgraph Conditioning["Conditioning (target response)"] + C0["Stress/strain curves"] --> C1["5 polynomial fits (no intercept)"] + C1 --> C2["Flatten coeffs: c ∈ R^{5d}"] + C2 --> C3["Normalize (z-score/minmax)"] + end + + subgraph Tokens["Design tokens (sequence)"] + X0["material token"] --> X + X1["vf-category token"] --> X + X2["layer_1 token"] --> X + X3["..."] --> X + X4["layer_L token"] --> X + X["Embed + PosEmbed + TimeEmbed"] --> TR + end + + C3 --> P["Condition projection: per-scalar Linear(1→d_model)\n→ cond tokens (C×d_model)"] + P --> TR["Stacked blocks: Self-Attn + Cross-Attn(cond) + FFN"] + + TR --> H1["Head: material logits"] + TR --> H2["Head: vf-category logits"] + TR --> H3["Head: layer logits"] + TR --> H4["Head: angle regression (0..π/2)"] +``` + +**Caption idea**: “Transformer denoiser over a fixed token sequence (global tokens + layer tokens) with cross-attention to condition tokens derived from polynomial coefficients; outputs discrete logits and continuous angles.” + +### Figure slot (recommended for this column) +- **Figure: On-the-fly validation (condition vs generated designs)** + Use one of the saved plots from training artifacts, e.g.: + - `hybrid_diffusion_material_generation/checkpoints/config_1_continuous_100_epoch/exp_20260114_164540/nonlinear_testing_best_checkpoint_CPP_0_0.4926_5_45.png` + + **Caption idea**: “Given a target response (black), we sample multiple laminate designs (colored), simulate them, and compare stress/lateral-strain curves across loading modes.” + diff --git a/hybrid_diffusion_material_generation/test_on_the_fly.py b/hybrid_diffusion_material_generation/test_on_the_fly.py new file mode 100644 index 0000000000000000000000000000000000000000..08dc7434fae8d0f9389a21f5275aefbca434d790 --- /dev/null +++ b/hybrid_diffusion_material_generation/test_on_the_fly.py @@ -0,0 +1,581 @@ +""" +Standalone on-the-fly test script (single condition file -> model -> simulation -> plot). + +What it does: +1) Read a dataset txt file like `data_generation/test/CPP_0.0924_1_30.txt` +2) Fit the 5 no-intercept polynomials (same as training preprocessing) +3) Normalize coefficients using training metadata (from `processed_data/`) +4) Load a trained diffusion model checkpoint +5) Sample N designs from the model conditioned on the fitted coefficients +6) Run simulations for each generated design (via data_generation/generate_data_mp.py + lam.py) +7) Plot: condition (fit + dots) vs 3 generated designs (sim dots + fitted smooth curves) + +Example: +python test_on_the_fly.py \ + --input_file /project/luofeng/feiyang/MaterialGeneration/data_generation/test/CPP_0.0924_1_30.txt \ + --data_dir /project/luofeng/feiyang/MaterialGeneration/hybrid_diffusion_material_generation/processed_data \ + --checkpoint /project/luofeng/feiyang/MaterialGeneration/hybrid_diffusion_material_generation/checkpoints/config_1_discrete/exp_20251231_193421/best_model.pt \ + --curve_dir /project/luofeng/feiyang/MaterialGeneration/data_generation/shahriar_modified_2025_12/RVE_Datasets \ + --out_png /tmp/on_the_fly_test.png \ + --n_generate 3 \ + --instances 1 +""" + +from __future__ import annotations + +import argparse +import json +import math +import os +from pathlib import Path +from typing import Dict, List, Optional, Tuple + + +MATERIAL_NAMES = ["CPP", "CHDPE", "GPP", "GHDPE"] + + +def _normalize_coefficients_from_metadata( + coeffs_5_by_deg: np.ndarray, + metadata: Dict, + normalize_method: str = "minmax", +) -> np.ndarray: + """ + Match `MaterialDesignDataset._normalize_coefficients` (flatten [5,deg] -> [5*deg]). + """ + import numpy as np + + coeffs_flat = np.asarray(coeffs_5_by_deg, dtype=np.float32).flatten() + if normalize_method == "minmax": + coeff_min = np.asarray(metadata.get("coefficient_min", []), dtype=np.float32) + coeff_max = np.asarray(metadata.get("coefficient_max", []), dtype=np.float32) + if coeff_min.size == 0 or coeff_max.size == 0: + raise ValueError("Metadata must contain 'coefficient_min' and 'coefficient_max' for minmax normalization") + range_vals = coeff_max - coeff_min + range_vals = np.where(range_vals == 0, 1.0, range_vals) + return ((coeffs_flat - coeff_min) / range_vals).astype(np.float32) + if normalize_method == "zscore": + coeff_mean = np.asarray(metadata.get("coefficient_mean", []), dtype=np.float32) + coeff_std = np.asarray(metadata.get("coefficient_std", []), dtype=np.float32) + if coeff_mean.size == 0 or coeff_std.size == 0: + raise ValueError("Metadata must contain 'coefficient_mean' and 'coefficient_std' for zscore normalization") + std_vals = np.where(coeff_std == 0, 1.0, coeff_std) + return ((coeffs_flat - coeff_mean) / std_vals).astype(np.float32) + raise ValueError(f"Unknown normalize_method: {normalize_method}") + + +def _poly_eval_no_intercept(coeffs_row: np.ndarray, x: np.ndarray) -> np.ndarray: + import numpy as np + + coeffs_with_zero = np.append(np.asarray(coeffs_row, dtype=np.float32), 0.0) + return np.polyval(coeffs_with_zero, x) + + +def _angle_categories_from_metadata(metadata: Dict, angle_resolution: float) -> Tuple[np.ndarray, float, float]: + import numpy as np + + angle_min_raw = float(metadata.get("angle_min", 0.0)) + angle_max_raw = float(metadata.get("angle_max", 90.0)) + angle_min = math.floor(angle_min_raw / angle_resolution) * angle_resolution + angle_max = math.ceil(angle_max_raw / angle_resolution) * angle_resolution + num_categories = int((angle_max - angle_min) / angle_resolution) + 1 + cats = np.linspace(angle_min, angle_max, num_categories, dtype=np.float32) + return cats, float(angle_min), float(angle_max) + + +def _load_training_config_near_checkpoint(checkpoint_path: Path) -> Optional[Dict]: + try: + candidate = checkpoint_path.parent / "training_config.json" + if candidate.exists(): + return json.loads(candidate.read_text()) + except Exception: + return None + return None + + +def _resolve_data_generation_path() -> Path: + # This script lives in hybrid_diffusion_material_generation/ + return (Path(__file__).parent.parent / "data_generation").resolve() + + +def _simulate_design( + *, + mat_type: str, + vf: float, + upper_angles_deg: List[float], + curve_dir: Path, + instance: int, +) -> Dict[str, Dict[str, np.ndarray]]: + """ + Run simulations (11/22/12) for one design. + Returns dict: + { "11": {"strain":..., "stress":..., "lateral":...}, ... } + """ + import numpy as np + + data_gen_path = _resolve_data_generation_path() + if not data_gen_path.exists(): + raise FileNotFoundError(f"data_generation not found at {data_gen_path}") + + import sys + + sys.path.insert(0, str(data_gen_path)) + from generate_data_mp import build_full_symmetric_stack, format_vol_fraction, run_simulation_with_mat # type: ignore + + curve_dir_path = curve_dir.resolve() + vf_str = format_vol_fraction(vf) + prefix = f"{mat_type}_{vf_str}_{instance}" + + # Resolve lam.py similarly to validate_on_the_fly + lam_path = curve_dir_path.parent.parent / "shahriar_modified_2025_12" + if not lam_path.exists(): + lam_path = data_gen_path / "shahriar_modified_2025_12" + if not lam_path.exists(): + lam_path = curve_dir_path.parent / "shahriar_modified_2025_12" + if not lam_path.exists() or not (lam_path / "lam.py").exists(): + raise FileNotFoundError(f"Could not find lam.py at {lam_path}") + + sys.path.insert(0, str(lam_path)) + import importlib.util + + spec = importlib.util.spec_from_file_location("lam", lam_path / "lam.py") + lam = importlib.util.module_from_spec(spec) + assert spec.loader is not None + spec.loader.exec_module(lam) + + read_instance_metadata = lam.read_instance_metadata + load_ud_material_from_files = lam.load_ud_material_from_files + + # Set CURVE_DIR for lam + original_curve_dir = lam.CURVE_DIR + lam.CURVE_DIR = curve_dir_path + try: + _vf_meta, _centers_meta, _n_fibers = read_instance_metadata(prefix) + mat = load_ud_material_from_files(prefix) + finally: + lam.CURVE_DIR = original_curve_dir + + full_angles = build_full_symmetric_stack(sorted(upper_angles_deg)) + + simulation_results: Dict[str, Dict[str, np.ndarray]] = {} + for mode in ("11", "22", "12"): + try: + ex, sx, ey, _gxy, _ezz, _g23, _g13, e11 = run_simulation_with_mat(prefix, full_angles, mode, mat) + + # Interpolate to a small number of points (matches validate_on_the_fly) + num_output_points = 10 + x_out = np.linspace(ex[0], ex[-1], num_output_points, dtype=np.float32) + sx_out_mpa = np.interp(x_out, ex, sx / 1e6).astype(np.float32) + if mode == "11": + lateral_out = np.interp(x_out, ex, ey).astype(np.float32) + elif mode == "22": + lateral_out = np.interp(x_out, ex, e11).astype(np.float32) + else: + lateral_out = None + + simulation_results[mode] = { + "strain": x_out, + "stress": sx_out_mpa, + "lateral": lateral_out, + } + except Exception: + continue + + if not simulation_results: + raise RuntimeError("All simulation modes failed") + return simulation_results + + +def main() -> None: + parser = argparse.ArgumentParser(description="Standalone on-the-fly test (single condition file).") + parser.add_argument("--input_file", type=str, required=True, help="Dataset curve txt file") + parser.add_argument("--data_dir", type=str, required=True, help="processed_data directory used in training") + parser.add_argument("--checkpoint", type=str, required=True, help="Model checkpoint path (best_model.pt)") + parser.add_argument( + "--curve_dir", + type=str, + required=True, + help="Directory containing RVE_Datasets (for lam.py simulations)", + ) + parser.add_argument("--out_png", type=str, required=True, help="Output plot path (png)") + parser.add_argument("--device", type=str, default="cuda:0", help="Device (e.g., cuda:0 or cpu)") + parser.add_argument("--normalization_method", type=str, default=None, choices=["minmax", "zscore"], help="Override normalization method") + parser.add_argument("--n_generate", type=int, default=3, help="How many samples to generate from the model") + parser.add_argument("--instances", type=int, nargs="+", default=[1], help="Simulation instances to run (default: 1)") + parser.add_argument("--remask_prob", type=float, default=0.1, help="Sampling remask probability") + parser.add_argument("--seed", type=int, default=123, help="Random seed for sampling") + args = parser.parse_args() + + # Heavy imports live here so `--help` works even without the training env. + try: + import numpy as np + import torch + except Exception as e: + raise SystemExit( + "Missing dependencies (need at least numpy + torch). " + "Activate your training environment then rerun.\n" + f"Import error: {e}" + ) + + from load_processed_data import load_metadata + from models import MaterialHybridDenoiser, ModelConfig + from train import ( + DiscreteMaskDiffusion, + GaussianDiffusion, + VF_CATEGORIES, + angle_category_to_degrees, + linear_beta_schedule, + sample as diffusion_sample, + ) + + # Local lightweight parsers/fits (avoid importing scipy at module import time) + def parse_dataset_file(filepath: str) -> Dict[str, np.ndarray]: + with open(filepath, "r") as f: + content = f.read() + sections = content.strip().split("\n\n") + data: Dict[str, np.ndarray] = {} + if len(sections) > 0: + lines = sections[0].strip().split("\n") + if len(lines) > 1 and "eps_11" in lines[0]: + rows = [] + for line in lines[1:]: + parts = line.split() + if len(parts) >= 3: + rows.append([float(parts[0]), float(parts[1]), float(parts[2])]) + data["section1"] = np.asarray(rows, dtype=np.float32) + if len(sections) > 1: + lines = sections[1].strip().split("\n") + if len(lines) > 1 and "eps_22" in lines[0]: + rows = [] + for line in lines[1:]: + parts = line.split() + if len(parts) >= 3: + rows.append([float(parts[0]), float(parts[1]), float(parts[2])]) + data["section2"] = np.asarray(rows, dtype=np.float32) + if len(sections) > 2: + lines = sections[2].strip().split("\n") + if len(lines) > 1 and "eps_12" in lines[0]: + rows = [] + for line in lines[1:]: + parts = line.split() + if len(parts) >= 2: + rows.append([float(parts[0]), float(parts[1])]) + data["section3"] = np.asarray(rows, dtype=np.float32) + return data + + def polynomial_fit_no_intercept( + x: np.ndarray, y: np.ndarray, degree_: int + ) -> Tuple[np.ndarray, np.ndarray, np.ndarray]: + # Matches utils.fitting_utils.polynomial_fit but without scipy dependency. + x = np.asarray(x, dtype=np.float32).reshape(-1) + y = np.asarray(y, dtype=np.float32).reshape(-1) + vander = np.vander(x, int(degree_) + 1, increasing=False)[:, :-1] # drop constant + coeffs, *_ = np.linalg.lstsq(vander, y, rcond=None) + x_fit = np.linspace(float(x.min()), float(x.max()), 100, dtype=np.float32) + y_fit = np.polyval(np.append(coeffs, 0.0), x_fit).astype(np.float32) + return coeffs.astype(np.float32), x_fit, y_fit + + input_file = Path(args.input_file).resolve() + data_dir = Path(args.data_dir).resolve() + checkpoint_path = Path(args.checkpoint).resolve() + curve_dir = Path(args.curve_dir).resolve() + out_png = Path(args.out_png).resolve() + + if not input_file.exists(): + raise FileNotFoundError(f"input_file not found: {input_file}") + if not data_dir.exists(): + raise FileNotFoundError(f"data_dir not found: {data_dir}") + if not checkpoint_path.exists(): + raise FileNotFoundError(f"checkpoint not found: {checkpoint_path}") + if not curve_dir.exists(): + raise FileNotFoundError(f"curve_dir not found: {curve_dir}") + + # Metadata (normalization + degree) + metadata = load_metadata(str(data_dir)) + degree = int(metadata.get("polynomial_degree", 3)) + + # Training config (T, betas, angles resolution, discrete/continuous) + training_cfg = _load_training_config_near_checkpoint(checkpoint_path) or {} + normalize_method = args.normalization_method or training_cfg.get("normalization_method", "minmax") + T = int(training_cfg.get("T", 100)) + beta_start = float(training_cfg.get("beta_start", 1e-4)) + beta_end = float(training_cfg.get("beta_end", 0.02)) + use_discrete_angles = bool(training_cfg.get("use_discrete_angles", True)) + angle_resolution = float(training_cfg.get("angle_resolution", 1.0)) + + # Device + device = torch.device(args.device) + + # Fit 5 polynomials from the input file (same relationships as training preprocessing) + parsed_for_fit = parse_dataset_file(str(input_file)) + if "section1" not in parsed_for_fit or "section2" not in parsed_for_fit or "section3" not in parsed_for_fit: + raise ValueError(f"Could not parse all 3 sections from {input_file}") + s1 = parsed_for_fit["section1"] + s2 = parsed_for_fit["section2"] + s3 = parsed_for_fit["section3"] + + # Relationships: + # 0: eps_11 -> sig_11 + # 1: eps_11 -> eps_22 + # 2: eps_22 -> sig_22 + # 3: eps_22 -> eps_11 + # 4: eps_12 -> sig_12 + coeffs_list = [] + coeffs_list.append(polynomial_fit_no_intercept(s1[:, 0], s1[:, 1], degree)[0]) + coeffs_list.append(polynomial_fit_no_intercept(s1[:, 0], s1[:, 2], degree)[0]) + coeffs_list.append(polynomial_fit_no_intercept(s2[:, 0], s2[:, 1], degree)[0]) + coeffs_list.append(polynomial_fit_no_intercept(s2[:, 0], s2[:, 2], degree)[0]) + coeffs_list.append(polynomial_fit_no_intercept(s3[:, 0], s3[:, 1], degree)[0]) + cond_coeffs_5_by_deg = np.stack(coeffs_list, axis=0).astype(np.float32) # [5, degree] + + # Normalize to model input + cond_norm = _normalize_coefficients_from_metadata(cond_coeffs_5_by_deg, metadata, normalize_method=normalize_method) + cond = torch.from_numpy(cond_norm).float().unsqueeze(0) # (1, C) + cond = cond.repeat(args.n_generate, 1).to(device) + + # Angle categories (for decoding generated discrete angles) + if use_discrete_angles: + angle_categories, angle_min, angle_max = _angle_categories_from_metadata(metadata, angle_resolution) + n_angle_categories = int(len(angle_categories)) + dead_category = n_angle_categories + else: + angle_categories = None + n_angle_categories = None + dead_category = None + + # Load checkpoint + ckpt = torch.load(str(checkpoint_path), map_location="cpu") + state_dict = ckpt["model_state_dict"] if isinstance(ckpt, dict) and "model_state_dict" in ckpt else ckpt + + # Build model config + if isinstance(ckpt, dict) and "config" in ckpt: + cfg = ckpt["config"] + # Older checkpoints may store config as a dataclass-like object; keep as-is. + else: + cfg_dict = (training_cfg.get("model_config") or {}) + cfg = ModelConfig( + n_conditions=int(cfg_dict.get("n_conditions", 5 * degree)), + n_materials=int(cfg_dict.get("n_materials", 4)), + n_vf_categories=int(cfg_dict.get("n_vf_categories", 5)), + n_max_layer=int(cfg_dict.get("n_max_layer", int(training_cfg.get("n_max_layer", 10)))), + d_model=int(cfg_dict.get("d_model", 256)), + n_heads=int(cfg_dict.get("n_heads", 4)), + n_layers=int(cfg_dict.get("n_layers", 6)), + dropout=float(cfg_dict.get("dropout", 0.0)), + ) + + mask_ids = dict(training_cfg.get("mask_ids") or {}) + if not mask_ids: + # Sensible defaults (will be overwritten for angle if discrete) + mask_ids = {"material": 4, "vf_category": 5, "layer": 2} + if use_discrete_angles: + mask_ids["angle"] = int(n_angle_categories + 1) # mask id separate from vocab (vocab includes dead token) + + # Diffusions + betas = linear_beta_schedule(T, beta_start, beta_end, str(device)) + disc_diff_mat = DiscreteMaskDiffusion(vocab_size=int(cfg.n_materials), mask_id=int(mask_ids["material"]), T=T, betas=betas) + disc_diff_vf = DiscreteMaskDiffusion(vocab_size=int(cfg.n_vf_categories), mask_id=int(mask_ids["vf_category"]), T=T, betas=betas) + disc_diff_layer = DiscreteMaskDiffusion(vocab_size=2, mask_id=int(mask_ids["layer"]), T=T, betas=betas) + if use_discrete_angles: + disc_diff_angle = DiscreteMaskDiffusion( + vocab_size=int(n_angle_categories + 1), # includes dead token + mask_id=int(mask_ids["angle"]), + T=T, + betas=betas, + ) + cont_diff = None + else: + disc_diff_angle = None + cont_diff = GaussianDiffusion(T=T, betas=betas) + + # Model + model = MaterialHybridDenoiser(cfg, mask_ids, use_discrete_angles=use_discrete_angles, n_angle_categories=n_angle_categories).to(device) + model.load_state_dict(state_dict, strict=True) + model.eval() + + # Reproducibility + torch.manual_seed(args.seed) + np.random.seed(args.seed) + + # Sample generated designs + gen = diffusion_sample( + model=model, + disc_diff_mat=disc_diff_mat, + disc_diff_vf_category=disc_diff_vf, + disc_diff_layer=disc_diff_layer, + disc_diff_angle=disc_diff_angle, + cont_diff=cont_diff, + cond=cond, + mask_ids=mask_ids, + device=str(device), + remask_prob=float(args.remask_prob), + use_discrete_angles=use_discrete_angles, + ) + + # Parse condition points for plotting (dots) + parsed = parse_dataset_file(str(input_file)) + cond_points: Dict[str, Tuple[np.ndarray, np.ndarray]] = {} + if "section1" in parsed and len(parsed["section1"]) > 0: + cond_points["11_stress"] = (parsed["section1"][:, 0], parsed["section1"][:, 1]) + cond_points["11_lat"] = (parsed["section1"][:, 0], parsed["section1"][:, 2]) + if "section2" in parsed and len(parsed["section2"]) > 0: + cond_points["22_stress"] = (parsed["section2"][:, 0], parsed["section2"][:, 1]) + cond_points["22_lat"] = (parsed["section2"][:, 0], parsed["section2"][:, 2]) + if "section3" in parsed and len(parsed["section3"]) > 0: + cond_points["12_stress"] = (parsed["section3"][:, 0], parsed["section3"][:, 1]) + + # Plot + import matplotlib + + matplotlib.use("Agg") + import matplotlib.pyplot as plt + + fig, axes = plt.subplots(2, 3, figsize=(15, 10)) + modes = ["11", "22", "12"] + mode_to_row = {"11": 0, "22": 2, "12": 4} + lateral_row = {"11": 1, "22": 3, "12": None} + colors = ["b", "c", "m", "g", "y"] + cond_color = "k" + gen_lines: List[str] = [] + + # Title (we'll append per-generation lines later as a text block) + title = ( + f"Condition file: {input_file.name}\n" + f"Normalization={normalize_method}, degree={degree}, discrete_angles={use_discrete_angles}" + ) + fig.suptitle(title, fontsize=11) + + # Helper: per-mode condition fit x-range + def _x_fit_for_mode(mode: str) -> Optional[np.ndarray]: + key = f"{mode}_stress" + if key in cond_points: + x = cond_points[key][0] + x_min = float(np.min(x)) + x_max = float(np.max(x)) + if x_max > x_min: + return np.linspace(x_min, x_max, 200, dtype=np.float32) + return None + + # Plot condition fit + dots first + for col, mode in enumerate(modes): + x_fit = _x_fit_for_mode(mode) + if x_fit is not None and mode in mode_to_row: + row = mode_to_row[mode] + y_fit = _poly_eval_no_intercept(cond_coeffs_5_by_deg[row, :], x_fit) + axes[0, col].plot(x_fit, y_fit, color=cond_color, linewidth=2, label="Cond fit") + key = f"{mode}_stress" + if key in cond_points: + x_d, y_d = cond_points[key] + axes[0, col].scatter(x_d, y_d, color=cond_color, s=18, alpha=0.6, marker="x", label="_nolegend_") + + if mode in ("11", "22"): + if x_fit is not None and lateral_row.get(mode) is not None: + row = lateral_row[mode] + assert row is not None + y_lat = _poly_eval_no_intercept(cond_coeffs_5_by_deg[row, :], x_fit) + axes[1, col].plot(x_fit, y_lat, color=cond_color, linewidth=2, label="Cond fit") + key = f"{mode}_lat" + if key in cond_points: + x_d, y_d = cond_points[key] + axes[1, col].scatter(x_d, y_d, color=cond_color, s=18, alpha=0.6, marker="x", label="_nolegend_") + else: + axes[1, col].axis("off") + + # Generate + simulate + plot + for i in range(args.n_generate): + mat_id = int(gen["material_t"][i].item()) + vf_cat = int(gen["vf_category_t"][i].item()) + mat_name = MATERIAL_NAMES[mat_id] if 0 <= mat_id < len(MATERIAL_NAMES) else f"MAT{mat_id}" + vf = float(VF_CATEGORIES[vf_cat]) if 0 <= vf_cat < len(VF_CATEGORIES) else float(VF_CATEGORIES[0]) + + if use_discrete_angles: + assert angle_categories is not None and dead_category is not None + angle_row = gen["angle_t"][i].detach().cpu().numpy().astype(np.int64) + alive_mask = angle_row != dead_category + angle_cats = angle_row[alive_mask] + upper_angles = angle_category_to_degrees(angle_cats, angle_categories).tolist() + else: + # Continuous mode not the main focus here; treat as radians in angle_t with layer mask + layer_mask = gen["layer_t"][i].detach().cpu().numpy().astype(np.int64) + angle_vals = gen["angle_t"][i].detach().cpu().numpy() + alive_mask = layer_mask == 1 + upper_angles = np.rad2deg(angle_vals[alive_mask, 0]).tolist() + + color = colors[i % len(colors)] + sorted_angles = np.sort(np.asarray(upper_angles, dtype=np.float32)) + angles_str = "[" + ", ".join(f"{float(a):.3f}" for a in sorted_angles) + "]" + label = f"Gen{i+1}: {mat_name}, vf={vf:.4f}, angles={angles_str}" + print(label) + gen_lines.append(label) + + # Simulate for requested instances; aggregate by averaging fits on the plot (or plot each instance) + # Default is instances=[1] so this stays clean. + for inst in args.instances: + try: + sim = _simulate_design(mat_type=mat_name, vf=vf, upper_angles_deg=upper_angles, curve_dir=curve_dir, instance=int(inst)) + except Exception as e: + print(f" [Gen{i+1}] simulation failed for instance {inst}: {e}") + continue + + for col, mode in enumerate(modes): + if mode not in sim: + continue + s = sim[mode] + x = s["strain"] + y_stress = s["stress"] + # legend handle as line (like on-the-fly validation) + axes[0, col].plot([], [], color=color, linewidth=2, label=f"Gen{i+1} (inst{inst})") + axes[0, col].scatter(x, y_stress, color=color, s=22, alpha=0.85, label="_nolegend_") + + # Fit smooth polynomial curve to sim points (no intercept) + try: + _c, x_fit_sim, y_fit_sim = polynomial_fit_no_intercept(np.asarray(x), np.asarray(y_stress), degree) + axes[0, col].plot(x_fit_sim, y_fit_sim, color=color, linewidth=2, alpha=0.9, label="_nolegend_") + except Exception: + pass + + if mode in ("11", "22") and s.get("lateral", None) is not None: + y_lat = s["lateral"] + axes[1, col].plot([], [], color=color, linewidth=2, label=f"Gen{i+1} (inst{inst})") + axes[1, col].scatter(x, y_lat, color=color, s=22, alpha=0.85, label="_nolegend_") + try: + _c2, x_fit_sim, y_fit_sim = polynomial_fit_no_intercept(np.asarray(x), np.asarray(y_lat), degree) + axes[1, col].plot(x_fit_sim, y_fit_sim, color=color, linewidth=2, alpha=0.9, label="_nolegend_") + except Exception: + pass + + # Formatting + for col, mode in enumerate(modes): + axes[0, col].set_xlabel("Strain") + axes[0, col].set_ylabel("Stress (MPa)") + axes[0, col].set_title(f"Mode {mode}") + axes[0, col].grid(True, alpha=0.3) + axes[0, col].legend(fontsize=8) + if mode in ("11", "22"): + axes[1, col].set_xlabel("Strain") + axes[1, col].set_ylabel("Lateral Strain") + axes[1, col].set_title(f"Mode {mode} - Lateral") + axes[1, col].grid(True, alpha=0.3) + axes[1, col].legend(fontsize=8) + + out_png.parent.mkdir(parents=True, exist_ok=True) + # Put the generation summary text at the bottom-left (like terminal lines), + # and reserve some space so it doesn't overlap subplots. + if gen_lines: + fig.text( + 0.01, + 0.01, + "\n".join(gen_lines), + ha="left", + va="bottom", + fontsize=9, + family="monospace", + ) + plt.tight_layout(rect=[0, 0.06, 1, 1]) + plt.savefig(str(out_png), dpi=150, bbox_inches="tight") + plt.close() + print(f"Saved plot to {out_png}") + + +if __name__ == "__main__": + main() + diff --git a/hybrid_diffusion_material_generation/train.py b/hybrid_diffusion_material_generation/train.py new file mode 100644 index 0000000000000000000000000000000000000000..d0790dfffa3785e9209ac9d6dce1ef363d933a1c --- /dev/null +++ b/hybrid_diffusion_material_generation/train.py @@ -0,0 +1,3166 @@ +""" +Training script for diffusion model with support for both discrete and continuous angle diffusion. + +This implements: +- Discrete diffusion for material, nfiber, layer (mask corruption) +- Optional discrete diffusion for angles (mask corruption with 7 categories: 0, 15, 30, 45, 60, 75, 90 degrees) +- Optional continuous diffusion for angles (Gaussian noise) +- Combined training with separate loss terms +- Switch between modes via use_discrete_angles parameter +""" + +import math +import random +import numpy as np +import torch +import torch.nn as nn +import torch.nn.functional as F +from torch.utils.data import DataLoader +from tqdm import tqdm +import os +import json +from datetime import datetime +from typing import Dict, Tuple, Optional, List +import multiprocessing as mp +from functools import partial +from pathlib import Path +import sys + +# Optional wandb import +try: + import wandb + WANDB_AVAILABLE = True +except ImportError: + WANDB_AVAILABLE = False + wandb = None + +from models import MaterialHybridDenoiser, ModelConfig +from dataset import create_dataloader +from load_processed_data import load_metadata + +# Import for on-the-fly validation data generation +import sys +from pathlib import Path +DATA_GEN_AVAILABLE = False +try: + # Add data_generation to path + data_gen_path = Path(__file__).parent.parent / "data_generation" + if data_gen_path.exists(): + sys.path.insert(0, str(data_gen_path)) + # Try to import - these will be used in validate_with_on_the_fly_generation + # We'll import them inside the function to handle errors gracefully + DATA_GEN_AVAILABLE = True +except Exception: + DATA_GEN_AVAILABLE = False + + +# ----------------------- +# Diffusion Schedules +# ----------------------- + +def linear_beta_schedule(T: int, beta_start: float = 1e-4, beta_end: float = 0.02, device: str = "cpu"): + """Linear noise schedule for diffusion.""" + return torch.linspace(beta_start, beta_end, T, device=device) + + +def cosine_beta_schedule(T: int, s: float = 0.008, device: str = "cpu"): + """Cosine noise schedule for diffusion.""" + steps = T + 1 + x = torch.linspace(0, T, steps, device=device) + alphas_cumprod = torch.cos(((x / T) + s) / (1 + s) * math.pi * 0.5) ** 2 + alphas_cumprod = alphas_cumprod / alphas_cumprod[0] + betas = 1 - (alphas_cumprod[1:] / alphas_cumprod[:-1]) + return torch.clip(betas, 0.0001, 0.9999) + + +# ----------------------- +# Discrete Diffusion: Mask Corruption +# ----------------------- + +class DiscreteMaskDiffusion: + """ + Forward: keep token with prob alpha_bar[t], else set to mask_id. + Train: predict x0 with cross-entropy. + """ + def __init__(self, vocab_size: int, mask_id: int, T: int, betas: torch.Tensor): + self.vocab_size = vocab_size + self.mask_id = mask_id + self.T = T + self.betas = betas + self.alphas = 1.0 - betas + self.alpha_bar = torch.cumprod(self.alphas, dim=0) # (T,) + + @torch.no_grad() + def q_sample(self, x0: torch.Tensor, t: torch.Tensor): + """ + Corrupt discrete tokens by masking. + + Args: + x0: Original tokens (B,) or (B, L) + t: Timesteps (B,) + + Returns: + Corrupted tokens with some positions masked + """ + if x0.dim() == 1: + x0 = x0.unsqueeze(-1) # (B, 1) + squeeze = True + else: + squeeze = False + + B, L = x0.shape + keep_prob = self.alpha_bar[t].view(B, 1) # (B, 1) + keep = (torch.rand(B, L, device=x0.device) < keep_prob) + xt = torch.where(keep, x0, torch.full_like(x0, self.mask_id)) + + if squeeze: + xt = xt.squeeze(-1) + return xt + + +# ----------------------- +# Continuous Diffusion: Gaussian Noise +# ----------------------- + +class GaussianDiffusion: + """ + Forward: x_t = sqrt(a_bar)*x0 + sqrt(1-a_bar)*eps + Train: predict eps (noise) with MSE. + """ + def __init__(self, T: int, betas: torch.Tensor): + self.T = T + self.betas = betas + self.alphas = 1.0 - betas + self.alpha_bar = torch.cumprod(self.alphas, dim=0) # (T,) + self.sqrt_alpha_bar = torch.sqrt(self.alpha_bar) + self.sqrt_one_minus_alpha_bar = torch.sqrt(1.0 - self.alpha_bar) + + # For reverse sampling + self.sqrt_recip_alphas = torch.sqrt(1.0 / self.alphas) + self.one_minus_alphas = 1.0 - self.alphas + + def q_sample(self, x0: torch.Tensor, t: torch.Tensor, noise=None): + """ + Add noise to continuous values. + + Args: + x0: Original values (B, L, D) + t: Timesteps (B,) + noise: Optional noise tensor (if None, sample new noise) + + Returns: + xt: Noisy values (B, L, D) + noise: The noise that was added (B, L, D) + """ + if noise is None: + noise = torch.randn_like(x0) + a = self.sqrt_alpha_bar[t].view(-1, 1, 1) # (B, 1, 1) + b = self.sqrt_one_minus_alpha_bar[t].view(-1, 1, 1) # (B, 1, 1) + xt = a * x0 + b * noise + return xt, noise + + @torch.no_grad() + def p_sample_step(self, x_t: torch.Tensor, t: torch.Tensor, eps_pred: torch.Tensor): + """ + DDPM reverse step (denoising). + + Args: + x_t: Noisy values (B, L, D) + t: Timesteps (B,) + eps_pred: Predicted noise (B, L, D) + + Returns: + x_prev: Denoised values (B, L, D) + """ + beta_t = self.betas[t].view(-1, 1, 1) + sqrt_recip_alpha_t = self.sqrt_recip_alphas[t].view(-1, 1, 1) + sqrt_one_minus_a_bar = self.sqrt_one_minus_alpha_bar[t].view(-1, 1, 1) + + # Mean: mu = 1/sqrt(alpha_t) * (x_t - (beta_t / sqrt(1-a_bar_t)) * eps_pred) + mu = sqrt_recip_alpha_t * (x_t - (beta_t / sqrt_one_minus_a_bar) * eps_pred) + + # Add noise except at t=0 + noise = torch.randn_like(x_t) + sigma = torch.sqrt(beta_t) + not_zero = (t != 0).float().view(-1, 1, 1) + x_prev = mu + not_zero * sigma * noise + return x_prev + + +# ----------------------- +# Training Functions +# ----------------------- + +def compute_loss( + model: MaterialHybridDenoiser, + disc_diff_mat: DiscreteMaskDiffusion, + disc_diff_vf_category: DiscreteMaskDiffusion, + disc_diff_layer: DiscreteMaskDiffusion, + disc_diff_angle: DiscreteMaskDiffusion = None, + cont_diff: GaussianDiffusion = None, + batch: Dict[str, torch.Tensor] = None, + mask_ids: Dict[str, int] = None, + lambda_angle: float = 1.0, + lambda_material: float = 1.0, + lambda_vf_category: float = 1.0, + lambda_layer: float = 1.0, + use_discrete_angles: bool = True, +) -> Tuple[float, float, float, float, float]: + """ + Compute loss without backward pass (for validation). + + Supports both discrete and continuous angle diffusion based on use_discrete_angles flag. + + Returns: + Tuple of (total_loss, loss_material, loss_nfiber, loss_layer, loss_angle) + """ + device = batch['material_t'].device + B = batch['material_t'].shape[0] + L = batch['layer_t'].shape[1] + + # Sample random timesteps - use appropriate diffusion process + if use_discrete_angles: + T = disc_diff_angle.T + else: + T = cont_diff.T + t = torch.randint(0, T, (B,), device=device) + + # Extract ground truth + x0_material = batch['material_t'] + x0_vf_category = batch['vf_category_t'] + x0_layer = batch['layer_t'] + x0_angle = batch['angle_t'] + cond = batch['cond'] + + # Forward noising + x_material_t = disc_diff_mat.q_sample(x0_material, t) + x_vf_category_t = disc_diff_vf_category.q_sample(x0_vf_category, t) + x_layer_t = disc_diff_layer.q_sample(x0_layer, t) + + if use_discrete_angles: + x_angle_t = disc_diff_angle.q_sample(x0_angle, t) # (B, L) discrete + else: + x_angle_t, _ = cont_diff.q_sample(x0_angle, t) # (B, L, 1) continuous + + # Model prediction + outputs = model(x_material_t, x_vf_category_t, x_layer_t, x_angle_t, cond, t) + + # Compute losses + loss_material = F.cross_entropy( + outputs['material_logits'], + x0_material, + ignore_index=mask_ids['material'] + ) + + loss_vf_category = F.cross_entropy( + outputs['vf_category_logits'], + x0_vf_category, + ignore_index=mask_ids['vf_category'] + ) + + # Layer and angle loss: depends on discrete vs continuous + if use_discrete_angles: + # Discrete: combined angle+layer logits + # Categories 0 to n_angle_categories-1: angle categories, Category n_angle_categories: dead layer + angle_logits = outputs['angle_logits'] # (B, L, n_angle_categories + 1) + n_angle_categories = angle_logits.size(-1) - 1 # Computed dynamically from logits + dead_category = n_angle_categories + + # Only compute loss for valid positions: up to and including the first dead token + # Positions after the first dead token are invalid padding and should be masked out + angle_losses = [] + + for b in range(B): + # Find first dead position (or L if no dead tokens) + dead_positions = torch.where(x0_angle[b] == dead_category)[0] + if len(dead_positions) > 0: + first_dead_pos = dead_positions[0].item() + # Valid positions: 0 to first_dead_pos (inclusive) + # This includes all alive layers + the first dead layer + valid_mask = torch.zeros(L, dtype=torch.bool, device=device) + valid_mask[:first_dead_pos + 1] = True + else: + # No dead tokens found - this means all layers are alive (sample uses max layers) + # In this case, all positions are valid + valid_mask = torch.ones(L, dtype=torch.bool, device=device) + + if not valid_mask.any(): + raise ValueError("No valid positions found in batch") + + # Get valid positions + valid_gt = x0_angle[b, valid_mask] # (n_valid,) + valid_logits = angle_logits[b, valid_mask] # (n_valid, n_angle_categories + 1) + + # Compute cross-entropy loss for all valid positions (includes both alive and dead tokens) + # Cross-entropy handles both angle categories (0-6) and dead category (7) correctly + loss_b = F.cross_entropy( + valid_logits, + valid_gt, + reduction='mean' + ) + + angle_losses.append(loss_b) + + if len(angle_losses) > 0: + loss_angle = torch.stack(angle_losses).mean() + else: + raise ValueError("No valid positions found in batch") + #loss_angle = torch.tensor(0.0, device=device) + + # No separate layer loss when using discrete angles + loss_layer = torch.tensor(0.0, device=device) + else: + # Continuous: separate layer and angle losses + layer_logits_flat = outputs['layer_logits'].view(B * L, 2) + layer_target_flat = x0_layer.view(-1) + valid_mask = (layer_target_flat != mask_ids['layer']) + if valid_mask.any(): + loss_layer = F.cross_entropy( + layer_logits_flat[valid_mask], + layer_target_flat[valid_mask], + reduction='mean' + ) + else: + loss_layer = torch.tensor(0.0, device=device) + + # Continuous: MSE with position-dependent matching (no sorting needed) + angle_pred = outputs['angle'] # (B, L, 1) - predicted x0 + valid_layer_mask = (x0_layer != mask_ids['layer']) # (B, L) + angle_losses = [] + + for b in range(B): + valid_mask = valid_layer_mask[b] # (L,) + if not valid_mask.any(): + continue + + pred_angles = angle_pred[b, valid_mask, 0] # (n_valid,) + gt_angles = x0_angle[b, valid_mask, 0] # (n_valid,) + + # Compute MSE loss position-wise (positions are now meaningful) + mse = (pred_angles - gt_angles) ** 2 + angle_losses.append(mse.mean()) + + if len(angle_losses) > 0: + loss_angle = torch.stack(angle_losses).mean() + else: + loss_angle = torch.tensor(0.0, device=device) + + total_loss = ( + lambda_material * loss_material + + lambda_vf_category * loss_vf_category + + lambda_layer * loss_layer + + lambda_angle * loss_angle + ) + + return ( + total_loss, + loss_material, + loss_vf_category, + loss_layer, + loss_angle + ) + + +def train_step( + model: MaterialHybridDenoiser, + disc_diff_mat: DiscreteMaskDiffusion, + disc_diff_vf_category: DiscreteMaskDiffusion, + disc_diff_layer: DiscreteMaskDiffusion, + disc_diff_angle: DiscreteMaskDiffusion = None, + cont_diff: GaussianDiffusion = None, + optimizer: torch.optim.Optimizer = None, + batch: Dict[str, torch.Tensor] = None, + mask_ids: Dict[str, int] = None, + lambda_angle: float = 1.0, + lambda_material: float = 1.0, + lambda_vf_category: float = 1.0, + lambda_layer: float = 1.0, + use_discrete_angles: bool = True, +) -> Tuple[float, float, float, float, float]: + """ + Single training step (with backward pass). + Supports both discrete and continuous angle diffusion. + + Args: + model: MaterialHybridDenoiser model + disc_diff_mat: Discrete diffusion for material + disc_diff_vf_category: Discrete diffusion for volume fraction category + disc_diff_layer: Discrete diffusion for layer + disc_diff_angle: Discrete diffusion for angles (if use_discrete_angles=True) + cont_diff: Continuous diffusion for angles (if use_discrete_angles=False) + optimizer: Optimizer + batch: Batch dictionary with model inputs + mask_ids: Dictionary of mask IDs + lambda_angle: Weight for angle loss + lambda_material: Weight for material loss + lambda_vf_category: Weight for volume fraction category loss + lambda_layer: Weight for layer loss + use_discrete_angles: Whether to use discrete or continuous angle diffusion + + Returns: + Tuple of (total_loss, loss_material, loss_nfiber, loss_layer, loss_angle) as floats + """ + model.train() + + # Compute loss (returns tensors) + total_loss, loss_material, loss_vf_category, loss_layer, loss_angle = compute_loss( + model=model, + disc_diff_mat=disc_diff_mat, + disc_diff_vf_category=disc_diff_vf_category, + disc_diff_layer=disc_diff_layer, + disc_diff_angle=disc_diff_angle, + cont_diff=cont_diff, + batch=batch, + mask_ids=mask_ids, + lambda_angle=lambda_angle, + lambda_material=lambda_material, + lambda_vf_category=lambda_vf_category, + lambda_layer=lambda_layer, + use_discrete_angles=use_discrete_angles + ) + + # Backward pass + optimizer.zero_grad(set_to_none=True) + total_loss.backward() + optimizer.step() + + # Return as floats + return ( + float(total_loss.detach().cpu()), + float(loss_material.detach().cpu()), + float(loss_vf_category.detach().cpu()), + float(loss_layer.detach().cpu()), + float(loss_angle.detach().cpu()) + ) + + +# ----------------------- +# Sampling Functions +# ----------------------- + +@torch.no_grad() +def sample( + model: MaterialHybridDenoiser, + disc_diff_mat: DiscreteMaskDiffusion, + disc_diff_vf_category: DiscreteMaskDiffusion, + disc_diff_layer: DiscreteMaskDiffusion, + disc_diff_angle: DiscreteMaskDiffusion = None, + cont_diff: GaussianDiffusion = None, + cond: torch.Tensor = None, + mask_ids: Dict[str, int] = None, + device: str = None, + remask_prob: float = 0.1, + use_discrete_angles: bool = True, +) -> Dict[str, torch.Tensor]: + """ + Sample from the diffusion model (supports batch generation). + Supports both discrete and continuous angle diffusion. + + Args: + model: MaterialHybridDenoiser model + disc_diff_mat: Discrete diffusion for material + disc_diff_vf_category: Discrete diffusion for volume fraction category + disc_diff_layer: Discrete diffusion for layer + disc_diff_angle: Discrete diffusion for angles (if use_discrete_angles=True) + cont_diff: Continuous diffusion for angles (if use_discrete_angles=False) + cond: Condition tensor (B, n_conditions) + mask_ids: Dictionary of mask IDs + device: Device to run on + remask_prob: Probability of re-masking during sampling + use_discrete_angles: Whether to use discrete or continuous angle diffusion + + Returns: + Dictionary with sampled values: + - material_t: (B,) + - vf_category_t: (B,) + - layer_t: (B, L) + - angle_t: (B, L) discrete category indices OR (B, L, 1) continuous + """ + model.eval() + B = cond.shape[0] + L = model.cfg.n_max_layer + + # Start from noise/mask + x_material_t = torch.full((B,), mask_ids['material'], dtype=torch.long, device=device) + x_vf_category_t = torch.full((B,), mask_ids['vf_category'], dtype=torch.long, device=device) + x_layer_t = torch.full((B, L), mask_ids['layer'], dtype=torch.long, device=device) + + if use_discrete_angles: + x_angle_t = torch.full((B, L), mask_ids['angle'], dtype=torch.long, device=device) + T = disc_diff_angle.T + else: + x_angle_t = torch.randn(B, L, 1, device=device) + T = cont_diff.T + + # Reverse diffusion + for t_int in reversed(range(T)): + t = torch.full((B,), t_int, dtype=torch.long, device=device) + + # Model prediction + outputs = model(x_material_t, x_vf_category_t, x_layer_t, x_angle_t, cond, t) + + # Discrete updates (material, vf_category, layer) + # Material + probs_mat = F.softmax(outputs['material_logits'], dim=-1) # (B, n_materials) + remask_mat = (x_material_t == mask_ids['material']) | (torch.rand(B, device=device) < remask_prob) + if remask_mat.any(): + new_material = torch.multinomial(probs_mat[remask_mat], 1).squeeze(-1) # (N,) + x_material_t = x_material_t.clone() + x_material_t[remask_mat] = new_material + + # Volume fraction category (5 categories: 0-4) + probs_vf = F.softmax(outputs['vf_category_logits'], dim=-1) # (B, 5) + remask_vf = (x_vf_category_t == mask_ids['vf_category']) | (torch.rand(B, device=device) < remask_prob) + if remask_vf.any(): + sampled_vf = torch.multinomial(probs_vf[remask_vf], 1).squeeze(-1) # (N,) in [0, 4] + x_vf_category_t = x_vf_category_t.clone() + x_vf_category_t[remask_vf] = sampled_vf + + # Layer and angle update: depends on discrete vs continuous + if use_discrete_angles: + # Discrete sampling: combined angle+layer logits + # Categories 0-6: angle categories, Category 7: dead layer + probs_angle = F.softmax(outputs['angle_logits'], dim=-1) # (B, L, n_angle_categories + 1) + remask_angle = (torch.rand(B, L, device=device) < remask_prob) + masked_angle = (x_angle_t == mask_ids['angle']) | remask_angle + if masked_angle.any(): + flat_probs_angle = probs_angle.view(-1, probs_angle.size(-1))[masked_angle.view(-1)] # (N, n_angle_categories + 1) + new_angle = torch.multinomial(flat_probs_angle, 1).squeeze(-1) # (N,) + x_angle_t = x_angle_t.clone() + x_angle_t[masked_angle] = new_angle + + # Update layer_t based on angle_t: if angle == dead_category, layer is dead (0), else alive (1) + # Get dead_category from angle_logits size + n_angle_categories = probs_angle.size(-1) - 1 + dead_category = n_angle_categories + x_layer_t = (x_angle_t != dead_category).long() # 1 if alive (angle != dead_category), 0 if dead (angle == dead_category) + else: + # Continuous: separate layer and angle updates + probs_layer = F.softmax(outputs['layer_logits'], dim=-1) # (B, L, 2) + remask_layer = (torch.rand(B, L, device=device) < remask_prob) + masked = (x_layer_t == mask_ids['layer']) | remask_layer + if masked.any(): + flat_probs = probs_layer.view(-1, 2)[masked.view(-1)] # (N, 2) + new_layer = torch.multinomial(flat_probs, 1).squeeze(-1) # (N,) + x_layer_t = x_layer_t.clone() + x_layer_t[masked] = new_layer + + # Continuous update (angle) + angle_pred = outputs['angle'] # (B, L, 1) - predicted x0 + # Compute predicted noise from predicted x0 + sqrt_alpha_bar_t = cont_diff.sqrt_alpha_bar[t].view(-1, 1, 1) + sqrt_one_minus_alpha_bar_t = cont_diff.sqrt_one_minus_alpha_bar[t].view(-1, 1, 1) + eps_pred = (x_angle_t - sqrt_alpha_bar_t * angle_pred) / sqrt_one_minus_alpha_bar_t.clamp_min(1e-8) + + # DDPM reverse step (denoising) + x_angle_t = cont_diff.p_sample_step(x_angle_t, t, eps_pred) + + return { + 'material_t': x_material_t, + 'vf_category_t': x_vf_category_t, + 'layer_t': x_layer_t, + 'angle_t': x_angle_t + } + + +# ----------------------- +# Metrics Computation +# ----------------------- + +# Volume fraction categories +VF_CATEGORIES = [0.0924, 0.2155, 0.3079, 0.4002, 0.4926] + +def vf_category_to_volume_fraction(vf_category: int) -> float: + """ + Convert volume fraction category index to volume fraction value. + + Args: + vf_category: Category index (0-4) + + Returns: + Volume fraction value + """ + if 0 <= vf_category < len(VF_CATEGORIES): + return VF_CATEGORIES[vf_category] + return VF_CATEGORIES[0] # Default to first category + +def angle_category_to_degrees(angle_categories: np.ndarray, angle_categories_list: np.ndarray) -> np.ndarray: + """ + Convert angle category indices to degrees. + + Args: + angle_categories: Array of category indices + angle_categories_list: Array of angle values in degrees corresponding to each category + + Returns: + Array of angles in degrees + """ + return np.array([angle_categories_list[int(cat)] for cat in angle_categories]) + + +def find_matching_samples_in_dataset( + generated_sample: Dict[str, torch.Tensor], + dataset_data: Dict[str, np.ndarray], + use_discrete_angles: bool = True, + tolerance: float = 0.1, + angle_categories: Optional[np.ndarray] = None +) -> List[int]: + """ + Find samples in dataset that match the generated sample. + + Args: + generated_sample: Dictionary with generated values + - material_t: (1,) material type + - vf_category_t: (1,) volume fraction category (0-4) + - layer_t: (L,) layer mask + - angle_t: (L,) angle categories OR (L, 1) continuous + dataset_data: Dictionary with dataset arrays + use_discrete_angles: Whether using discrete angles + tolerance: Tolerance for angle matching in degrees (for continuous) + + Returns: + List of matching sample indices + """ + # Extract generated values + gen_material = generated_sample['material_t'].item() + gen_vf_category = generated_sample['vf_category_t'].item() + gen_vf = vf_category_to_volume_fraction(gen_vf_category) + gen_layer = generated_sample['layer_t'].cpu().numpy() # (L,) + gen_angle = generated_sample['angle_t'].cpu().numpy() # (L,) or (L, 1) + + # Count alive layers + if use_discrete_angles: + if angle_categories is None: + raise ValueError("angle_categories must be provided when use_discrete_angles=True") + n_angle_categories = len(angle_categories) + dead_category = n_angle_categories + gen_nlayers = (gen_angle != dead_category).sum() + gen_alive_mask = (gen_angle != dead_category) + gen_angles_alive = gen_angle[gen_alive_mask] + gen_angles_deg = angle_category_to_degrees(gen_angles_alive, angle_categories) + else: + gen_nlayers = gen_layer.sum() + gen_alive_mask = gen_layer == 1 + gen_angles_alive = gen_angle[gen_alive_mask, 0] if gen_angle.ndim > 1 else gen_angle[gen_alive_mask] + gen_angles_deg = np.rad2deg(gen_angles_alive) + + # Sort angles for comparison + gen_angles_sorted = np.sort(gen_angles_deg) + + # Search dataset + matching_indices = [] + + for idx in range(len(dataset_data['material_type'])): + # Match material + if dataset_data['material_type'][idx] != gen_material: + continue + + # Match volume fraction (exact match for category) + dataset_vf = float(dataset_data['volume_fraction'][idx]) + if abs(dataset_vf - gen_vf) > 1e-4: # Small tolerance for floating point + continue + + # Match layer count + n_layers = dataset_data['stacking_sequence_lengths'][idx] + if n_layers != gen_nlayers: + continue + + # Match angles + dataset_angles = dataset_data['stacking_sequence'][idx][:n_layers] # (n_layers,) in degrees + dataset_angles_sorted = np.sort(dataset_angles) + + if use_discrete_angles: + # For discrete, convert dataset angles to categories and compare + if angle_categories is None: + raise ValueError("angle_categories must be provided when use_discrete_angles=True") + angle_cats_array = np.array(angle_categories, dtype=np.float32) + distances = np.abs(dataset_angles_sorted[:, np.newaxis] - angle_cats_array[np.newaxis, :]) + dataset_angle_cats = np.argmin(distances, axis=1) + dataset_angles_from_cats = angle_category_to_degrees(dataset_angle_cats, angle_cats_array) + dataset_angles_sorted = np.sort(dataset_angles_from_cats) + + # Check if angles match (within tolerance) + if len(dataset_angles_sorted) == len(gen_angles_sorted): + if use_discrete_angles: + # Exact match for discrete + if np.allclose(dataset_angles_sorted, gen_angles_sorted, atol=1e-6): + matching_indices.append(idx) + else: + # Within tolerance for continuous + if np.allclose(dataset_angles_sorted, gen_angles_sorted, atol=tolerance): + matching_indices.append(idx) + + return matching_indices + +def print_sample_comparison( + gt_samples: Dict[str, torch.Tensor], + pred_samples: Dict[str, torch.Tensor], + n_print: int = 10, + material_names: list = None, + angle_categories: Optional[np.ndarray] = None +): + """ + Print ground truth and predicted samples for visual inspection. + + Args: + gt_samples: Dictionary with ground truth samples + pred_samples: Dictionary with predicted samples + n_print: Number of samples to print + material_names: List of material names (default: ['CPP', 'CHDPE', 'GPP', 'GHDPE']) + """ + if material_names is None: + material_names = ['CPP', 'CHDPE', 'GPP', 'GHDPE'] + + B = gt_samples['material_t'].shape[0] + n_print = min(n_print, B) + + print("\n" + "="*80) + print("SAMPLE COMPARISON (Ground Truth vs Generated)") + print("="*80) + + for i in range(n_print): + gt_mat = gt_samples['material_t'][i].item() + pred_mat = pred_samples['material_t'][i].item() + gt_vf_category = gt_samples['vf_category_t'][i].item() + pred_vf_category = pred_samples['vf_category_t'][i].item() + gt_vf = vf_category_to_volume_fraction(gt_vf_category) + pred_vf = vf_category_to_volume_fraction(pred_vf_category) + gt_layer = gt_samples['layer_t'][i] # (L,) + pred_layer = pred_samples['layer_t'][i] # (L,) + gt_angle = gt_samples['angle_t'][i] + pred_angle = pred_samples['angle_t'][i] + + gt_nlayers = gt_layer.sum().item() + pred_nlayers = pred_layer.sum().item() + + # Get valid angles + gt_alive_mask = gt_layer == 1 + pred_alive_mask = pred_layer == 1 + + # Handle both discrete and continuous angles + # Check if angles are discrete (1D) or continuous (2D with last dim=1) + if gt_angle.dim() == 1: + # Discrete categories + gt_angle_cats = gt_angle[gt_alive_mask].numpy() + pred_angle_cats = pred_angle[pred_alive_mask].numpy() + + if len(gt_angle_cats) > 0: + if angle_categories is None: + raise ValueError("angle_categories must be provided for discrete angles") + gt_angles_deg = np.sort(angle_category_to_degrees(gt_angle_cats, angle_categories)) + else: + gt_angles_deg = np.array([]) + if len(pred_angle_cats) > 0: + if angle_categories is None: + raise ValueError("angle_categories must be provided for discrete angles") + pred_angles_deg = np.sort(angle_category_to_degrees(pred_angle_cats, angle_categories)) + else: + pred_angles_deg = np.array([]) + else: + # Continuous (radians) + gt_angles = gt_angle[gt_alive_mask, 0].numpy() + pred_angles = pred_angle[pred_alive_mask, 0].numpy() + + if len(gt_angles) > 0: + gt_angles_deg = np.sort(np.rad2deg(gt_angles)) + else: + gt_angles_deg = np.array([]) + if len(pred_angles) > 0: + pred_angles_deg = np.sort(np.rad2deg(pred_angles)) + else: + pred_angles_deg = np.array([]) + + print(f"\nSample {i+1}:") + print(f" Material: GT={material_names[gt_mat] if gt_mat < len(material_names) else f'ID{gt_mat}'} | Pred={material_names[pred_mat] if pred_mat < len(material_names) else f'ID{pred_mat}'} {'✓' if gt_mat == pred_mat else '✗'}") + print(f" VF Category: GT={gt_vf_category} (vf={gt_vf:.4f}) | Pred={pred_vf_category} (vf={pred_vf:.4f}) {'✓' if gt_vf_category == pred_vf_category else '✗'}") + print(f" Nlayers: GT={gt_nlayers} | Pred={pred_nlayers} {'✓' if gt_nlayers == pred_nlayers else '✗'}") + + # Always print angles, even if layer counts don't match + print(f" Angles (deg):") + if len(gt_angles_deg) > 0: + print(f" GT: {gt_angles_deg}") + else: + print(f" GT: []") + if len(pred_angles_deg) > 0: + print(f" Pred: {pred_angles_deg}") + else: + print(f" Pred: []") + + # Compute L1 error if layer counts match + if gt_nlayers == pred_nlayers and gt_nlayers > 0 and len(gt_angles_deg) == len(pred_angles_deg): + l1_error = np.mean(np.abs(gt_angles_deg - pred_angles_deg)) + print(f" L1 Error: {l1_error:.2f}°") + elif gt_nlayers != pred_nlayers: + print(f" (Layer count mismatch: GT={gt_nlayers}, Pred={pred_nlayers})") + + print("="*80 + "\n") + + +@torch.no_grad() +def compute_generation_metrics( + model: MaterialHybridDenoiser, + disc_diff_mat: DiscreteMaskDiffusion, + disc_diff_vf_category: DiscreteMaskDiffusion, + disc_diff_layer: DiscreteMaskDiffusion, + disc_diff_angle: DiscreteMaskDiffusion = None, + cont_diff: GaussianDiffusion = None, + test_loader: DataLoader = None, + mask_ids: Dict[str, int] = None, + device: str = None, + n_samples: Optional[int] = None, # None = use all test samples + remask_prob: float = 0.1, + print_samples: bool = True, + n_print_samples: int = 10, + use_discrete_angles: bool = True, + dataset_data: Dict[str, np.ndarray] = None, + metadata: Dict = None, + visualize_matches: bool = False, + save_visualizations: bool = False, + vis_save_dir: str = None, + epoch: int = None, + normalization_method: str = 'minmax', + n_visualization_samples: int = 10, # Number of samples to generate visualizations for + angle_categories: Optional[np.ndarray] = None +) -> Dict[str, float]: + """ + Compute generation-based metrics by actually generating samples. + + Args: + model: MaterialHybridDenoiser model + disc_diff_mat: Discrete diffusion for material + disc_diff_vf_category: Discrete diffusion for volume fraction category + disc_diff_layer: Discrete diffusion for layer + disc_diff_angle: Discrete diffusion for angles (if use_discrete_angles) + cont_diff: Continuous diffusion for angles (if not use_discrete_angles) + test_loader: Test dataloader + mask_ids: Dictionary of mask IDs + device: Device to run on + n_samples: Number of samples to generate and evaluate + remask_prob: Remasking probability during sampling + print_samples: Whether to print sample comparisons for visual inspection + n_print_samples: Number of samples to print (if print_samples=True) + use_discrete_angles: Whether using discrete angles + dataset_data: Dataset data dictionary for matching (optional) + metadata: Metadata dictionary for coefficient extraction (optional) + visualize_matches: Whether to visualize matches with dataset samples + save_visualizations: Whether to save visualization plots + vis_save_dir: Directory to save visualizations + epoch: Current epoch number (for saving) + + Returns: + Dictionary with generation metrics: + - material_accuracy: Classification accuracy for material + - nfiber_accuracy: Exact match accuracy for number of fibers + - nfiber_l1_error: Average L1 error for number of fibers + - nlayers_accuracy: Exact match accuracy for number of layers + - nlayers_l1_error: Average L1 error for number of layers + - angle_l1_error: Average L1 error for angles in degrees (only when layer counts match) + - angle_valid_samples: Number of samples with matching layer counts + """ + model.eval() + + material_correct = [] + vf_category_correct = [] + nlayers_correct = [] + nlayers_l1_errors = [] + angle_l1_errors = [] + + # Store samples for printing + gt_samples_for_print = None + pred_samples_for_print = None + + # Dataset matching disabled - not needed + + # Visualization data + visualization_samples = [] if visualize_matches else None + + # Determine total number of samples to process + if n_samples is None: + # Use all test samples + n_samples = len(test_loader.dataset) + + sample_count = 0 + + # Create progress bar + pbar = tqdm(total=n_samples, desc="Generating samples for metrics") + + for batch in test_loader: + if sample_count >= n_samples: + break + + batch = {k: v.to(device) for k, v in batch.items()} + B = batch['material_t'].shape[0] + + # Determine how many samples to process from this batch + remaining = n_samples - sample_count + batch_size_to_process = min(B, remaining) + + # Extract batch subset + batch_subset = { + 'material_t': batch['material_t'][:batch_size_to_process], + 'vf_category_t': batch['vf_category_t'][:batch_size_to_process], + 'layer_t': batch['layer_t'][:batch_size_to_process], + 'angle_t': batch['angle_t'][:batch_size_to_process], + 'cond': batch['cond'][:batch_size_to_process] + } + + # Generate predictions in batch + pred = sample( + model=model, + disc_diff_mat=disc_diff_mat, + disc_diff_vf_category=disc_diff_vf_category, + disc_diff_layer=disc_diff_layer, + disc_diff_angle=disc_diff_angle, + cont_diff=cont_diff, + cond=batch_subset['cond'], + mask_ids=mask_ids, + device=device, + remask_prob=remask_prob, + use_discrete_angles=use_discrete_angles + ) + + # Store first batch for printing + if print_samples and gt_samples_for_print is None: + gt_samples_for_print = {k: v.cpu() for k, v in batch_subset.items() if k != 'cond'} + pred_samples_for_print = {k: v.cpu() for k, v in pred.items()} + + # Dataset matching disabled - not needed + + # Process each sample in batch + for i in range(batch_size_to_process): + # Material accuracy + pred_material = pred['material_t'][i].item() + gt_material = batch_subset['material_t'][i].item() + material_correct.append(1.0 if pred_material == gt_material else 0.0) + + # VF category accuracy + pred_vf_category = pred['vf_category_t'][i].item() + gt_vf_category = batch_subset['vf_category_t'][i].item() + vf_category_correct.append(1.0 if pred_vf_category == gt_vf_category else 0.0) + + # Layer accuracy (number of layers) and L1 error + if use_discrete_angles: + if angle_categories is None: + raise ValueError("angle_categories must be provided for discrete angles") + n_angle_categories = len(angle_categories) + dead_category = n_angle_categories + pred_nlayers = (pred['angle_t'][i] != dead_category).sum().item() + gt_nlayers = (batch_subset['angle_t'][i] != dead_category).sum().item() + else: + pred_nlayers = pred['layer_t'][i].sum().item() + gt_nlayers = batch_subset['layer_t'][i].sum().item() + nlayers_correct.append(1.0 if pred_nlayers == gt_nlayers else 0.0) + nlayers_l1_errors.append(abs(pred_nlayers - gt_nlayers)) + + # Angle error (only if layer counts match) + if pred_nlayers == gt_nlayers and pred_nlayers > 0: + if use_discrete_angles: + # Extract alive angle category indices (where angle != dead_category) + if angle_categories is None: + raise ValueError("angle_categories must be provided for discrete angles") + n_angle_categories = len(angle_categories) + dead_category = n_angle_categories + pred_alive_mask = (pred['angle_t'][i] != dead_category).cpu().numpy() + gt_alive_mask = (batch_subset['angle_t'][i] != dead_category).cpu().numpy() + + pred_angle_cats = pred['angle_t'][i, pred_alive_mask].cpu().numpy() + gt_angle_cats = batch_subset['angle_t'][i, gt_alive_mask].cpu().numpy() + + # Convert categories to degrees + pred_angles_deg = angle_category_to_degrees(pred_angle_cats, angle_categories) + gt_angles_deg = angle_category_to_degrees(gt_angle_cats, angle_categories) + + # Sort angles for comparison (stacking sequence may not be sorted) + pred_angles_deg = np.sort(pred_angles_deg) + gt_angles_deg = np.sort(gt_angles_deg) + else: + # Extract continuous angles + pred_alive_mask = pred['layer_t'][i] == 1 + gt_alive_mask = batch_subset['layer_t'][i] == 1 + + pred_angles = pred['angle_t'][i, pred_alive_mask, 0].cpu().numpy() + gt_angles = batch_subset['angle_t'][i, gt_alive_mask, 0].cpu().numpy() + + # Convert to degrees + pred_angles_deg = np.rad2deg(pred_angles) + gt_angles_deg = np.rad2deg(gt_angles) + + # Sort angles for comparison (stacking sequence may not be sorted) + pred_angles_deg = np.sort(pred_angles_deg) + gt_angles_deg = np.sort(gt_angles_deg) + + # Compute L1 error on sorted angles (for meaningful comparison) + l1_error = np.mean(np.abs(pred_angles_deg - gt_angles_deg)) + angle_l1_errors.append(l1_error) + + sample_count += 1 + pbar.update(1) + + pbar.close() + + # Print sample comparisons + if print_samples and gt_samples_for_print is not None: + print_sample_comparison( + gt_samples_for_print, + pred_samples_for_print, + n_print=n_print_samples, + angle_categories=angle_categories + ) + + # Aggregate metrics + material_accuracy = np.mean(material_correct) if material_correct else 0.0 + vf_category_accuracy = np.mean(vf_category_correct) if vf_category_correct else 0.0 + nlayers_accuracy = np.mean(nlayers_correct) if nlayers_correct else 0.0 + nlayers_l1_error = np.mean(nlayers_l1_errors) if nlayers_l1_errors else 0.0 + + if len(angle_l1_errors) > 0: + angle_l1_error = np.mean(angle_l1_errors) + angle_valid_samples = len(angle_l1_errors) + else: + angle_l1_error = float('nan') + angle_valid_samples = 0 + + # Dataset matching disabled - not needed + + # Create visualization plots if enabled + if visualize_matches and visualization_samples and len(visualization_samples) > 0: + try: + import matplotlib + matplotlib.use('Agg') # Non-interactive backend + import matplotlib.pyplot as plt + + if save_visualizations and vis_save_dir: + # Create epoch subfolder + epoch_dir = os.path.join(vis_save_dir, f"epoch_{epoch}") + os.makedirs(epoch_dir, exist_ok=True) + else: + epoch_dir = None + + for vis_idx, vis_data in enumerate(visualization_samples): + _plot_sample_with_matches( + vis_data['generated'], + vis_data['matching_indices'], + vis_data['gt'], + dataset_data, + use_discrete_angles=use_discrete_angles, + save_path=os.path.join(epoch_dir, f"sample_{vis_idx+1}.png") if save_visualizations and epoch_dir else None, + plt=plt, + cond=vis_data.get('cond'), + metadata=metadata, + normalize_method=normalization_method, + angle_categories=angle_categories + ) + except ImportError: + print("Warning: matplotlib not available, skipping visualizations") + except Exception as e: + print(f"Warning: Failed to create visualizations: {e}") + + return { + 'material_accuracy': material_accuracy, + 'vf_category_accuracy': vf_category_accuracy, + 'nlayers_accuracy': nlayers_accuracy, + 'nlayers_l1_error': nlayers_l1_error, + 'angle_l1_error': angle_l1_error, + 'angle_valid_samples': angle_valid_samples + } + + +def _denormalize_coefficients( + normalized_coeffs: np.ndarray, + metadata: Dict, + normalize_method: str = 'minmax' +) -> np.ndarray: + """ + Denormalize coefficients from normalized form back to original scale. + + Args: + normalized_coeffs: Normalized coefficients [5*degree] + metadata: Metadata dictionary with normalization stats + normalize_method: 'minmax' or 'zscore' + + Returns: + Denormalized coefficients [5*degree] + """ + coeffs = normalized_coeffs.copy() + + if normalize_method == 'minmax': + coeff_min = np.array(metadata.get('coefficient_min', [])) + coeff_max = np.array(metadata.get('coefficient_max', [])) + if len(coeff_min) > 0 and len(coeff_max) > 0: + range_vals = coeff_max - coeff_min + range_vals = np.where(range_vals == 0, 1.0, range_vals) + coeffs = coeffs * range_vals + coeff_min + elif normalize_method == 'zscore': + # For zscore, we must use mean and std from metadata + coeff_mean = np.array(metadata.get('coefficient_mean', [])) + coeff_std = np.array(metadata.get('coefficient_std', [])) + if len(coeff_mean) == 0 or len(coeff_std) == 0: + raise ValueError("Metadata must contain 'coefficient_mean' and 'coefficient_std' for zscore denormalization") + std_vals = np.where(coeff_std == 0, 1.0, coeff_std) + coeffs = coeffs * std_vals + coeff_mean + + + return coeffs + + +def _simulation_worker(args): + """ + Worker function for multiprocessing simulations. + + Args: + args: Tuple of (sample_idx, mat_type, vf_str, upper_angles, instance, curve_dir, data_gen_path) + + Returns: + Tuple of (sample_idx, instance, success, simulation_results or error_message) + """ + sample_idx, mat_type, vf_str, upper_angles, instance, curve_dir, data_gen_path = args + + try: + # Import generate_data_mp functions + sys.path.insert(0, str(data_gen_path)) + from generate_data_mp import run_simulation_with_mat, build_full_symmetric_stack + + # Import lam module functions + curve_dir_path = Path(curve_dir).resolve() + lam_path = curve_dir_path.parent.parent / "shahriar_modified_2025_12" + if not lam_path.exists(): + lam_path = data_gen_path / "shahriar_modified_2025_12" + if not lam_path.exists(): + lam_path = curve_dir_path.parent / "shahriar_modified_2025_12" + + if not lam_path.exists() or not (lam_path / "lam.py").exists(): + return (sample_idx, instance, False, f"Could not find lam.py at {lam_path}") + + sys.path.insert(0, str(lam_path)) + import importlib.util + spec = importlib.util.spec_from_file_location("lam", lam_path / "lam.py") + lam = importlib.util.module_from_spec(spec) + spec.loader.exec_module(lam) + + read_instance_metadata = lam.read_instance_metadata + load_ud_material_from_files = lam.load_ud_material_from_files + + prefix = f"{mat_type}_{vf_str}_{instance}" + + # Set CURVE_DIR + original_curve_dir = lam.CURVE_DIR + abs_curve_dir = curve_dir_path.resolve() + lam.CURVE_DIR = abs_curve_dir + + try: + vf_meta, centers_meta, n_fibers = read_instance_metadata(prefix) + mat = load_ud_material_from_files(prefix) + except Exception as e: + lam.CURVE_DIR = original_curve_dir + return (sample_idx, instance, False, f"Failed to load material: {e}") + + # Build full symmetric stack + sorted_upper_angles = sorted(upper_angles) + full_angles = build_full_symmetric_stack(sorted_upper_angles) + + # Run simulations for all three modes + simulation_results = {} + for mode in ("11", "22", "12"): + try: + result = run_simulation_with_mat(prefix, full_angles, mode, mat) + ex, sx, ey, gxy, ezz, g23, g13, e11 = result + + # Interpolate to output points + num_output_points = 10 + x_out = np.linspace(ex[0], ex[-1], num_output_points) + sx_out_MPa = np.interp(x_out, ex, sx/1e6) + + if mode == "11": + lateral_out = np.interp(x_out, ex, ey) + elif mode == "22": + lateral_out = np.interp(x_out, ex, e11) + else: + lateral_out = None + + simulation_results[mode] = { + 'strain': x_out, + 'stress': sx_out_MPa, + 'lateral': lateral_out + } + except Exception as e: + # Continue with other modes if one fails + continue + + lam.CURVE_DIR = original_curve_dir + + if simulation_results: + return (sample_idx, instance, True, simulation_results) + else: + return (sample_idx, instance, False, "All simulation modes failed") + + except Exception as e: + return (sample_idx, instance, False, f"Worker error: {e}") + + +@torch.no_grad() +def validate_with_on_the_fly_generation( + model: MaterialHybridDenoiser, + disc_diff_mat: DiscreteMaskDiffusion, + disc_diff_vf_category: DiscreteMaskDiffusion, + disc_diff_layer: DiscreteMaskDiffusion, + disc_diff_angle: DiscreteMaskDiffusion = None, + cont_diff: GaussianDiffusion = None, + test_loader: DataLoader = None, + mask_ids: Dict[str, int] = None, + device: str = None, + n_samples: int = 10, + use_discrete_angles: bool = True, + metadata: Dict = None, + angle_categories: Optional[np.ndarray] = None, + curve_dir: str = None, + instances: List[int] = None, # List of instances to simulate (default: [1, 2, 3]) + save_dir: Optional[str] = None, + epoch: int = None, + normalization_method: str = 'minmax', + num_processes: int = None # Number of processes for multiprocessing (None = auto) +): + """ + Validate model by generating samples and running simulations on-the-fly. + + This function: + 1. Generates design parameters from the model given conditioned inputs + 2. Runs simulations using generate_data_mp.py to get actual curves + 3. Plots generated curves against conditioned input coefficients + + Args: + model: MaterialHybridDenoiser model + disc_diff_mat: Discrete diffusion for material + disc_diff_vf_category: Discrete diffusion for volume fraction category + disc_diff_layer: Discrete diffusion for layer + disc_diff_angle: Discrete diffusion for angles (if discrete) + cont_diff: Gaussian diffusion for angles (if continuous) + test_loader: Test dataloader + mask_ids: Dictionary of mask IDs + device: Device to run on + n_samples: Number of samples to validate + use_discrete_angles: Whether using discrete angles + metadata: Metadata dictionary + angle_categories: Array of angle categories in degrees + curve_dir: Directory containing material curve files + instances: List of instance numbers to simulate (default: [1, 2, 3]) + save_dir: Directory to save plots + epoch: Current epoch number + normalization_method: Normalization method used + num_processes: Number of processes for multiprocessing (None = auto) + + Returns: + Dictionary with validation metrics + """ + if not DATA_GEN_AVAILABLE: + print("Warning: generate_data_mp.py not available, skipping on-the-fly validation") + return {} + + if curve_dir is None: + print("Warning: curve_dir not provided, skipping on-the-fly validation") + return {} + + if instances is None: + instances = [1, 2, 3] + + if num_processes is None: + num_processes = min(len(instances) * 2, mp.cpu_count()) + + model.eval() + + # Material type names + material_names = ['CPP', 'CHDPE', 'GPP', 'GHDPE'] + vf_categories = [0.0924, 0.2155, 0.3079, 0.4002, 0.4926] + + # Import generate_data_mp functions once + data_gen_path = Path(__file__).parent.parent / "data_generation" + sys.path.insert(0, str(data_gen_path)) + from generate_data_mp import format_vol_fraction + + # Get samples from test loader + validation_samples = [] + sample_count = 0 + + for batch in test_loader: + if sample_count >= n_samples: + break + + batch = {k: v.to(device) for k, v in batch.items()} + B = batch['material_t'].shape[0] + + for b in range(B): + if sample_count >= n_samples: + break + + # Extract conditioned input + cond = batch['cond'][b:b+1] # (1, n_conditions) + + # Actually generate sample from model using diffusion process + # Use globals() to explicitly reference the sample function to avoid naming conflict + # with variables like sample_info, sample_data, etc. + sample_func = globals()['sample'] + gen_sample_dict = sample_func( + model=model, + disc_diff_mat=disc_diff_mat, + disc_diff_vf_category=disc_diff_vf_category, + disc_diff_layer=disc_diff_layer, + disc_diff_angle=disc_diff_angle if use_discrete_angles else None, + cont_diff=cont_diff if not use_discrete_angles else None, + cond=cond, + mask_ids=mask_ids, + device=device, + remask_prob=0.1, + use_discrete_angles=use_discrete_angles + ) + + # Convert to the format expected by the rest of the code + gen_sample = { + 'material_t': gen_sample_dict['material_t'], + 'vf_category_t': gen_sample_dict['vf_category_t'], + 'layer_t': gen_sample_dict['layer_t'], + 'angle_t': gen_sample_dict['angle_t'] + } + + # Also get the input condition coefficients (from test data) + # The cond is already normalized, we need to denormalize it + cond_np = cond.cpu().numpy().flatten() + cond_denorm = _denormalize_coefficients(cond_np, metadata, normalization_method) + degree = metadata.get('polynomial_degree', 3) + input_cond_coeffs = cond_denorm.reshape(5, degree) + + # Extract input condition parameters (from ground truth/test data) + input_mat_type_idx = batch['material_t'][b].item() + input_vf_category_idx = batch['vf_category_t'][b].item() + input_vf = vf_categories[input_vf_category_idx] + input_layer_mask = batch['layer_t'][b].cpu().numpy() + input_angle_t = batch['angle_t'][b].cpu().numpy() + + # Get input angles + if use_discrete_angles: + if angle_categories is not None: + n_angle_categories = len(angle_categories) + dead_category = n_angle_categories + input_alive_mask = (input_angle_t != dead_category) + input_angle_cats = input_angle_t[input_alive_mask] + input_angles = angle_category_to_degrees(input_angle_cats, angle_categories).tolist() + else: + input_angles = [] + else: + input_alive_mask = input_layer_mask == 1 + input_angles_rad = input_angle_t[input_alive_mask, 0] if input_angle_t.ndim > 1 else input_angle_t[input_alive_mask] + input_angles = np.rad2deg(input_angles_rad).tolist() + + # Optional: global index into metadata['file_metadata'] (if provided by dataset) + global_idx = int(batch['global_idx'][b].item()) if 'global_idx' in batch else -1 + + validation_samples.append({ + 'generated': gen_sample, + 'cond': cond, + 'input_cond_coeffs': input_cond_coeffs, # Input condition coefficients from test data + 'degree': degree, + 'global_idx': global_idx, + 'input_cond_params': { # Input condition parameters + 'material': material_names[input_mat_type_idx], + 'vf': input_vf, + 'angles': sorted(input_angles) if input_angles else [] + }, + 'gt': { + 'material_t': batch['material_t'][b:b+1], + 'vf_category_t': batch['vf_category_t'][b:b+1], + 'layer_t': batch['layer_t'][b:b+1], + 'angle_t': batch['angle_t'][b:b+1] + } + }) + sample_count += 1 + + # Prepare simulation tasks (all samples × all instances) + curve_dir_path = Path(curve_dir).resolve() + if not curve_dir_path.exists(): + print(f"Warning: curve_dir does not exist: {curve_dir_path}") + return {} + + simulation_tasks = [] + sample_info = [] # Store sample metadata for later + + print(f" Preparing {len(validation_samples)} validation samples for {len(instances)} instances...") + for idx, sample_data in enumerate(validation_samples): + try: + gen = sample_data['generated'] + + # Extract generated parameters + mat_type_idx = gen['material_t'].item() + vf_category_idx = gen['vf_category_t'].item() + vf = vf_categories[vf_category_idx] + layer_mask = gen['layer_t'].cpu().numpy()[0] + angle_t = gen['angle_t'].cpu().numpy()[0] + + # Get angles + if use_discrete_angles: + if angle_categories is None: + continue + n_angle_categories = len(angle_categories) + dead_category = n_angle_categories + alive_mask = (angle_t != dead_category) + angle_cats = angle_t[alive_mask] + upper_angles = angle_category_to_degrees(angle_cats, angle_categories).tolist() + else: + # Continuous angles in radians + alive_mask = layer_mask == 1 + angles_rad = angle_t[alive_mask, 0] if angle_t.ndim > 1 else angle_t[alive_mask] + upper_angles = np.rad2deg(angles_rad).tolist() + + if len(upper_angles) == 0: + continue + + mat_type = material_names[mat_type_idx] + vf_str = format_vol_fraction(vf) + + # Store sample info + sample_info.append({ + 'idx': idx, + 'mat_type': mat_type, + 'vf': vf, + 'vf_str': vf_str, + 'angles': sorted(upper_angles), + 'input_cond_coeffs': sample_data['input_cond_coeffs'], + 'global_idx': sample_data.get('global_idx', -1), + 'input_cond_params': sample_data.get('input_cond_params', {}), # Input condition parameters + 'generated_cond_coeffs': None, # Will be computed later + 'degree': sample_data['degree'] + }) + + # Create tasks for all instances + for instance in instances: + simulation_tasks.append((idx, mat_type, vf_str, upper_angles, instance, str(curve_dir_path), str(data_gen_path))) + + except Exception as e: + continue + + # Run simulations with multiprocessing + print(f" Running {len(simulation_tasks)} simulations using {num_processes} processes...") + results_dict = {} # {(sample_idx, instance): simulation_results} + + if num_processes > 1: + with mp.Pool(processes=num_processes) as pool: + sim_results = list(tqdm( + pool.imap(_simulation_worker, simulation_tasks), + total=len(simulation_tasks), + desc=" Simulations" + )) + else: + # Single process (for debugging) + sim_results = list(tqdm( + map(_simulation_worker, simulation_tasks), + total=len(simulation_tasks), + desc=" Simulations" + )) + + # Organize results by sample and instance + for sample_idx, instance, success, result_data in sim_results: + if success: + results_dict[(sample_idx, instance)] = result_data + + # Combine results for plotting + results = [] + for sample in sample_info: + # Collect simulation results for all instances + instance_results = {} + for instance in instances: + key = (sample['idx'], instance) + if key in results_dict: + instance_results[instance] = results_dict[key] + + if instance_results: + # Also compute generated condition coefficients from the sample's cond + # (This would be from the model output, but for now we use the input) + # In a full implementation, you'd generate this from the model + results.append({ + 'sample_idx': sample['idx'], + 'material': sample['mat_type'], + 'vf': sample['vf'], + 'angles': sample['angles'], + 'simulations_by_instance': instance_results, # {instance: simulation_results} + 'input_cond_coeffs': sample['input_cond_coeffs'], # From test data + 'global_idx': sample.get('global_idx', -1), + 'input_cond_params': sample.get('input_cond_params', {}), # Input condition parameters + 'generated_cond_coeffs': sample['input_cond_coeffs'], # TODO: Replace with actual generated + 'degree': sample['degree'] + }) + + print(f" Successfully processed {len(results)} samples with simulations") + + # Plot results + if save_dir and len(results) > 0: + try: + import matplotlib + matplotlib.use('Agg') + import matplotlib.pyplot as plt + # Optional: plot original conditioned data points (from dataset files) as dots + try: + from utils.fitting_utils import parse_dataset # type: ignore + except Exception: + parse_dataset = None + + # Create epoch subfolder + if epoch is not None: + epoch_save_dir = os.path.join(save_dir, f"epoch_{epoch}") + else: + epoch_save_dir = save_dir + os.makedirs(epoch_save_dir, exist_ok=True) + + # Plot each sample (plot all results, no cap for local saving) + for result in results: + # Check if we have any instances + available_instances = [inst for inst in instances if inst in result['simulations_by_instance']] + if len(available_instances) == 0: + continue + + # Create figure: 2 rows (stress, lateral) × 3 columns (modes) + fig, axes = plt.subplots(2, 3, figsize=(15, 10)) + + # Build title with both input condition and generated parameters + input_params = result.get('input_cond_params', {}) + input_mat = input_params.get('material', 'N/A') + input_vf = input_params.get('vf', 0.0) + input_angles = input_params.get('angles', []) + input_angles_str = f"{input_angles}" if input_angles else "[]" + + gen_mat = result['material'] + gen_vf = result['vf'] + gen_angles = result['angles'] + gen_angles_str = f"{gen_angles}" if gen_angles else "[]" + + title = (f"Sample {result['sample_idx']}\n" + f"Input Cond: {input_mat}, VF={input_vf:.4f}, Angles={input_angles_str}\n" + f"Generated: {gen_mat}, VF={gen_vf:.4f}, Angles={gen_angles_str}") + + fig.suptitle(title, fontsize=11) + + # Get coefficients + input_cond_coeffs = result['input_cond_coeffs'] # [5, degree] + degree = result['degree'] + + # Map mode to coefficient row index + # Based on fit_all_relationships in fitting_utils.py: + # Row 0: eps_11 vs sig_11 (mode 11 stress) + # Row 1: eps_11 vs eps_22 (mode 11 lateral) + # Row 2: eps_22 vs sig_22 (mode 22 stress) + # Row 3: eps_22 vs eps_11 (mode 22 lateral) + # Row 4: eps_12 vs sig_12 (mode 12 stress) + mode_to_row = {"11": 0, "22": 2, "12": 4} + lateral_row = {"11": 1, "22": 3, "12": None} # Mode 12 has no lateral + + # Colors for different instances + instance_colors = ['b', 'c', 'm'] # Blue, Cyan, Magenta for instances 1, 2, 3 + + # Optionally load original dataset points for this conditioned sample (dots) + cond_points = {} + if parse_dataset is not None and isinstance(metadata, dict) and "file_metadata" in metadata: + try: + global_idx = int(result.get("global_idx", -1)) + if 0 <= global_idx < len(metadata["file_metadata"]): + file_meta = metadata["file_metadata"][global_idx] + filepath = file_meta.get("filepath") or file_meta.get("file_path") or file_meta.get("filename") + if filepath and os.path.exists(filepath): + parsed = parse_dataset(filepath) + if "section1" in parsed and len(parsed["section1"]) > 0: + cond_points["11_stress"] = (parsed["section1"][:, 0], parsed["section1"][:, 1]) + cond_points["11_lat"] = (parsed["section1"][:, 0], parsed["section1"][:, 2]) + if "section2" in parsed and len(parsed["section2"]) > 0: + cond_points["22_stress"] = (parsed["section2"][:, 0], parsed["section2"][:, 1]) + cond_points["22_lat"] = (parsed["section2"][:, 0], parsed["section2"][:, 2]) + if "section3" in parsed and len(parsed["section3"]) > 0: + cond_points["12_stress"] = (parsed["section3"][:, 0], parsed["section3"][:, 1]) + except Exception: + cond_points = {} + + def _poly_eval_no_intercept(coeffs_row: np.ndarray, x: np.ndarray) -> np.ndarray: + coeffs_with_zero = np.append(np.asarray(coeffs_row, dtype=np.float32), 0.0) + return np.polyval(coeffs_with_zero, x) + + def _fit_poly_no_intercept(x: np.ndarray, y: np.ndarray, deg: int) -> Optional[np.ndarray]: + x = np.asarray(x, dtype=np.float32).reshape(-1) + y = np.asarray(y, dtype=np.float32).reshape(-1) + if x.size < 2 or y.size < 2 or x.size != y.size: + return None + deg = int(max(1, deg)) + deg = int(min(deg, max(1, x.size - 1))) + A = np.vstack([x ** p for p in range(deg, 0, -1)]).T # no constant term + try: + coeffs, *_ = np.linalg.lstsq(A, y, rcond=None) + return coeffs.astype(np.float32) + except Exception: + return None + + # Color/legend order: match RO whole-parameters logic + cond_color = "k" + + # Plot for each mode + modes = ["11", "22", "12"] + for col, mode in enumerate(modes): + # Determine x-range for smooth curves: prefer simulation range, else data range + x_min = None + x_max = None + for instance in available_instances: + sim_results = result["simulations_by_instance"].get(instance, {}) + if mode in sim_results: + x_arr = sim_results[mode]["strain"] + x_min = float(np.min(x_arr)) + x_max = float(np.max(x_arr)) + break + if (x_min is None or x_max is None) and f"{mode}_stress" in cond_points: + x_min = float(np.min(cond_points[f"{mode}_stress"][0])) + x_max = float(np.max(cond_points[f"{mode}_stress"][0])) + x_fit = None + if x_min is not None and x_max is not None and x_max > x_min: + x_fit = np.linspace(x_min, x_max, 200, dtype=np.float32) + + # Condition curve + dots (no connecting dots) + try: + if x_fit is not None and mode in mode_to_row: + coeff_row = mode_to_row[mode] + y_fit = _poly_eval_no_intercept(input_cond_coeffs[coeff_row, :], x_fit) + axes[0, col].plot(x_fit, y_fit, color=cond_color, linewidth=2, label="Cond input") + if f"{mode}_stress" in cond_points: + x_d, y_d = cond_points[f"{mode}_stress"] + axes[0, col].scatter(x_d, y_d, color=cond_color, s=18, alpha=0.6, marker="x", label="_nolegend_") + except Exception: + pass + + if mode in ("11", "22"): + try: + if x_fit is not None and lateral_row.get(mode) is not None: + lat_row = lateral_row[mode] + y_lat = _poly_eval_no_intercept(input_cond_coeffs[lat_row, :], x_fit) + axes[1, col].plot(x_fit, y_lat, color=cond_color, linewidth=2, label="Cond input") + if f"{mode}_lat" in cond_points: + x_d, y_d = cond_points[f"{mode}_lat"] + axes[1, col].scatter(x_d, y_d, color=cond_color, s=18, alpha=0.6, marker="x", label="_nolegend_") + except Exception: + pass + else: + axes[1, col].axis("off") + + # Simulations: dots + fitted smooth curves (no connecting dots) + for instance_idx, instance in enumerate(available_instances): + sim_results = result["simulations_by_instance"].get(instance, {}) + if mode not in sim_results: + continue + sim_data = sim_results[mode] + strain = sim_data["strain"] + stress = sim_data["stress"] + color = instance_colors[instance_idx % len(instance_colors)] + + axes[0, col].plot([], [], color=color, linewidth=2, label=f"Sim inst{instance}") + axes[0, col].scatter(strain, stress, color=color, s=22, alpha=0.85, label="_nolegend_") + + if x_fit is not None and degree is not None: + sim_coeffs = _fit_poly_no_intercept(strain, stress, int(degree)) + if sim_coeffs is not None: + y_fit_sim = _poly_eval_no_intercept(sim_coeffs, x_fit) + axes[0, col].plot(x_fit, y_fit_sim, color=color, linewidth=2, alpha=0.9, label="_nolegend_") + + if mode in ("11", "22") and sim_data.get("lateral", None) is not None: + lateral = sim_data["lateral"] + axes[1, col].plot([], [], color=color, linewidth=2, label=f"Sim inst{instance}") + axes[1, col].scatter(strain, lateral, color=color, s=22, alpha=0.85, label="_nolegend_") + if x_fit is not None and degree is not None: + lat_coeffs = _fit_poly_no_intercept(strain, lateral, int(degree)) + if lat_coeffs is not None: + y_fit_sim = _poly_eval_no_intercept(lat_coeffs, x_fit) + axes[1, col].plot(x_fit, y_fit_sim, color=color, linewidth=2, alpha=0.9, label="_nolegend_") + + # Axis formatting + legend once per column + axes[0, col].set_xlabel("Strain") + axes[0, col].set_ylabel("Stress (MPa)") + axes[0, col].set_title(f"Mode {mode}") + axes[0, col].grid(True, alpha=0.3) + axes[0, col].legend(fontsize=8) + + if mode in ("11", "22"): + axes[1, col].set_xlabel("Strain") + axes[1, col].set_ylabel("Lateral Strain") + axes[1, col].set_title(f"Mode {mode} - Lateral") + axes[1, col].grid(True, alpha=0.3) + axes[1, col].legend(fontsize=8) + + plt.tight_layout() + save_path = os.path.join(epoch_save_dir, f"validation_sample_{result['sample_idx']}_epoch_{epoch}.png") + plt.savefig(save_path, dpi=150, bbox_inches='tight') + plt.close() + + print(f" Saved {len(results)} validation plots to {epoch_save_dir}") + + except ImportError: + print("Warning: matplotlib not available, skipping plots") + except Exception as e: + print(f"Warning: Failed to create plots: {e}") + + return { + 'n_samples_validated': len(results), + 'n_samples_total': len(validation_samples) + } + + +def _plot_sample_with_matches( + generated_sample: Dict[str, torch.Tensor], + matching_indices: List[int], + gt_sample: Dict[str, torch.Tensor], + dataset_data: Dict[str, np.ndarray], + use_discrete_angles: bool = True, + save_path: Optional[str] = None, + plt = None, + cond: Optional[torch.Tensor] = None, + metadata: Optional[Dict] = None, + normalize_method: str = 'minmax', + angle_categories: Optional[np.ndarray] = None +): + """ + Plot a generated sample with its dataset matches, including condition coefficients. + + Args: + generated_sample: Generated sample dictionary + matching_indices: List of matching dataset indices + gt_sample: Ground truth sample dictionary + dataset_data: Dataset data dictionary + use_discrete_angles: Whether using discrete angles + save_path: Path to save plot (optional) + plt: matplotlib.pyplot module (must be provided) + cond: Input condition tensor [1, 5*degree] used for generation (optional) + metadata: Metadata dictionary with normalization stats (optional) + normalize_method: Normalization method used ('minmax' or 'zscore') + """ + if plt is None: + try: + import matplotlib.pyplot as plt + except ImportError: + print("Warning: matplotlib not available, cannot create plot") + return + material_names = ['CPP', 'CHDPE', 'GPP', 'GHDPE'] + + # Extract generated values + gen_mat = generated_sample['material_t'].item() + gen_vf_category = generated_sample['vf_category_t'].item() + gen_vf = vf_category_to_volume_fraction(gen_vf_category) + gen_layer = generated_sample['layer_t'].cpu().numpy() + gen_angle = generated_sample['angle_t'].cpu().numpy() + + if use_discrete_angles: + if angle_categories is None: + raise ValueError("angle_categories must be provided for discrete angles") + n_angle_categories = len(angle_categories) + dead_category = n_angle_categories + gen_nlayers = (gen_angle != dead_category).sum() + gen_alive_mask = (gen_angle != dead_category) + gen_angles = angle_category_to_degrees(gen_angle[gen_alive_mask], angle_categories) + else: + gen_nlayers = gen_layer.sum() + gen_alive_mask = gen_layer == 1 + gen_angles = np.rad2deg(gen_angle[gen_alive_mask, 0]) if gen_angle.ndim > 1 else np.rad2deg(gen_angle[gen_alive_mask]) + + gen_angles_sorted = np.sort(gen_angles) + + # Extract GT values + gt_mat = gt_sample['material_t'].item() + gt_vf_category = gt_sample['vf_category_t'].item() + gt_vf = vf_category_to_volume_fraction(gt_vf_category) + gt_layer = gt_sample['layer_t'].cpu().numpy() + gt_angle = gt_sample['angle_t'].cpu().numpy() + + if use_discrete_angles: + if angle_categories is None: + raise ValueError("angle_categories must be provided for discrete angles") + gt_nlayers = (gt_angle != dead_category).sum() + gt_alive_mask = (gt_angle != dead_category) + gt_angles = angle_category_to_degrees(gt_angle[gt_alive_mask], angle_categories) + else: + gt_nlayers = gt_layer.sum() + gt_alive_mask = gt_layer == 1 + gt_angles = np.rad2deg(gt_angle[gt_alive_mask, 0]) if gt_angle.ndim > 1 else np.rad2deg(gt_angle[gt_alive_mask]) + + gt_angles_sorted = np.sort(gt_angles) + + # Extract condition coefficients if available + input_coeffs = None + degree = None + input_cond_length = None + training_degree = None + if cond is not None and metadata is not None: + try: + cond_np = cond.cpu().numpy().flatten() if isinstance(cond, torch.Tensor) else cond.flatten() + input_cond_length = len(cond_np) + training_degree = metadata.get('polynomial_degree', 3) + degree = training_degree # Use training degree for input + expected_length = 5 * degree + if len(cond_np) == expected_length: + input_coeffs_denorm = _denormalize_coefficients(cond_np, metadata, normalize_method) + # Reshape to [5, degree] for easier plotting + input_coeffs = input_coeffs_denorm.reshape(5, degree) + else: + print(f"Warning: Input condition length mismatch: got {len(cond_np)} coefficients, " + f"expected {expected_length} (5 relationships × degree {degree})") + except Exception as e: + print(f"Warning: Could not extract input coefficients: {e}") + input_coeffs = None + # Initialize match lists (always initialize to avoid reference errors) + match_coeffs_list = [] + match_data_points_list = [] + + if len(matching_indices) > 0: + try: + # Always use training degree for fitting (from metadata) + fit_degree = training_degree if training_degree is not None else (degree if degree is not None else 3) + + if degree is None: + degree = fit_degree + + # Import polynomial fitting function + from utils.fitting_utils import parse_dataset, polynomial_fit + + # Try common dataset root paths + potential_roots = [ + "datasets/Laminate Datasets", + "/home/feiyang/Desktop/MaterialGeneration/MaterialGeneration/demo/datasets/Laminate Datasets" + ] + dataset_root_path = None + for root in potential_roots: + if os.path.exists(root): + dataset_root_path = root + break + + if dataset_root_path is None: + # Silently skip loading original data files - not needed for testing + pass + + material_names = ['CPP', 'CHDPE', 'GPP', 'GHDPE'] + + for match_idx in matching_indices[:3]: # Up to 3 matches + try: + # Extract metadata to reconstruct file path + material_type = int(dataset_data['material_type'][match_idx]) + volume_fraction = float(dataset_data['volume_fraction'][match_idx]) + n_fibers = int(dataset_data['number_of_fibers'][match_idx]) + n_layers = int(dataset_data['stacking_sequence_lengths'][match_idx]) + stacking_seq = dataset_data['stacking_sequence'][match_idx][:n_layers] + + material_name = material_names[material_type] if material_type < len(material_names) else f'MAT{material_type}' + + # Reconstruct file path: MATERIAL_VF_INSTANCE_ANGLES.txt + # Format: ___.txt + # INSTANCE is 1-5 (microstructure realization), not n_fibers + # STACK is only the upper half (positive angles) + + # Extract upper half of stacking sequence (positive angles, or first half if symmetric) + # For symmetric laminates, upper half is typically the first n_layers/2 layers + # But we need to handle the actual format which may vary + # Try to get positive angles or first half + upper_half_angles = [] + for angle in stacking_seq: + angle_rounded = int(round(angle)) + # Only include non-negative angles (upper half) + if angle_rounded >= 0: + upper_half_angles.append(angle_rounded) + + # If no positive angles found, use first half of sequence + if len(upper_half_angles) == 0: + n_upper = (n_layers + 1) // 2 # Upper half + upper_half_angles = [int(round(a)) for a in stacking_seq[:n_upper]] + + angle_str = '_'.join([f"{a}" for a in upper_half_angles]) + + data_points = None + fitted_coeffs = None + + # Try to load original data file + # Since we don't know the INSTANCE (1-5), try all instances + if dataset_root_path: + material_dir = os.path.join(dataset_root_path, material_name) + + # Try each instance (1-5) + for instance in range(1, 6): + filename = f"{material_name}_{volume_fraction:.4f}_{instance}_{angle_str}.txt" + filepath = os.path.join(material_dir, filename) + + if os.path.exists(filepath): + try: + # Parse original data + parsed_data = parse_dataset(filepath) + + # Verify n_fibers matches by reading metadata + from utils.preprocessing import parse_metadata + file_metadata = parse_metadata(filepath) + if file_metadata.get('number_of_fibers') == n_fibers: + # Fit all 5 relationships with training degree + fitted_coeffs_list = [] + for rel_idx in range(5): + if rel_idx == 0 and 'section1' in parsed_data and len(parsed_data['section1']) > 0: + x = parsed_data['section1'][:, 0] # eps_11 + y = parsed_data['section1'][:, 1] # sig_11 + elif rel_idx == 1 and 'section1' in parsed_data and len(parsed_data['section1']) > 0: + x = parsed_data['section1'][:, 0] # eps_11 + y = parsed_data['section1'][:, 2] # eps_22 + elif rel_idx == 2 and 'section2' in parsed_data and len(parsed_data['section2']) > 0: + x = parsed_data['section2'][:, 0] # eps_22 + y = parsed_data['section2'][:, 1] # sig_22 + elif rel_idx == 3 and 'section2' in parsed_data and len(parsed_data['section2']) > 0: + x = parsed_data['section2'][:, 0] # eps_22 + y = parsed_data['section2'][:, 2] # eps_11 + elif rel_idx == 4 and 'section3' in parsed_data and len(parsed_data['section3']) > 0: + x = parsed_data['section3'][:, 0] # eps_12 + y = parsed_data['section3'][:, 1] # sig_12 + else: + # Missing data, use zeros + fitted_coeffs_list.append(np.zeros(fit_degree)) + continue + + # Fit polynomial with training degree + coeffs, _, _, _ = polynomial_fit(x, y, degree=fit_degree) + fitted_coeffs_list.append(coeffs) + + fitted_coeffs = np.array(fitted_coeffs_list) # [5, fit_degree] + data_points = parsed_data + break # Found matching file, exit instance loop + + except Exception as e: + # Try next instance + continue + + # If still not found after trying all instances, try searching by matching metadata + if fitted_coeffs is None: + # File not found, try searching by matching metadata + if os.path.exists(material_dir): + for filename_candidate in os.listdir(material_dir): + if filename_candidate.endswith('.txt') and material_name in filename_candidate: + # Check if volume fraction and n_fibers match + parts = filename_candidate.replace('.txt', '').split('_') + if len(parts) >= 3: + try: + vf_candidate = float(parts[1]) + if abs(vf_candidate - volume_fraction) < 1e-4: + # Check if angles match (compare upper half) + candidate_angles_str = '_'.join(parts[3:]) # Everything after instance + if candidate_angles_str == angle_str: + filepath = os.path.join(material_dir, filename_candidate) + try: + # Verify n_fibers matches by reading metadata + from utils.preprocessing import parse_metadata + file_metadata = parse_metadata(filepath) + if file_metadata.get('number_of_fibers') == n_fibers: + parsed_data = parse_dataset(filepath) + # Fit polynomials + fitted_coeffs_list = [] + for rel_idx in range(5): + if rel_idx == 0 and 'section1' in parsed_data and len(parsed_data['section1']) > 0: + x = parsed_data['section1'][:, 0] + y = parsed_data['section1'][:, 1] + elif rel_idx == 1 and 'section1' in parsed_data and len(parsed_data['section1']) > 0: + x = parsed_data['section1'][:, 0] + y = parsed_data['section1'][:, 2] + elif rel_idx == 2 and 'section2' in parsed_data and len(parsed_data['section2']) > 0: + x = parsed_data['section2'][:, 0] + y = parsed_data['section2'][:, 1] + elif rel_idx == 3 and 'section2' in parsed_data and len(parsed_data['section2']) > 0: + x = parsed_data['section2'][:, 0] + y = parsed_data['section2'][:, 2] + elif rel_idx == 4 and 'section3' in parsed_data and len(parsed_data['section3']) > 0: + x = parsed_data['section3'][:, 0] + y = parsed_data['section3'][:, 1] + else: + fitted_coeffs_list.append(np.zeros(fit_degree)) + continue + + coeffs, _, _, _ = polynomial_fit(x, y, degree=fit_degree) + fitted_coeffs_list.append(coeffs) + + fitted_coeffs = np.array(fitted_coeffs_list) + data_points = parsed_data + break + except Exception: + continue + except (ValueError, IndexError): + continue + + if fitted_coeffs is not None: + match_coeffs_list.append(fitted_coeffs) + match_data_points_list.append(data_points) + else: + # Silently skip if data file not found - not needed for testing + match_coeffs_list.append(None) + match_data_points_list.append(None) + + except Exception as e: + print(f"Warning: Error processing match #{match_idx}: {e}") + import traceback + traceback.print_exc() + match_coeffs_list.append(None) + match_data_points_list.append(None) + + # Filter out None values + match_coeffs_list = [mc for mc in match_coeffs_list if mc is not None] + match_data_points_list = [dp for dp in match_data_points_list if dp is not None] + + except Exception as e: + print(f"Warning: Could not extract match coefficients: {e}") + import traceback + traceback.print_exc() + match_coeffs_list = [] + match_data_points_list = [] + + # Create figure: 2 rows (angles, polynomial curves) - removed comparison row + n_matches = min(len(matching_indices), 3) # Show up to 3 matches + n_cols = max(n_matches + 2, 5) # At least 5 columns for polynomial plots + fig, axes = plt.subplots(2, n_cols, figsize=(4 * n_cols, 8)) + if n_matches == 0: + axes = axes.reshape(2, 5) + + # Top row: GT, Generated, Matches + # Angle categories for x-axis: 0, 15, 30, 45, 60, 75, 90 + angle_categories = [0, 15, 30, 45, 60, 75, 90] + max_layers_display = 6 # Fixed to max 6 layers for y-axis + + # GT + ax = axes[0, 0] + if len(gt_angles_sorted) > 0: + # Limit to max 6 layers for display + display_angles = gt_angles_sorted[:max_layers_display] + display_indices = list(range(len(display_angles))) + ax.barh(display_indices, display_angles, color='green', alpha=0.7) + ax.set_xlabel('Angle (degrees)') + ax.set_ylabel('Layer Index') + ax.set_title(f'Ground Truth\n{material_names[gt_mat]}, VF: {gt_vf:.4f}, Layers: {gt_nlayers}') + ax.set_xlim(-5, 90) # Start from negative to see 0 degree + ax.set_xticks(angle_categories) + ax.set_ylim(-0.5, max_layers_display - 0.5) + ax.set_yticks(range(max_layers_display)) + ax.grid(True, alpha=0.3) + + # Generated + ax = axes[0, 1] + if len(gen_angles_sorted) > 0: + # Limit to max 6 layers for display + display_angles = gen_angles_sorted[:max_layers_display] + display_indices = list(range(len(display_angles))) + ax.barh(display_indices, display_angles, color='blue', alpha=0.7) + ax.set_xlabel('Angle (degrees)') + ax.set_ylabel('Layer Index') + ax.set_title(f'Generated\n{material_names[gen_mat]}, VF: {gen_vf:.4f}, Layers: {gen_nlayers}') + ax.set_xlim(-5, 90) # Start from negative to see 0 degree + ax.set_xticks(angle_categories) + ax.set_ylim(-0.5, max_layers_display - 0.5) + ax.set_yticks(range(max_layers_display)) + ax.grid(True, alpha=0.3) + + # Dataset matches + for i, match_idx in enumerate(matching_indices[:n_matches]): + ax = axes[0, i + 2] + dataset_angles = dataset_data['stacking_sequence'][match_idx][:dataset_data['stacking_sequence_lengths'][match_idx]] + dataset_angles_sorted = np.sort(dataset_angles) + + if len(dataset_angles_sorted) > 0: + # Limit to max 6 layers for display + display_angles = dataset_angles_sorted[:max_layers_display] + display_indices = list(range(len(display_angles))) + ax.barh(display_indices, display_angles, color='orange', alpha=0.7) + ax.set_xlabel('Angle (degrees)') + ax.set_ylabel('Layer Index') + ax.set_title(f'Match #{i+1}\n{material_names[dataset_data["material_type"][match_idx]]}, ' + f'Fibers: {dataset_data["number_of_fibers"][match_idx]}, ' + f'Layers: {dataset_data["stacking_sequence_lengths"][match_idx]}') + ax.set_xlim(-5, 90) # Start from negative to see 0 degree + ax.set_xticks(angle_categories) + ax.set_ylim(-0.5, max_layers_display - 0.5) + ax.set_yticks(range(max_layers_display)) + ax.grid(True, alpha=0.3) + + # Hide unused subplots in row 0 + for i in range(n_matches + 2, axes.shape[1]): + axes[0, i].axis('off') + + # Row 1: Polynomial curves comparison (one subplot per relationship) + if input_coeffs is not None and len(match_coeffs_list) > 0 and degree is not None: + # Helper function to create polynomial from coefficients + def create_poly_func(coeffs_row): + """Create poly1d function from coefficients (highest degree first, no constant term)""" + # Append 0 for constant term (polynomial passes through origin) + coeffs_with_zero = np.append(coeffs_row, 0) + return np.poly1d(coeffs_with_zero) + + # Generate x values for plotting (based on actual data ranges: 0 to 0.1 for all relationships) + # All strain values (eps_11, eps_22, eps_12) range from 0 to 0.1 based on dataset + x_ranges = [ + np.linspace(0, 0.1, 100), # eps_11 → sig_11 + np.linspace(0, 0.1, 100), # eps_11 → eps_22 + np.linspace(0, 0.1, 100), # eps_22 → sig_22 + np.linspace(0, 0.1, 100), # eps_22 → eps_11 + np.linspace(0, 0.1, 100) # eps_12 → sig_12 + ] + + relationship_names = ['eps_11→sig_11', 'eps_11→eps_22', 'eps_22→sig_22', 'eps_22→eps_11', 'eps_12→sig_12'] + relationship_labels = [ + ('eps_11', 'sig_11'), + ('eps_11', 'eps_22'), + ('eps_22', 'sig_22'), + ('eps_22', 'eps_11'), + ('eps_12', 'sig_12') + ] + + # Plot each relationship in a separate subplot in row 2 + n_relationships = 5 + n_plots_to_show = min(n_relationships, n_cols) + + for rel_idx in range(n_plots_to_show): + if rel_idx < n_cols: + ax = axes[1, rel_idx] # Changed from axes[2, ...] to axes[1, ...] since we removed row 1 + + # Plot input polynomial + poly_func_input = create_poly_func(input_coeffs[rel_idx]) + x_vals = x_ranges[rel_idx] + y_vals_input = poly_func_input(x_vals) + ax.plot(x_vals, y_vals_input, 'b-', label='Input', linewidth=2, alpha=0.8) + + # Plot match polynomials and data points + for i in range(len(match_coeffs_list)): + match_coeffs = match_coeffs_list[i] + data_points = match_data_points_list[i] if i < len(match_data_points_list) else None + + if match_coeffs is not None: + poly_func_match = create_poly_func(match_coeffs[rel_idx]) + y_vals_match = poly_func_match(x_vals) + ax.plot(x_vals, y_vals_match, '--', label=f'Match #{i+1} Fit', linewidth=1.5, alpha=0.7) + + # Plot original data points if available + if data_points is not None: + try: + if rel_idx == 0 and 'section1' in data_points: + x_data = data_points['section1'][:, 0] # eps_11 + y_data = data_points['section1'][:, 1] # sig_11 + elif rel_idx == 1 and 'section1' in data_points: + x_data = data_points['section1'][:, 0] # eps_11 + y_data = data_points['section1'][:, 2] # eps_22 + elif rel_idx == 2 and 'section2' in data_points: + x_data = data_points['section2'][:, 0] # eps_22 + y_data = data_points['section2'][:, 1] # sig_22 + elif rel_idx == 3 and 'section2' in data_points: + x_data = data_points['section2'][:, 0] # eps_22 + y_data = data_points['section2'][:, 2] # eps_11 + elif rel_idx == 4 and 'section3' in data_points: + x_data = data_points['section3'][:, 0] # eps_12 + y_data = data_points['section3'][:, 1] # sig_12 + else: + x_data = None + y_data = None + + if x_data is not None and len(x_data) > 0: + # Only add label for first relationship to avoid clutter + label = f'Match #{i+1} Data' if rel_idx == 0 else '' + ax.scatter(x_data, y_data, s=30, alpha=0.6, + label=label, + marker='o', edgecolors='black', linewidths=0.5, zorder=5) + except Exception: + pass # Skip if can't plot data points + + # Plot average of matches + if len(match_coeffs_list) > 0: + avg_match_coeffs = np.mean(match_coeffs_list, axis=0) + poly_func_avg = create_poly_func(avg_match_coeffs[rel_idx]) + y_vals_avg = poly_func_avg(x_vals) + ax.plot(x_vals, y_vals_avg, 'r:', label='Avg Match', linewidth=2, alpha=0.8) + + ax.set_xlabel(relationship_labels[rel_idx][0]) + ax.set_ylabel(relationship_labels[rel_idx][1]) + ax.set_title(relationship_names[rel_idx]) + ax.legend(fontsize=7, loc='best') + ax.grid(True, alpha=0.3) + + # Hide unused subplots in row 1 + for i in range(n_plots_to_show, n_cols): + axes[1, i].axis('off') + else: + # Hide all subplots in row 1 if no coefficient data + for i in range(n_cols): + axes[1, i].axis('off') + + plt.tight_layout() + + if save_path: + plt.savefig(save_path, dpi=150, bbox_inches='tight') + plt.close() + else: + plt.close() + + +@torch.no_grad() +def compute_metrics( + model: MaterialHybridDenoiser, + batch: Dict[str, torch.Tensor], + mask_ids: Dict[str, int], + device: str, +) -> Dict[str, float]: + """ + Compute human-readable metrics from model predictions. + + Args: + model: MaterialHybridDenoiser model + batch: Batch dictionary with ground truth + mask_ids: Dictionary of mask IDs + device: Device to run on + + Returns: + Dictionary with metrics: + - material_accuracy: Classification accuracy for material + - nfiber_accuracy: Exact match accuracy for number of fibers + - nlayers_accuracy: Exact match accuracy for number of layers + - angle_l1_error: Average L1 error for angles (only when layer counts match) + - angle_valid_samples: Number of samples with matching layer counts + """ + model.eval() + + # Extract ground truth + gt_material = batch['material_t'] # (B,) + gt_vf_category = batch['vf_category_t'] # (B,) + gt_layer = batch['layer_t'] # (B, L) + gt_angle = batch['angle_t'] # (B, L) discrete category indices + cond = batch['cond'] # (B, n_conditions) + + B, L = gt_layer.shape + + # Run model at t=0 (no corruption) to get predictions + t = torch.zeros(B, dtype=torch.long, device=device) + + # Use ground truth as input (no corruption for metrics) + x_material = gt_material + x_vf_category = gt_vf_category + x_layer = gt_layer + x_angle = gt_angle + + # Get model predictions + outputs = model(x_material, x_vf_category, x_layer, x_angle, cond, t) + + # Material: argmax of logits + pred_material = torch.argmax(outputs['material_logits'], dim=-1) # (B,) + material_correct = (pred_material == gt_material).float() + material_accuracy = material_correct.mean().item() + + # VF Category: argmax of logits + pred_vf_category = torch.argmax(outputs['vf_category_logits'], dim=-1) # (B,) in [0, 4] + vf_category_correct = (pred_vf_category == gt_vf_category).float() + vf_category_accuracy = vf_category_correct.mean().item() + + # Layer and angles: depends on discrete vs continuous + use_discrete = 'angle_logits' in outputs + + if use_discrete: + # Discrete: combined angle+layer logits + pred_angle_cats = torch.argmax(outputs['angle_logits'], dim=-1) # (B, L) category indices + # n_angle_categories should be passed as parameter or extracted from model + # For now, we'll skip angle L1 computation in this function since it needs angle_categories + # This function is mainly for quick validation, detailed metrics are in compute_generation_metrics + n_angle_categories = None # Will be determined from angle_categories if provided + dead_category = None # Will be set if n_angle_categories is available + # Count alive layers: where angle != dead_category + pred_nlayers = (pred_angle_cats != dead_category).sum(dim=1) # (B,) + gt_nlayers = (gt_angle != dead_category).sum(dim=1) # (B,) + pred_layer_logits = None # Not used in discrete mode + pred_angle = None # Not used in discrete mode + else: + # Continuous: separate layer and angle + pred_layer_logits = torch.argmax(outputs['layer_logits'], dim=-1) # (B, L) in {0, 1} + pred_nlayers = pred_layer_logits.sum(dim=1) # (B,) - count of alive layers + pred_angle = outputs['angle'] # (B, L, 1) in radians + gt_nlayers = gt_layer.sum(dim=1) # (B,) - count of alive layers + + nlayers_correct = (pred_nlayers == gt_nlayers).float() + nlayers_accuracy = nlayers_correct.mean().item() + + # Angles: only compute when layer counts match + + # For each sample, if layer counts match, sort and compute L1 + angle_l1_errors = [] + for b in range(B): + if pred_nlayers[b] == gt_nlayers[b]: + if use_discrete: + # Extract alive angle category indices (where angle != dead_category) + pred_alive_mask = (pred_angle_cats[b] != dead_category) # (L,) + gt_alive_mask = (gt_angle[b] != dead_category) # (L,) + + pred_angle_cats_alive = pred_angle_cats[b, pred_alive_mask].cpu().numpy() # (n_layers,) + gt_angle_cats_alive = gt_angle[b, gt_alive_mask].cpu().numpy() # (n_layers,) + + if len(pred_angle_cats_alive) > 0 and len(gt_angle_cats_alive) > 0 and len(pred_angle_cats_alive) == len(gt_angle_cats_alive): + # Skip angle L1 computation in this function - it's done in compute_generation_metrics + # which has access to angle_categories + pass + else: + # Continuous angles + pred_alive_mask = pred_layer_logits[b] == 1 # (L,) + gt_alive_mask = gt_layer[b] == 1 # (L,) + + pred_alive = pred_angle[b, pred_alive_mask, 0] # (n_layers,) + gt_alive = gt_angle[b, gt_alive_mask, 0] # (n_layers,) + + if len(pred_alive) > 0 and len(gt_alive) > 0 and len(pred_alive) == len(gt_alive): + # Convert to degrees + pred_angle_deg = pred_alive * 180.0 / math.pi + gt_angle_deg = gt_alive * 180.0 / math.pi + + # Compute L1 error position-wise (positions are now meaningful) + l1_error = torch.abs(pred_angle_deg - gt_angle_deg).mean().item() + angle_l1_errors.append(l1_error) + + if len(angle_l1_errors) > 0: + angle_l1_error = sum(angle_l1_errors) / len(angle_l1_errors) + angle_valid_samples = len(angle_l1_errors) + else: + angle_l1_error = float('nan') + angle_valid_samples = 0 + + return { + 'material_accuracy': material_accuracy, + 'vf_category_accuracy': vf_category_accuracy, + 'nlayers_accuracy': nlayers_accuracy, + 'angle_l1_error': angle_l1_error, + 'angle_valid_samples': angle_valid_samples + } + + +# ----------------------- +# Main Training Loop +# ----------------------- + +def train( + data_dir: str = "processed_data", + output_dir: str = "checkpoints", + batch_size: int = 32, + num_epochs: int = 100, + learning_rate: float = 3e-4, + T: int = 1000, + n_max_layer: int = 24, + beta_start: float = 1e-4, + beta_end: float = 0.02, + lambda_angle: float = 1.0, + lambda_material: float = 1.0, + lambda_vf_category: float = 1.0, + lambda_layer: float = 1.0, + save_every: int = 10, + normalization_method: str = 'minmax', + random_seed: int = 42, + device: str = None, + gen_eval_n_samples: Optional[int] = None, # None = use all test samples + gen_eval_every: int = 1, + use_discrete_angles: bool = True, + visualize_matches: bool = False, + save_visualizations: bool = False, + n_visualization_samples: int = 10, # Number of samples to generate visualizations for + use_wandb: bool = False, + wandb_project: str = "material-generation", + wandb_name: Optional[str] = None, + warmup_ratio: float = 0.01, # Warmup ratio (fraction of total steps, default: 0.01 = 1%) + log_every_n_steps: int = 100, # Log training metrics every N steps (default: 100) + angle_resolution: float = 1.0, # Resolution in degrees for angle discretization (default: 1.0) + curve_dir: Optional[str] = None, # Directory containing RVE_Datasets for on-the-fly validation + demo_steps_per_epoch: Optional[int] = None, # Demo mode: limit steps per epoch (default: None = all steps) + num_processes: Optional[int] = None, # Number of processes for multiprocessing during validation (default: None = auto-detect) + n_validation_samples: int = 100, # Number of samples to generate and simulate during validation (default: 100) +): + """ + Main training function. + + Args: + data_dir: Directory with processed data + output_dir: Directory to save checkpoints + batch_size: Batch size + num_epochs: Number of training epochs + learning_rate: Learning rate + T: Number of diffusion timesteps + n_max_layer: Maximum number of layers + beta_start: Starting beta for noise schedule + beta_end: Ending beta for noise schedule + lambda_angle: Weight for angle loss + lambda_material: Weight for material loss + lambda_vf_category: Weight for volume fraction category loss + lambda_layer: Weight for layer loss + save_every: Save checkpoint every N epochs + normalization_method: Normalization method ('minmax' or 'zscore'), default 'minmax' + random_seed: Random seed for reproducibility (default: 42) + device: GPU device string (e.g., 'cuda:0', 'cuda:1') + gen_eval_n_samples: Number of samples to generate for generation metrics evaluation (None = use all test samples, default: None) + gen_eval_every: Evaluate generation metrics every N epochs (default: 1 = every epoch) + use_discrete_angles: If True, use discrete angle categories (0, 15, 30, 45, 60, 75, 90 degrees); + If False, use continuous angles with Gaussian diffusion + visualize_matches: Whether to visualize matches with dataset samples during evaluation + save_visualizations: Whether to save visualization plots to disk + n_visualization_samples: Number of samples to generate visualizations for + warmup_ratio: Warmup ratio (fraction of total training steps, default: 0.01 = 1%) + angle_resolution: Resolution in degrees for angle discretization (default: 1.0) + curve_dir: Directory containing RVE_Datasets for on-the-fly validation (default: None, will try to auto-detect) + demo_steps_per_epoch: Demo mode: limit training to N steps per epoch (default: None = use all steps) + num_processes: Number of processes for multiprocessing during validation (default: None = auto-detect) + n_validation_samples: Number of samples to generate and simulate during validation (default: 100) + """ + # Set random seeds for reproducibility + random.seed(random_seed) + np.random.seed(random_seed) + torch.manual_seed(random_seed) + torch.cuda.manual_seed(random_seed) + torch.cuda.manual_seed_all(random_seed) + # Make CUDA operations deterministic (may reduce performance) + torch.backends.cudnn.deterministic = True + torch.backends.cudnn.benchmark = False + + # Device is already set to cuda:{gpu_index} from command line args + # Print device information + gpu_idx = int(device.split(":")[1]) + print("="*80) + print(f"Device: {device}") + print(f"GPU {gpu_idx}: {torch.cuda.get_device_name(gpu_idx)}") + print("="*80) + if use_discrete_angles: + print("DISCRETE DIFFUSION TRAINING (All variables discrete)") + else: + print("HYBRID DIFFUSION TRAINING (Discrete + Continuous angles)") + print("="*80) + print(f"Random seed: {random_seed}") + print(f"Angle diffusion: {'Discrete (categories)' if use_discrete_angles else 'Continuous (Gaussian)'}") + + # Load metadata and dataset data for matching + print("\nLoading metadata...") + metadata = load_metadata(data_dir) + degree = metadata['polynomial_degree'] + n_coeffs = 5 * degree + + # Load dataset data for matching (use train data for searching) + print("Loading dataset data for matching...") + from load_processed_data import load_processed_data + dataset_data_for_matching = load_processed_data(data_dir, 'train') + + print(f" Polynomial degree: {degree}") + print(f" Number of coefficients: {n_coeffs}") + print(f" Max layers in data: {metadata['max_layers']}") + print(f" Max fibers in data: {metadata['fibers_max']}") + print(f" Using n_max_layer: {n_max_layer}") + + # Create model config + cfg = ModelConfig( + n_conditions=n_coeffs, + n_materials=4, # CPP, CHDPE, GPP, GHDPE + n_vf_categories=5, # 5 volume fraction categories + n_max_layer=n_max_layer, + d_model=256, + n_heads=4, + n_layers=6, + dropout=0.0 + ) + + # Define mask IDs + mask_ids = { + "material": cfg.n_materials, + "vf_category": cfg.n_vf_categories, # 5 categories (0-4), mask is 5 + "layer": 2, + } + + # Note: n_angle_categories will be determined from dataset after dataloader creation + # We'll update mask_ids after creating the dataloaders + n_angle_categories_temp = None # Temporary, will be set after dataloader creation + + print(f"\nModel Configuration:") + print(f" n_conditions: {cfg.n_conditions}") + print(f" n_materials: {cfg.n_materials}") + print(f" n_vf_categories: {cfg.n_vf_categories}") + print(f" n_max_layer: {cfg.n_max_layer}") + print(f" d_model: {cfg.d_model}") + + # Create model (n_angle_categories will be set after dataloader creation) + # We'll create it after dataloaders are created + print("\nModel will be created after dataloaders to get correct n_angle_categories...") + + # Create diffusion processes + print(f"\nCreating diffusion processes (T={T})...") + betas = linear_beta_schedule(T, beta_start, beta_end, device) + + disc_diff_mat = DiscreteMaskDiffusion( + vocab_size=cfg.n_materials, + mask_id=mask_ids['material'], + T=T, + betas=betas + ) + + disc_diff_vf_category = DiscreteMaskDiffusion( + vocab_size=cfg.n_vf_categories, # 5 volume fraction categories + mask_id=mask_ids['vf_category'], + T=T, + betas=betas + ) + + disc_diff_layer = DiscreteMaskDiffusion( + vocab_size=2, # 0=dead, 1=alive + mask_id=mask_ids['layer'], + T=T, + betas=betas + ) + + # Create angle diffusion based on mode + disc_diff_angle = None + cont_diff = None + # Create dataloaders first to get n_angle_categories + print("\nCreating dataloaders...") + train_loader = create_dataloader( + data_dir=data_dir, + split='train', + batch_size=batch_size, + shuffle=True, + n_max_layer=n_max_layer, + normalize_coefficients=True, + normalize_method=normalization_method, + use_discrete_angles=use_discrete_angles, + angle_resolution=angle_resolution + ) + + test_loader = create_dataloader( + data_dir=data_dir, + split='test', + batch_size=batch_size, + shuffle=False, + n_max_layer=n_max_layer, + normalize_coefficients=True, + normalize_method=normalization_method, + use_discrete_angles=use_discrete_angles, + angle_resolution=angle_resolution + ) + + # Get angle categories from dataset and update mask_ids + if use_discrete_angles: + angle_categories = train_loader.dataset.angle_categories + n_angle_categories = train_loader.dataset.n_angle_categories + # Categories: 0 to n_angle_categories-1 (angle categories), n_angle_categories (dead layer), n_angle_categories+1 (mask) + mask_ids["angle"] = n_angle_categories + 1 # Mask ID for angles + print(f" Angle categories: {n_angle_categories} categories from {train_loader.dataset.angle_min}° to {train_loader.dataset.angle_max}° (resolution: {angle_resolution}°)") + print(f" Updated angle mask_id: {mask_ids['angle']} (n_angle_categories={n_angle_categories})") + else: + angle_categories = None + n_angle_categories = None + + print(f" Train batches: {len(train_loader)}") + print(f" Test batches: {len(test_loader)}") + + # Create angle diffusion process now that we have n_angle_categories + if use_discrete_angles: + # Vocab size: n_angle_categories+1 categories (0 to n_angle_categories-1: angles, n_angle_categories: dead layer) + # Mask ID: n_angle_categories+1 (separate from vocab) + disc_diff_angle = DiscreteMaskDiffusion( + vocab_size=n_angle_categories + 1, + mask_id=mask_ids['angle'], + T=T, + betas=betas + ) + else: + cont_diff = GaussianDiffusion(T=T, betas=betas) + disc_diff_angle = None + + # Create model now that we have n_angle_categories + print("\nCreating model...") + model = MaterialHybridDenoiser(cfg, mask_ids, use_discrete_angles=use_discrete_angles, n_angle_categories=n_angle_categories).to(device) + print(f" Model parameters: {sum(p.numel() for p in model.parameters()):,}") + if use_discrete_angles: + print(f" Using discrete angles: {n_angle_categories} categories from {train_loader.dataset.angle_min}° to {train_loader.dataset.angle_max}° (resolution: {angle_resolution}°)") + else: + print(f" Using continuous angles: Gaussian diffusion") + + # Calculate total training steps for step-based scheduling + total_steps = num_epochs * len(train_loader) + # Calculate warmup steps based on ratio + warmup_steps = int(total_steps * warmup_ratio) + print(f" Total training steps: {total_steps}") + print(f" Warmup steps: {warmup_steps} ({warmup_steps/total_steps*100:.2f}% of total, ratio={warmup_ratio})") + + # Create optimizer + optimizer = torch.optim.AdamW(model.parameters(), lr=learning_rate) + + # Create learning rate scheduler with step-based warmup + # Always use warmup (based on warmup_ratio) + if warmup_steps > 0: + # Warmup: linear increase from 1% to 100% of learning_rate over warmup_steps + warmup_scheduler = torch.optim.lr_scheduler.LinearLR( + optimizer, + start_factor=0.01, # Start at 1% of learning_rate + end_factor=1.0, + total_iters=warmup_steps + ) + # Cosine annealing: after warmup, cosine decay over remaining steps + cosine_scheduler = torch.optim.lr_scheduler.CosineAnnealingLR( + optimizer, + T_max=total_steps - warmup_steps, + eta_min=learning_rate * 0.1 # Minimum learning rate is 1% of initial + ) + # Combine warmup and cosine annealing + scheduler = torch.optim.lr_scheduler.SequentialLR( + optimizer, + schedulers=[warmup_scheduler, cosine_scheduler], + milestones=[warmup_steps] + ) + # Note: warmup_steps is always > 0 (default is 1% of total steps), so we always use warmup + + # Create timestamped experiment directory + timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") + exp_dir = os.path.join(output_dir, f"exp_{timestamp}") + os.makedirs(exp_dir, exist_ok=True) + + # Save training settings as JSON + training_config = { + 'data_dir': data_dir, + 'output_dir': output_dir, + 'experiment_dir': exp_dir, + 'timestamp': timestamp, + 'batch_size': batch_size, + 'num_epochs': num_epochs, + 'learning_rate': learning_rate, + 'T': T, + 'n_max_layer': n_max_layer, + 'beta_start': beta_start, + 'beta_end': beta_end, + 'lambda_angle': lambda_angle, + 'lambda_material': lambda_material, + 'lambda_vf_category': lambda_vf_category, + 'lambda_layer': lambda_layer, + 'save_every': save_every, + 'normalization_method': normalization_method, + 'random_seed': random_seed, + 'device': device, + 'gen_eval_n_samples': gen_eval_n_samples, + 'gen_eval_every': gen_eval_every, + 'use_discrete_angles': use_discrete_angles, + 'visualize_matches': visualize_matches, + 'save_visualizations': save_visualizations, + 'n_visualization_samples': n_visualization_samples, + 'warmup_ratio': warmup_ratio, + 'log_every_n_steps': log_every_n_steps, + 'model_config': { + 'n_conditions': cfg.n_conditions, + 'n_materials': cfg.n_materials, + 'n_vf_categories': cfg.n_vf_categories, + 'n_max_layer': cfg.n_max_layer, + 'd_model': cfg.d_model, + 'n_heads': cfg.n_heads, + 'n_layers': cfg.n_layers, + 'dropout': cfg.dropout, + }, + 'mask_ids': mask_ids, + } + + config_path = os.path.join(exp_dir, "training_config.json") + with open(config_path, 'w') as f: + json.dump(training_config, f, indent=2) + print(f"\n✓ Training configuration saved to {config_path}") + print(f"✓ Experiment directory: {exp_dir}") + + # Initialize wandb if requested + if use_wandb: + if not WANDB_AVAILABLE: + raise ImportError("wandb is not installed. Install it with: pip install wandb") + wandb.init( + project=wandb_project, + name=wandb_name or f"exp_{timestamp}", + config=training_config, + dir=exp_dir + ) + print(f"✓ Wandb initialized: project={wandb_project}, name={wandb_name or f'exp_{timestamp}'}") + + # Training loop + print("\n" + "="*80) + print("STARTING TRAINING") + print("="*80) + + best_test_loss = float('inf') + global_step = 0 # Track global training step + + for epoch in range(num_epochs): + # Training + model.train() + train_losses = { + 'total': 0.0, + 'material': 0.0, + 'vf_category': 0.0, + 'layer': 0.0, + 'angle': 0.0 + } + + # Demo mode: limit number of steps per epoch + if demo_steps_per_epoch is not None: + # Create iterator and limit to demo_steps_per_epoch steps + train_iter = iter(train_loader) + max_steps = min(demo_steps_per_epoch, len(train_loader)) + pbar = tqdm(range(max_steps), desc=f"Epoch {epoch+1}/{num_epochs} (Demo: {max_steps} steps)") + for step_idx in pbar: + try: + batch = next(train_iter) + except StopIteration: + # Restart iterator if we run out of batches + train_iter = iter(train_loader) + batch = next(train_iter) + + # Move to device + batch = {k: v.to(device) for k, v in batch.items()} + + # Training step + loss, loss_mat, loss_nf, loss_layer, loss_angle = train_step( + model=model, + disc_diff_mat=disc_diff_mat, + disc_diff_vf_category=disc_diff_vf_category, + disc_diff_layer=disc_diff_layer, + disc_diff_angle=disc_diff_angle, + cont_diff=cont_diff, + optimizer=optimizer, + batch=batch, + mask_ids=mask_ids, + lambda_angle=lambda_angle, + lambda_material=lambda_material, + lambda_vf_category=lambda_vf_category, + lambda_layer=lambda_layer, + use_discrete_angles=use_discrete_angles + ) + + # Step the scheduler (step-based, not epoch-based) + scheduler.step() + current_lr = scheduler.get_last_lr()[0] + global_step += 1 + + train_losses['total'] += loss + train_losses['material'] += loss_mat + train_losses['vf_category'] += loss_nf + train_losses['layer'] += loss_layer + train_losses['angle'] += loss_angle + + # Log training metrics every n steps + if global_step % log_every_n_steps == 0 and use_wandb: + step_train_losses = { + 'train_step/total_loss': loss, # Already a float from train_step + 'train_step/material_loss': loss_mat, + 'train_step/vf_category_loss': loss_nf, + 'train_step/layer_loss': loss_layer, + 'train_step/angle_loss': loss_angle, + 'train_step/learning_rate': current_lr, + 'global_step': global_step, + } + wandb.log(step_train_losses) + + # Update progress bar + pbar.set_postfix({ + 'loss': f"{loss:.4f}", + 'mat': f"{loss_mat:.4f}", + 'nf': f"{loss_nf:.4f}", + 'lay': f"{loss_layer:.4f}", + 'ang': f"{loss_angle:.4f}" + }) + else: + # Normal training mode: iterate through all batches + pbar = tqdm(train_loader, desc=f"Epoch {epoch+1}/{num_epochs}") + for batch in pbar: + # Move to device + batch = {k: v.to(device) for k, v in batch.items()} + + # Training step + loss, loss_mat, loss_nf, loss_layer, loss_angle = train_step( + model=model, + disc_diff_mat=disc_diff_mat, + disc_diff_vf_category=disc_diff_vf_category, + disc_diff_layer=disc_diff_layer, + disc_diff_angle=disc_diff_angle, + cont_diff=cont_diff, + optimizer=optimizer, + batch=batch, + mask_ids=mask_ids, + lambda_angle=lambda_angle, + lambda_material=lambda_material, + lambda_vf_category=lambda_vf_category, + lambda_layer=lambda_layer, + use_discrete_angles=use_discrete_angles + ) + + # Step the scheduler (step-based, not epoch-based) + scheduler.step() + current_lr = scheduler.get_last_lr()[0] + global_step += 1 + + train_losses['total'] += loss + train_losses['material'] += loss_mat + train_losses['vf_category'] += loss_nf + train_losses['layer'] += loss_layer + train_losses['angle'] += loss_angle + + # Log training metrics every n steps + if global_step % log_every_n_steps == 0 and use_wandb: + step_train_losses = { + 'train_step/total_loss': loss, # Already a float from train_step + 'train_step/material_loss': loss_mat, + 'train_step/vf_category_loss': loss_nf, + 'train_step/layer_loss': loss_layer, + 'train_step/angle_loss': loss_angle, + 'train_step/learning_rate': current_lr, + 'global_step': global_step, + } + wandb.log(step_train_losses) + + # Update progress bar + pbar.set_postfix({ + 'loss': f"{loss:.4f}", + 'mat': f"{loss_mat:.4f}", + 'nf': f"{loss_nf:.4f}", + 'lay': f"{loss_layer:.4f}", + 'ang': f"{loss_angle:.4f}" + }) + + # Average losses + if demo_steps_per_epoch is not None: + n_batches = min(demo_steps_per_epoch, len(train_loader)) + else: + n_batches = len(train_loader) + for key in train_losses: + train_losses[key] /= n_batches + + # Validation + model.eval() + test_losses = { + 'total': 0.0, + 'material': 0.0, + 'vf_category': 0.0, + 'layer': 0.0, + 'angle': 0.0 + } + + with torch.no_grad(): + for batch in test_loader: + batch = {k: v.to(device) for k, v in batch.items()} + + # Compute loss without backward pass + total_loss, loss_mat, loss_nf, loss_layer, loss_angle = compute_loss( + model=model, + disc_diff_mat=disc_diff_mat, + disc_diff_vf_category=disc_diff_vf_category, + disc_diff_layer=disc_diff_layer, + disc_diff_angle=disc_diff_angle, + cont_diff=cont_diff, + batch=batch, + mask_ids=mask_ids, + lambda_angle=lambda_angle, + lambda_material=lambda_material, + lambda_vf_category=lambda_vf_category, + lambda_layer=lambda_layer, + use_discrete_angles=use_discrete_angles + ) + + test_losses['total'] += float(total_loss.detach().cpu()) + test_losses['material'] += float(loss_mat.detach().cpu()) + test_losses['vf_category'] += float(loss_nf.detach().cpu()) + test_losses['layer'] += float(loss_layer.detach().cpu()) + test_losses['angle'] += float(loss_angle.detach().cpu()) + + n_test_batches = len(test_loader) + for key in test_losses: + test_losses[key] /= n_test_batches + + # Get current learning rate (scheduler is already stepped during training) + current_lr = scheduler.get_last_lr()[0] + + # On-the-fly validation: generate data and plot against conditioned input + # Only run every gen_eval_every epochs to avoid slowing down training + on_the_fly_validation_results = None + if (epoch + 1) % gen_eval_every == 0: + print(" Running on-the-fly validation (generating simulation data)...") + # Get curve_dir - use provided value or try to auto-detect + validation_curve_dir = curve_dir + if validation_curve_dir is None: + # Try common locations (including absolute path) + possible_paths = [ + "/project/luofeng/feiyang/MaterialGeneration/data_generation/shahriar_modified_2025_12/RVE_Datasets", # Absolute path + os.path.join(data_dir, "..", "data_generation", "shahriar_modified_2025_12", "RVE_Datasets"), + os.path.join(data_dir, "..", "..", "data_generation", "shahriar_modified_2025_12", "RVE_Datasets"), + "shahriar_modified_2025_12/RVE_Datasets", + "../data_generation/shahriar_modified_2025_12/RVE_Datasets", + ] + for path in possible_paths: + # If path is already absolute, use it directly; otherwise convert to absolute + if os.path.isabs(path): + abs_path = path + else: + abs_path = os.path.abspath(path) + if os.path.exists(abs_path): + validation_curve_dir = abs_path + print(f" Auto-detected curve_dir: {validation_curve_dir}") + break + if validation_curve_dir is None: + print(f" Warning: Could not find RVE_Datasets directory. Tried: {possible_paths}") + print(f" Please specify --curve_dir argument to enable on-the-fly validation") + + val_save_dir = os.path.join(exp_dir, "on_the_fly_validation") if save_visualizations else None + on_the_fly_validation_results = validate_with_on_the_fly_generation( + model=model, + disc_diff_mat=disc_diff_mat, + disc_diff_vf_category=disc_diff_vf_category, + disc_diff_layer=disc_diff_layer, + disc_diff_angle=disc_diff_angle, + cont_diff=cont_diff, + test_loader=test_loader, + mask_ids=mask_ids, + device=device, + n_samples=min(n_validation_samples, len(test_loader.dataset)), # Use specified number of samples + use_discrete_angles=use_discrete_angles, + metadata=metadata, + angle_categories=angle_categories, + curve_dir=validation_curve_dir, + instances=[1, 2, 3], # Simulate 3 instances + save_dir=val_save_dir, + epoch=epoch + 1, + normalization_method=normalization_method, + num_processes=num_processes + ) + + # Compute generation-based metrics (actual generation from noise) + # Only evaluate every gen_eval_every epochs + gen_metrics = None + if (epoch + 1) % gen_eval_every == 0: + print(" Computing generation metrics (this may take a while)...") + # Disable visualization saving - we use on-the-fly validation instead + gen_metrics = compute_generation_metrics( + model=model, + disc_diff_mat=disc_diff_mat, + disc_diff_vf_category=disc_diff_vf_category, + disc_diff_layer=disc_diff_layer, + disc_diff_angle=disc_diff_angle, + cont_diff=cont_diff, + test_loader=test_loader, + mask_ids=mask_ids, + device=device, + n_samples=gen_eval_n_samples, + remask_prob=0.1, + use_discrete_angles=use_discrete_angles, + dataset_data=dataset_data_for_matching, + metadata=metadata, + visualize_matches=False, # Disable visualization + save_visualizations=False, # Disable visualization saving + vis_save_dir=None, # No visualization directory + epoch=epoch + 1, + normalization_method=normalization_method, + angle_categories=angle_categories + ) + + # Print epoch summary + print(f"\nEpoch {epoch+1}/{num_epochs}") + print(f" Train - Total: {train_losses['total']:.4f}, " + f"Mat: {train_losses['material']:.4f}, " + f"VF: {train_losses['vf_category']:.4f}, " + f"Lay: {train_losses['layer']:.4f}, " + f"Ang: {train_losses['angle']:.4f}") + print(f" Test - Total: {test_losses['total']:.4f}, " + f"Mat: {test_losses['material']:.4f}, " + f"VF: {test_losses['vf_category']:.4f}, " + f"Lay: {test_losses['layer']:.4f}, " + f"Ang: {test_losses['angle']:.4f}") + print(f" LR: {current_lr:.6f}") + + # Log metrics to wandb + if use_wandb: + log_dict = { + 'epoch': epoch + 1, + 'train/total_loss': train_losses['total'], + 'train/material_loss': train_losses['material'], + 'train/vf_category_loss': train_losses['vf_category'], + 'train/layer_loss': train_losses['layer'], + 'train/angle_loss': train_losses['angle'], + 'test/total_loss': test_losses['total'], + 'test/material_loss': test_losses['material'], + 'test/vf_category_loss': test_losses['vf_category'], + 'test/layer_loss': test_losses['layer'], + 'test/angle_loss': test_losses['angle'], + 'learning_rate': current_lr, + } + + # Log to wandb (both generation metrics and validation plots) + if use_wandb: + log_dict = {} + + if gen_metrics is not None: + n_eval_samples = gen_eval_n_samples if gen_eval_n_samples is not None else len(test_loader.dataset) + print(f" Generation Metrics (Actual generation from noise, n={n_eval_samples}):") + print(f" Material Acc: {gen_metrics['material_accuracy']:.4f} ({gen_metrics['material_accuracy']*100:.2f}%)") + print(f" VF Category Acc: {gen_metrics['vf_category_accuracy']:.4f} ({gen_metrics['vf_category_accuracy']*100:.2f}%)") + print(f" Nlayers Acc: {gen_metrics['nlayers_accuracy']:.4f} ({gen_metrics['nlayers_accuracy']*100:.2f}%), L1 Err: {gen_metrics['nlayers_l1_error']:.4f}") + if not math.isnan(gen_metrics['angle_l1_error']): + print(f" Angle L1 Err: {gen_metrics['angle_l1_error']:.4f}° (valid samples: {gen_metrics['angle_valid_samples']})") + else: + print(f" Angle L1 Err: N/A (no valid samples with matching layer counts)") + + # Add generation metrics to wandb log + log_dict.update({ + 'gen/material_accuracy': gen_metrics['material_accuracy'], + 'gen/vf_category_accuracy': gen_metrics['vf_category_accuracy'], + 'gen/nlayers_accuracy': gen_metrics['nlayers_accuracy'], + 'gen/nlayers_l1_error': gen_metrics['nlayers_l1_error'], + }) + if not math.isnan(gen_metrics['angle_l1_error']): + log_dict['gen/angle_l1_error'] = gen_metrics['angle_l1_error'] + + # Visualization saving disabled - we use on-the-fly validation instead + + # Log on-the-fly validation plots to wandb (even if gen_metrics is None) + if save_visualizations and on_the_fly_validation_results is not None: + val_save_dir = os.path.join(exp_dir, "on_the_fly_validation") + epoch_val_dir = os.path.join(val_save_dir, f"epoch_{epoch+1}") + if os.path.exists(epoch_val_dir): + # Log validation plots (cap at 100 for wandb to avoid clutter) + n_wandb_val_images = min(n_validation_samples, 100) # Limit wandb to 100 + for i in range(n_wandb_val_images): + img_path = os.path.join(epoch_val_dir, f"validation_sample_{i}_epoch_{epoch+1}.png") + if os.path.exists(img_path): + log_dict[f'on_the_fly_validation/sample_{i}'] = wandb.Image(img_path) + + # Log to wandb if we have anything to log + if log_dict: + wandb.log(log_dict) + + # Save checkpoint + if (epoch + 1) % save_every == 0 or test_losses['total'] < best_test_loss: + checkpoint_path = os.path.join(exp_dir, f"checkpoint_epoch_{epoch+1}.pt") + torch.save({ + 'epoch': epoch + 1, + 'model_state_dict': model.state_dict(), + 'optimizer_state_dict': optimizer.state_dict(), + 'scheduler_state_dict': scheduler.state_dict(), + 'train_losses': train_losses, + 'test_losses': test_losses, + 'config': cfg, + 'mask_ids': mask_ids, + }, checkpoint_path) + + if test_losses['total'] < best_test_loss: + best_test_loss = test_losses['total'] + best_path = os.path.join(exp_dir, "best_model.pt") + torch.save({ + 'epoch': epoch + 1, + 'model_state_dict': model.state_dict(), + 'optimizer_state_dict': optimizer.state_dict(), + 'scheduler_state_dict': scheduler.state_dict(), + 'train_losses': train_losses, + 'test_losses': test_losses, + 'config': cfg, + 'mask_ids': mask_ids, + }, best_path) + print(f" ✓ Saved best model (test loss: {best_test_loss:.4f})") + else: + print(f" ✓ Saved checkpoint") + + # Close wandb + if use_wandb: + wandb.finish() + + print("\n" + "="*80) + print("TRAINING COMPLETE") + print("="*80) + + +if __name__ == "__main__": + import argparse + + parser = argparse.ArgumentParser(description="Train hybrid diffusion model") + parser.add_argument("--data_dir", type=str, default="processed_data", help="Data directory") + parser.add_argument("--output_dir", type=str, default="checkpoints", help="Output directory") + parser.add_argument("--batch_size", type=int, default=32, help="Batch size") + parser.add_argument("--num_epochs", type=int, default=100, help="Number of epochs") + parser.add_argument("--learning_rate", type=float, default=1e-4, help="Learning rate") + parser.add_argument("--T", type=int, default=100, help="Number of diffusion timesteps") + parser.add_argument("--n_max_layer", type=int, default=10, help="Maximum number of layers") + parser.add_argument("--beta_start", type=float, default=1e-4, help="Beta schedule start") + parser.add_argument("--beta_end", type=float, default=0.02, help="Beta schedule end") + parser.add_argument("--lambda_angle", type=float, default=1.0, help="Angle loss weight") + parser.add_argument("--lambda_material", type=float, default=1.0, help="Material loss weight") + parser.add_argument("--lambda_vf_category", type=float, default=1.0, help="Volume fraction category loss weight") + parser.add_argument("--lambda_layer", type=float, default=1.0, help="Layer loss weight") + parser.add_argument("--save_every", type=int, default=10, help="Save checkpoint every N epochs") + parser.add_argument("--normalization_method", type=str, default='minmax', + choices=['minmax', 'zscore'], + help="Normalization method for coefficients (default: minmax)") + parser.add_argument("--random_seed", type=int, default=533, help="Random seed for reproducibility (default: 533)") + parser.add_argument("--gpu", type=int, default=0, + help="GPU index to use (e.g., 0, 1, 2). Default: 0") + parser.add_argument("--gen_eval_n_samples", type=int, default=None, + help="Number of samples to generate for generation metrics evaluation (default: None = use all test samples)") + parser.add_argument("--gen_eval_every", type=int, default=10, + help="Evaluate generation metrics every N epochs (default: 1 = every epoch)") + parser.add_argument("--use_discrete_angles", action="store_true", default=True, + help="Use discrete angle categories (0, 15, 30, 45, 60, 75, 90 degrees). Default: True") + parser.add_argument("--use_continuous_angles", action="store_true", default=False, + help="Use continuous angles with Gaussian diffusion. Overrides --use_discrete_angles") + parser.add_argument("--visualize_matches", action="store_true", default=False, + help="Visualize matches with dataset samples during generation evaluation") + parser.add_argument("--save_visualizations", action="store_true", default=False, + help="Save visualization plots to disk during training") + parser.add_argument("--n_visualization_samples", type=int, default=10, + help="Number of samples to generate visualizations for (default: 10)") + parser.add_argument("--warmup_ratio", type=float, default=0.01, + help="Warmup ratio (fraction of total training steps, default: 0.01 = 1%%)") + parser.add_argument("--log_every_n_steps", type=int, default=100, + help="Log training metrics every N steps (default: 100)") + parser.add_argument("--use_wandb", action="store_true", default=False, + help="Use Weights & Biases for logging metrics and images") + parser.add_argument("--wandb_project", type=str, default="material-generation", + help="Wandb project name (default: material-generation)") + parser.add_argument("--wandb_name", type=str, default=None, + help="Wandb run name (default: uses experiment timestamp)") + parser.add_argument("--angle_resolution", type=float, default=1.0, + help="Resolution in degrees for angle discretization (default: 1.0)") + parser.add_argument("--curve_dir", type=str, default=None, + help="Directory containing RVE_Datasets for on-the-fly validation simulations (default: None, will try to auto-detect)") + parser.add_argument("--demo_steps_per_epoch", type=int, default=None, + help="Demo mode: limit training to N steps per epoch (default: None = use all steps). Useful for quick testing.") + parser.add_argument("--num_processes", type=int, default=None, + help="Number of processes for multiprocessing during on-the-fly validation simulations (default: None = auto-detect based on CPU count)") + parser.add_argument("--n_validation_samples", type=int, default=100, + help="Number of samples to generate and simulate during on-the-fly validation (default: 100)") + + args = parser.parse_args() + + # Determine angle diffusion mode + if args.use_continuous_angles: + use_discrete_angles = False + else: + use_discrete_angles = args.use_discrete_angles + + # Handle GPU selection + if not torch.cuda.is_available(): + raise ValueError("CUDA is not available. This script requires GPU support.") + if args.gpu < 0 or args.gpu >= torch.cuda.device_count(): + raise ValueError(f"GPU {args.gpu} is out of range. Available GPUs: 0-{torch.cuda.device_count()-1}") + device = f"cuda:{args.gpu}" + print(f"Using GPU {args.gpu}: {torch.cuda.get_device_name(args.gpu)}") + + train( + data_dir=args.data_dir, + output_dir=args.output_dir, + batch_size=args.batch_size, + num_epochs=args.num_epochs, + learning_rate=args.learning_rate, + T=args.T, + n_max_layer=args.n_max_layer, + beta_start=args.beta_start, + beta_end=args.beta_end, + lambda_angle=args.lambda_angle, + lambda_material=args.lambda_material, + lambda_vf_category=args.lambda_vf_category, + lambda_layer=args.lambda_layer, + save_every=args.save_every, + normalization_method=args.normalization_method, + random_seed=args.random_seed, + device=device, + gen_eval_n_samples=args.gen_eval_n_samples, + gen_eval_every=args.gen_eval_every, + use_discrete_angles=use_discrete_angles, + visualize_matches=args.visualize_matches, + save_visualizations=args.save_visualizations, + n_visualization_samples=args.n_visualization_samples, + warmup_ratio=args.warmup_ratio, + log_every_n_steps=args.log_every_n_steps, + use_wandb=args.use_wandb, + wandb_project=args.wandb_project, + wandb_name=args.wandb_name, + angle_resolution=args.angle_resolution, + curve_dir=args.curve_dir, + demo_steps_per_epoch=args.demo_steps_per_epoch, + num_processes=args.num_processes + ) diff --git a/hybrid_diffusion_material_generation/utils/__init__.py b/hybrid_diffusion_material_generation/utils/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..2602cbc52767b49d04bf7a5ce9fcf4a395f32b23 --- /dev/null +++ b/hybrid_diffusion_material_generation/utils/__init__.py @@ -0,0 +1,31 @@ +""" +Utility modules for material design data processing. +""" + +from .fitting_utils import ( + parse_dataset, + polynomial_fit, + calculate_r2, + fit_all_relationships, + fit_all_relationships_detailed +) + +from .preprocessing import ( + parse_metadata, + preprocess_dataset, + preprocess_dataset_batch, + MATERIAL_TYPES +) + +__all__ = [ + 'parse_dataset', + 'polynomial_fit', + 'calculate_r2', + 'fit_all_relationships', + 'fit_all_relationships_detailed', + 'parse_metadata', + 'preprocess_dataset', + 'preprocess_dataset_batch', + 'MATERIAL_TYPES' +] + diff --git a/hybrid_diffusion_material_generation/utils/fitting_utils.py b/hybrid_diffusion_material_generation/utils/fitting_utils.py new file mode 100644 index 0000000000000000000000000000000000000000..856645ae8b66831ef39764d7a770164f6b0001bd --- /dev/null +++ b/hybrid_diffusion_material_generation/utils/fitting_utils.py @@ -0,0 +1,641 @@ +""" +Utility functions for polynomial fitting of material dataset. + +This module provides functions for: +- Parsing dataset files +- Performing polynomial fitting +- Performing Ramberg-Osgood fitting +- Calculating fit quality metrics +- Fitting all relationships in the dataset +""" + +import numpy as np +from typing import Dict, Tuple, Optional, Callable +from scipy.optimize import curve_fit + + +def parse_dataset(filepath: str) -> Dict[str, np.ndarray]: + """ + Parse the dataset file and extract the three sections: + 1. eps_11 vs sig_11 and eps_22 + 2. eps_22 vs sig_22 and eps_11 + 3. eps_12 vs sig_12 + + Args: + filepath: Path to the dataset file + + Returns: + Dictionary with keys 'section1', 'section2', 'section3' containing numpy arrays + """ + with open(filepath, 'r') as f: + content = f.read() + + # Split by empty lines to get sections + sections = content.strip().split('\n\n') + + data = {} + + # Section 1: eps_11, sig_11, eps_22 + if len(sections) > 0: + lines = sections[0].strip().split('\n') + if len(lines) > 1 and 'eps_11' in lines[0]: + data['section1'] = [] + for line in lines[1:]: + if line.strip(): + parts = line.split() + if len(parts) >= 3: + data['section1'].append([float(parts[0]), float(parts[1]), float(parts[2])]) + data['section1'] = np.array(data['section1']) + + # Section 2: eps_22, sig_22, eps_11 + if len(sections) > 1: + lines = sections[1].strip().split('\n') + if len(lines) > 1 and 'eps_22' in lines[0]: + data['section2'] = [] + for line in lines[1:]: + if line.strip(): + parts = line.split() + if len(parts) >= 3: + data['section2'].append([float(parts[0]), float(parts[1]), float(parts[2])]) + data['section2'] = np.array(data['section2']) + + # Section 3: eps_12, sig_12 + if len(sections) > 2: + lines = sections[2].strip().split('\n') + if len(lines) > 1 and 'eps_12' in lines[0]: + data['section3'] = [] + for line in lines[1:]: + if line.strip(): + parts = line.split() + if len(parts) >= 2: + data['section3'].append([float(parts[0]), float(parts[1])]) + data['section3'] = np.array(data['section3']) + + return data + + +def polynomial_fit(x: np.ndarray, y: np.ndarray, degree: int = 3) -> Tuple[np.ndarray, np.poly1d, np.ndarray, np.ndarray]: + """ + Perform polynomial fitting of specified degree with no bias term. + This ensures that when x=0, y=0 (the polynomial passes through the origin). + + Args: + x: Independent variable data + y: Dependent variable data + degree: Degree of the polynomial (default: 3) + + Returns: + Tuple of (coefficients, polynomial function, x_fit, y_fit) + - coefficients: numpy array of polynomial coefficients (highest degree first) + - polynomial function: numpy poly1d object + - x_fit: x values for fitted curve + - y_fit: y values for fitted curve + """ + # Fit polynomial without constant term by using least squares on Vandermonde matrix + # Create Vandermonde matrix without the constant column (x^0) + vander = np.vander(x, degree + 1, increasing=False)[:, :-1] # Remove last column (constant term) + + # Solve least squares: vander @ coeffs = y + coeffs, _, _, _ = np.linalg.lstsq(vander, y, rcond=None) + + # Create polynomial function (append 0 for constant term for poly1d compatibility) + coeffs_with_zero = np.append(coeffs, 0) + poly_func = np.poly1d(coeffs_with_zero) + + # Generate fitted curve + x_fit = np.linspace(x.min(), x.max(), 100) + y_fit = poly_func(x_fit) + + return coeffs, poly_func, x_fit, y_fit + + +def calculate_r2(y_true: np.ndarray, y_pred: np.ndarray) -> float: + """ + Calculate R-squared value. + + Args: + y_true: True y values + y_pred: Predicted y values + + Returns: + R-squared value + """ + ss_res = np.sum((y_true - y_pred) ** 2) + ss_tot = np.sum((y_true - np.mean(y_true)) ** 2) + r2 = 1 - (ss_res / ss_tot) if ss_tot != 0 else 0 + return r2 + + +def ramberg_osgood_stress_strain(x: np.ndarray, a: float, b: float, c: float) -> np.ndarray: + """ + Ramberg-Osgood relationship for stress-strain: y = a*x + b*x^c + + This form is suitable for fitting stress as a function of strain, + where a represents the elastic modulus and b, c represent the + nonlinear hardening behavior. + + Args: + x: Independent variable (strain) + a: Linear coefficient (elastic modulus) + b: Nonlinear coefficient + c: Power exponent + + Returns: + Predicted y values (stress) + """ + # Ensure we handle negative values appropriately + x_abs = np.abs(x) + sign = np.sign(x) + return sign * (a * x_abs + b * np.power(x_abs, c)) + + +def ramberg_osgood_power_law(x: np.ndarray, a: float, b: float) -> np.ndarray: + """ + Power law relationship: y = a*x^b + + This form is suitable for strain-strain relationships or + other power-law dependencies. + + Args: + x: Independent variable + a: Coefficient + b: Power exponent + + Returns: + Predicted y values + """ + # Ensure we handle negative values appropriately + x_abs = np.abs(x) + sign = np.sign(x) + return sign * a * np.power(x_abs, b) + + +def ramberg_osgood_fit(x: np.ndarray, y: np.ndarray, use_power_law: bool = False) -> Tuple[np.ndarray, Callable, np.ndarray, np.ndarray]: + """ + Perform Ramberg-Osgood fitting. + + For stress-strain relationships: uses y = a*x + b*x^c + For strain-strain relationships: uses y = a*x^b + + Args: + x: Independent variable data + y: Dependent variable data + use_power_law: If True, use power law (y = a*x^b) instead of full Ramberg-Osgood + + Returns: + Tuple of (parameters, fit function, x_fit, y_fit) + - parameters: numpy array of fitted parameters + - fit function: function that takes x and returns y + - x_fit: x values for fitted curve + - y_fit: y values for fitted curve + """ + # Filter out zero values to avoid issues with power functions + mask = (x != 0) & (y != 0) & np.isfinite(x) & np.isfinite(y) + if np.sum(mask) < 3: + # Not enough data points, return default values + if use_power_law: + params = np.array([1.0, 1.0]) + fit_func = lambda x_val: ramberg_osgood_power_law(x_val, params[0], params[1]) + else: + params = np.array([1.0, 0.0, 1.0]) + fit_func = lambda x_val: ramberg_osgood_stress_strain(x_val, params[0], params[1], params[2]) + x_fit = np.linspace(x.min(), x.max(), 100) + y_fit = fit_func(x_fit) + return params, fit_func, x_fit, y_fit + + x_fit_data = x[mask] + y_fit_data = y[mask] + + try: + if use_power_law: + # Power law: y = a*x^b + # Initial guess: linear relationship (a=slope, b=1) + if len(x_fit_data) > 0: + slope = np.mean(y_fit_data / x_fit_data) if np.any(x_fit_data != 0) else 1.0 + else: + slope = 1.0 + p0 = [abs(slope), 1.0] + + # Bounds: a > 0, b can be any positive value + bounds = ([0, 0.1], [np.inf, 10.0]) + + params, _ = curve_fit( + ramberg_osgood_power_law, + x_fit_data, + y_fit_data, + p0=p0, + bounds=bounds, + maxfev=5000 + ) + + fit_func = lambda x_val: ramberg_osgood_power_law(x_val, params[0], params[1]) + else: + # Full Ramberg-Osgood: y = a*x + b*x^c + # Initial guess: linear relationship (a=slope, b=small, c=2) + if len(x_fit_data) > 0: + slope = np.mean(y_fit_data / x_fit_data) if np.any(x_fit_data != 0) else 1.0 + else: + slope = 1.0 + p0 = [abs(slope), 0.01, 2.0] + + # Bounds: a > 0, b >= 0, c > 0 + bounds = ([0, 0, 0.1], [np.inf, np.inf, 10.0]) + + params, _ = curve_fit( + ramberg_osgood_stress_strain, + x_fit_data, + y_fit_data, + p0=p0, + bounds=bounds, + maxfev=5000 + ) + + fit_func = lambda x_val: ramberg_osgood_stress_strain(x_val, params[0], params[1], params[2]) + + # Generate fitted curve + x_fit = np.linspace(x.min(), x.max(), 100) + y_fit = fit_func(x_fit) + + return params, fit_func, x_fit, y_fit + + except Exception as e: + # If fitting fails, return default values + if use_power_law: + params = np.array([1.0, 1.0]) + fit_func = lambda x_val: ramberg_osgood_power_law(x_val, params[0], params[1]) + else: + params = np.array([1.0, 0.0, 1.0]) + fit_func = lambda x_val: ramberg_osgood_stress_strain(x_val, params[0], params[1], params[2]) + x_fit = np.linspace(x.min(), x.max(), 100) + y_fit = fit_func(x_fit) + return params, fit_func, x_fit, y_fit + + +def fit_all_relationships(data: Dict[str, np.ndarray], degree: int = 3) -> np.ndarray: + """ + Fit all 5 relationships in the dataset. + + Relationships (in order): + 0. eps_11 vs sig_11 + 1. eps_11 vs eps_22 + 2. eps_22 vs sig_22 + 3. eps_22 vs eps_11 + 4. eps_12 vs sig_12 + + Args: + data: Dictionary containing parsed dataset sections + degree: Degree of polynomial fit (default: 3) + + Returns: + Numpy array of shape [5, degree] containing polynomial coefficients. + Each row corresponds to one relationship, with coefficients ordered + from highest degree to first degree (e.g., [x^3, x^2, x] for degree=3). + Note: There is no constant term, ensuring y=0 when x=0. + """ + coeffs_list = [] + + # Relationship 0: eps_11 vs sig_11 + if 'section1' in data and len(data['section1']) > 0: + eps_11 = data['section1'][:, 0] + sig_11 = data['section1'][:, 1] + coeffs, _, _, _ = polynomial_fit(eps_11, sig_11, degree) + coeffs_list.append(coeffs) + else: + coeffs_list.append(np.zeros(degree)) + + # Relationship 1: eps_11 vs eps_22 + if 'section1' in data and len(data['section1']) > 0: + eps_11 = data['section1'][:, 0] + eps_22 = data['section1'][:, 2] + coeffs, _, _, _ = polynomial_fit(eps_11, eps_22, degree) + coeffs_list.append(coeffs) + else: + coeffs_list.append(np.zeros(degree)) + + # Relationship 2: eps_22 vs sig_22 + if 'section2' in data and len(data['section2']) > 0: + eps_22 = data['section2'][:, 0] + sig_22 = data['section2'][:, 1] + coeffs, _, _, _ = polynomial_fit(eps_22, sig_22, degree) + coeffs_list.append(coeffs) + else: + coeffs_list.append(np.zeros(degree)) + + # Relationship 3: eps_22 vs eps_11 + if 'section2' in data and len(data['section2']) > 0: + eps_22 = data['section2'][:, 0] + eps_11 = data['section2'][:, 2] + coeffs, _, _, _ = polynomial_fit(eps_22, eps_11, degree) + coeffs_list.append(coeffs) + else: + coeffs_list.append(np.zeros(degree)) + + # Relationship 4: eps_12 vs sig_12 + if 'section3' in data and len(data['section3']) > 0: + eps_12 = data['section3'][:, 0] + sig_12 = data['section3'][:, 1] + coeffs, _, _, _ = polynomial_fit(eps_12, sig_12, degree) + coeffs_list.append(coeffs) + else: + coeffs_list.append(np.zeros(degree)) + + # Stack into [5, degree] array + return np.array(coeffs_list) + + +def fit_all_relationships_detailed(data: Dict[str, np.ndarray], degree: int = 3) -> Dict[str, Dict]: + """ + Fit all 5 relationships in the dataset and return detailed results. + + This is a helper function for visualization and debugging purposes. + For data processing, use fit_all_relationships() which returns a tensor. + + Relationships: + 1. eps_11 vs sig_11 + 2. eps_11 vs eps_22 + 3. eps_22 vs sig_22 + 4. eps_22 vs eps_11 + 5. eps_12 vs sig_12 + + Args: + data: Dictionary containing parsed dataset sections + degree: Degree of polynomial fit (default: 3) + + Returns: + Dictionary with fitting results for each relationship. + Each entry contains: + - 'coeffs': polynomial coefficients + - 'r2': R-squared value + - 'poly_func': polynomial function (numpy poly1d) + - 'x': original x data + - 'y': original y data + """ + results = {} + + # Relationship 1: eps_11 vs sig_11 + if 'section1' in data and len(data['section1']) > 0: + eps_11 = data['section1'][:, 0] + sig_11 = data['section1'][:, 1] + + coeffs, poly_func, _, _ = polynomial_fit(eps_11, sig_11, degree) + r2 = calculate_r2(sig_11, poly_func(eps_11)) + + results['eps_11_vs_sig_11'] = { + 'coeffs': coeffs, + 'r2': r2, + 'poly_func': poly_func, + 'x': eps_11, + 'y': sig_11 + } + + # Relationship 2: eps_11 vs eps_22 + if 'section1' in data and len(data['section1']) > 0: + eps_11 = data['section1'][:, 0] + eps_22 = data['section1'][:, 2] + + coeffs, poly_func, _, _ = polynomial_fit(eps_11, eps_22, degree) + r2 = calculate_r2(eps_22, poly_func(eps_11)) + + results['eps_11_vs_eps_22'] = { + 'coeffs': coeffs, + 'r2': r2, + 'poly_func': poly_func, + 'x': eps_11, + 'y': eps_22 + } + + # Relationship 3: eps_22 vs sig_22 + if 'section2' in data and len(data['section2']) > 0: + eps_22 = data['section2'][:, 0] + sig_22 = data['section2'][:, 1] + + coeffs, poly_func, _, _ = polynomial_fit(eps_22, sig_22, degree) + r2 = calculate_r2(sig_22, poly_func(eps_22)) + + results['eps_22_vs_sig_22'] = { + 'coeffs': coeffs, + 'r2': r2, + 'poly_func': poly_func, + 'x': eps_22, + 'y': sig_22 + } + + # Relationship 4: eps_22 vs eps_11 + if 'section2' in data and len(data['section2']) > 0: + eps_22 = data['section2'][:, 0] + eps_11 = data['section2'][:, 2] + + coeffs, poly_func, _, _ = polynomial_fit(eps_22, eps_11, degree) + r2 = calculate_r2(eps_11, poly_func(eps_22)) + + results['eps_22_vs_eps_11'] = { + 'coeffs': coeffs, + 'r2': r2, + 'poly_func': poly_func, + 'x': eps_22, + 'y': eps_11 + } + + # Relationship 5: eps_12 vs sig_12 + if 'section3' in data and len(data['section3']) > 0: + eps_12 = data['section3'][:, 0] + sig_12 = data['section3'][:, 1] + + coeffs, poly_func, _, _ = polynomial_fit(eps_12, sig_12, degree) + r2 = calculate_r2(sig_12, poly_func(eps_12)) + + results['eps_12_vs_sig_12'] = { + 'coeffs': coeffs, + 'r2': r2, + 'poly_func': poly_func, + 'x': eps_12, + 'y': sig_12 + } + + return results + + +def fit_all_relationships_ramberg_osgood(data: Dict[str, np.ndarray]) -> np.ndarray: + """ + Fit all 5 relationships in the dataset using Ramberg-Osgood relationship. + + Relationships (in order): + 0. eps_11 vs sig_11 (stress-strain: uses full Ramberg-Osgood) + 1. eps_11 vs eps_22 (strain-strain: uses power law) + 2. eps_22 vs sig_22 (stress-strain: uses full Ramberg-Osgood) + 3. eps_22 vs eps_11 (strain-strain: uses power law) + 4. eps_12 vs sig_12 (stress-strain: uses full Ramberg-Osgood) + + Args: + data: Dictionary containing parsed dataset sections + + Returns: + Numpy array of shape [5, 3] containing Ramberg-Osgood parameters. + For stress-strain relationships: [a, b, c] where y = a*x + b*x^c + For strain-strain relationships: [a, b, 0] where y = a*x^b (c is unused) + """ + params_list = [] + + # Relationship 0: eps_11 vs sig_11 (stress-strain) + if 'section1' in data and len(data['section1']) > 0: + eps_11 = data['section1'][:, 0] + sig_11 = data['section1'][:, 1] + params, _, _, _ = ramberg_osgood_fit(eps_11, sig_11, use_power_law=False) + params_list.append(params) + else: + params_list.append(np.array([1.0, 0.0, 1.0])) + + # Relationship 1: eps_11 vs eps_22 (strain-strain) + if 'section1' in data and len(data['section1']) > 0: + eps_11 = data['section1'][:, 0] + eps_22 = data['section1'][:, 2] + params, _, _, _ = ramberg_osgood_fit(eps_11, eps_22, use_power_law=True) + # Pad with 0 for consistency (power law only has 2 params) + params_padded = np.append(params, 0.0) + params_list.append(params_padded) + else: + params_list.append(np.array([1.0, 1.0, 0.0])) + + # Relationship 2: eps_22 vs sig_22 (stress-strain) + if 'section2' in data and len(data['section2']) > 0: + eps_22 = data['section2'][:, 0] + sig_22 = data['section2'][:, 1] + params, _, _, _ = ramberg_osgood_fit(eps_22, sig_22, use_power_law=False) + params_list.append(params) + else: + params_list.append(np.array([1.0, 0.0, 1.0])) + + # Relationship 3: eps_22 vs eps_11 (strain-strain) + if 'section2' in data and len(data['section2']) > 0: + eps_22 = data['section2'][:, 0] + eps_11 = data['section2'][:, 2] + params, _, _, _ = ramberg_osgood_fit(eps_22, eps_11, use_power_law=True) + # Pad with 0 for consistency (power law only has 2 params) + params_padded = np.append(params, 0.0) + params_list.append(params_padded) + else: + params_list.append(np.array([1.0, 1.0, 0.0])) + + # Relationship 4: eps_12 vs sig_12 (stress-strain) + if 'section3' in data and len(data['section3']) > 0: + eps_12 = data['section3'][:, 0] + sig_12 = data['section3'][:, 1] + params, _, _, _ = ramberg_osgood_fit(eps_12, sig_12, use_power_law=False) + params_list.append(params) + else: + params_list.append(np.array([1.0, 0.0, 1.0])) + + # Stack into [5, 3] array + return np.array(params_list) + + +def fit_all_relationships_ramberg_osgood_detailed(data: Dict[str, np.ndarray]) -> Dict[str, Dict]: + """ + Fit all 5 relationships in the dataset using Ramberg-Osgood and return detailed results. + + This is a helper function for visualization and debugging purposes. + For data processing, use fit_all_relationships_ramberg_osgood() which returns a tensor. + + Relationships: + 1. eps_11 vs sig_11 (stress-strain: full Ramberg-Osgood) + 2. eps_11 vs eps_22 (strain-strain: power law) + 3. eps_22 vs sig_22 (stress-strain: full Ramberg-Osgood) + 4. eps_22 vs eps_11 (strain-strain: power law) + 5. eps_12 vs sig_12 (stress-strain: full Ramberg-Osgood) + + Args: + data: Dictionary containing parsed dataset sections + + Returns: + Dictionary with fitting results for each relationship. + Each entry contains: + - 'params': Ramberg-Osgood parameters + - 'r2': R-squared value + - 'fit_func': fitting function + - 'x': original x data + - 'y': original y data + """ + results = {} + + # Relationship 1: eps_11 vs sig_11 (stress-strain) + if 'section1' in data and len(data['section1']) > 0: + eps_11 = data['section1'][:, 0] + sig_11 = data['section1'][:, 1] + + params, fit_func, _, _ = ramberg_osgood_fit(eps_11, sig_11, use_power_law=False) + r2 = calculate_r2(sig_11, fit_func(eps_11)) + + results['eps_11_vs_sig_11'] = { + 'params': params, + 'r2': r2, + 'fit_func': fit_func, + 'x': eps_11, + 'y': sig_11 + } + + # Relationship 2: eps_11 vs eps_22 (strain-strain) + if 'section1' in data and len(data['section1']) > 0: + eps_11 = data['section1'][:, 0] + eps_22 = data['section1'][:, 2] + + params, fit_func, _, _ = ramberg_osgood_fit(eps_11, eps_22, use_power_law=True) + r2 = calculate_r2(eps_22, fit_func(eps_11)) + + results['eps_11_vs_eps_22'] = { + 'params': params, + 'r2': r2, + 'fit_func': fit_func, + 'x': eps_11, + 'y': eps_22 + } + + # Relationship 3: eps_22 vs sig_22 (stress-strain) + if 'section2' in data and len(data['section2']) > 0: + eps_22 = data['section2'][:, 0] + sig_22 = data['section2'][:, 1] + + params, fit_func, _, _ = ramberg_osgood_fit(eps_22, sig_22, use_power_law=False) + r2 = calculate_r2(sig_22, fit_func(eps_22)) + + results['eps_22_vs_sig_22'] = { + 'params': params, + 'r2': r2, + 'fit_func': fit_func, + 'x': eps_22, + 'y': sig_22 + } + + # Relationship 4: eps_22 vs eps_11 (strain-strain) + if 'section2' in data and len(data['section2']) > 0: + eps_22 = data['section2'][:, 0] + eps_11 = data['section2'][:, 2] + + params, fit_func, _, _ = ramberg_osgood_fit(eps_22, eps_11, use_power_law=True) + r2 = calculate_r2(eps_11, fit_func(eps_22)) + + results['eps_22_vs_eps_11'] = { + 'params': params, + 'r2': r2, + 'fit_func': fit_func, + 'x': eps_22, + 'y': eps_11 + } + + # Relationship 5: eps_12 vs sig_12 (stress-strain) + if 'section3' in data and len(data['section3']) > 0: + eps_12 = data['section3'][:, 0] + sig_12 = data['section3'][:, 1] + + params, fit_func, _, _ = ramberg_osgood_fit(eps_12, sig_12, use_power_law=False) + r2 = calculate_r2(sig_12, fit_func(eps_12)) + + results['eps_12_vs_sig_12'] = { + 'params': params, + 'r2': r2, + 'fit_func': fit_func, + 'x': eps_12, + 'y': sig_12 + } + + return results + diff --git a/hybrid_diffusion_material_generation/utils/preprocessing.py b/hybrid_diffusion_material_generation/utils/preprocessing.py new file mode 100644 index 0000000000000000000000000000000000000000..fa7bec350bed521c86fe8cedbba6d3060f7b6582 --- /dev/null +++ b/hybrid_diffusion_material_generation/utils/preprocessing.py @@ -0,0 +1,175 @@ +""" +Preprocessing utilities for material dataset files. + +This module provides functions for: +- Parsing dataset files and extracting all metadata +- Performing polynomial fitting +- Returning structured data for model training +""" + +import numpy as np +import re +from typing import Dict, Tuple, Optional +from .fitting_utils import parse_dataset, fit_all_relationships + + +# Material type mapping +MATERIAL_TYPES = { + 'CPP': 0, + 'CHDPE': 1, + 'GPP': 2, + 'GHDPE': 3 +} + + +def parse_metadata(filepath: str) -> Dict: + """ + Parse metadata from dataset file. + + Args: + filepath: Path to the dataset file + + Returns: + Dictionary containing parsed metadata: + - 'volume_fraction': float + - 'material_type': str (e.g., 'CHDPE') + - 'material_type_id': int (0-3) + - 'number_of_fibers': int + - 'fiber_centers_YZ': np.ndarray of shape [n_fibers, 2] + - 'stacking_sequence': list of floats (angles in degrees) + """ + with open(filepath, 'r') as f: + lines = f.readlines() + + metadata = {} + + for line in lines: + line = line.strip() + + # Parse volume fraction + if line.startswith('volume fraction='): + value = line.split('=')[1].strip() + metadata['volume_fraction'] = float(value) + + # Parse material type + elif line.startswith('material type='): + value = line.split('=')[1].strip() + metadata['material_type'] = value + metadata['material_type_id'] = MATERIAL_TYPES.get(value, -1) + if metadata['material_type_id'] == -1: + raise ValueError(f"Unknown material type: {value}") + + # Parse number of fibers + elif line.startswith('number of fibers='): + value = line.split('=')[1].strip() + metadata['number_of_fibers'] = int(value) + + # Parse stacking sequence + elif line.startswith('stacking sequence='): + value = line.split('=')[1].strip() + # Parse comma-separated angles + angles = [float(x.strip()) for x in value.split(',')] + metadata['stacking_sequence'] = np.array(angles, dtype=np.float32) + + # Parse fiber centers + elif line.startswith('fiber_centers_YZ='): + value = line.split('=')[1].strip() + # Parse pattern: (y1,z1) (y2,z2) ... + pattern = r'\(([^,]+),([^)]+)\)' + matches = re.findall(pattern, value) + centers = [] + for match in matches: + y = float(match[0].strip()) + z = float(match[1].strip()) + centers.append([y, z]) + metadata['fiber_centers_YZ'] = np.array(centers, dtype=np.float32) + + return metadata + + +def preprocess_dataset(filepath: str, degree: int = 3) -> Dict: + """ + Preprocess a dataset file and extract all required information. + + Args: + filepath: Path to the dataset file + degree: Degree of polynomial fit (default: 3) + + Returns: + Dictionary containing: + - 'polynomial_coefficients': np.ndarray of shape [5, degree] + - 'material_type': int (0 to n_materials-1) + - 'number_of_fibers': np.ndarray of shape [1] (int) + - 'volume_fraction': np.ndarray of shape [1] (float) + - 'fiber_centers_YZ': np.ndarray of shape [number_of_fibers, 2] + - 'stacking_sequence': np.ndarray of shape [n_layers] (float, angles in degrees) + """ + # Parse the dataset for polynomial fitting + data = parse_dataset(filepath) + + # Perform polynomial fitting + polynomial_coefficients = fit_all_relationships(data, degree=degree) + + # Parse metadata + metadata = parse_metadata(filepath) + + # Construct output dictionary + result = { + 'polynomial_coefficients': polynomial_coefficients, # [5, degree] + 'material_type': np.array([metadata['material_type_id']], dtype=np.int64), # [1] + 'number_of_fibers': np.array([metadata['number_of_fibers']], dtype=np.int64), # [1] + 'volume_fraction': np.array([metadata['volume_fraction']], dtype=np.float32), # [1] + 'fiber_centers_YZ': metadata['fiber_centers_YZ'], # [number_of_fibers, 2] + 'stacking_sequence': metadata['stacking_sequence'], # [n_layers] + } + + return result + + +def preprocess_dataset_batch(filepaths: list, degree: int = 3) -> Dict: + """ + Preprocess multiple dataset files and return batched arrays. + + Args: + filepaths: List of paths to dataset files + degree: Degree of polynomial fit (default: 3) + + Returns: + Dictionary containing batched arrays: + - 'polynomial_coefficients': np.ndarray of shape [batch_size, 5, degree] + - 'material_type': np.ndarray of shape [batch_size, 1] + - 'number_of_fibers': np.ndarray of shape [batch_size, 1] + - 'volume_fraction': np.ndarray of shape [batch_size, 1] + - 'fiber_centers_YZ': list of np.ndarray (variable length per sample) + - 'stacking_sequence': list of np.ndarray (variable length per sample) + """ + batch_results = { + 'polynomial_coefficients': [], + 'material_type': [], + 'number_of_fibers': [], + 'volume_fraction': [], + 'fiber_centers_YZ': [], + 'stacking_sequence': [] + } + + for filepath in filepaths: + result = preprocess_dataset(filepath, degree=degree) + + batch_results['polynomial_coefficients'].append(result['polynomial_coefficients']) + batch_results['material_type'].append(result['material_type']) + batch_results['number_of_fibers'].append(result['number_of_fibers']) + batch_results['volume_fraction'].append(result['volume_fraction']) + batch_results['fiber_centers_YZ'].append(result['fiber_centers_YZ']) + batch_results['stacking_sequence'].append(result['stacking_sequence']) + + # Stack arrays where possible + batch_results['polynomial_coefficients'] = np.array(batch_results['polynomial_coefficients']) + batch_results['material_type'] = np.array(batch_results['material_type']) + batch_results['number_of_fibers'] = np.array(batch_results['number_of_fibers']) + batch_results['volume_fraction'] = np.array(batch_results['volume_fraction']) + + # Keep lists for variable-length arrays + # (fiber_centers_YZ and stacking_sequence remain as lists) + + return batch_results + diff --git a/inverse_design_demo/.gitattributes b/inverse_design_demo/.gitattributes new file mode 100644 index 0000000000000000000000000000000000000000..54d9a7290224dc04bbac33f49ad3e1e6cc831958 --- /dev/null +++ b/inverse_design_demo/.gitattributes @@ -0,0 +1,38 @@ +*.7z filter=lfs diff=lfs merge=lfs -text +*.arrow filter=lfs diff=lfs merge=lfs -text +*.bin filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.ckpt filter=lfs diff=lfs merge=lfs -text +*.ftz filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.h5 filter=lfs diff=lfs merge=lfs -text +*.joblib filter=lfs diff=lfs merge=lfs -text +*.lfs.* filter=lfs diff=lfs merge=lfs -text +*.mlmodel filter=lfs diff=lfs merge=lfs -text +*.model filter=lfs diff=lfs merge=lfs -text +*.msgpack filter=lfs diff=lfs merge=lfs -text +*.npy filter=lfs diff=lfs merge=lfs -text +*.npz filter=lfs diff=lfs merge=lfs -text +*.onnx filter=lfs diff=lfs merge=lfs -text +*.ot filter=lfs diff=lfs merge=lfs -text +*.parquet filter=lfs diff=lfs merge=lfs -text +*.pb filter=lfs diff=lfs merge=lfs -text +*.pickle filter=lfs diff=lfs merge=lfs -text +*.pkl filter=lfs diff=lfs merge=lfs -text +*.pt filter=lfs diff=lfs merge=lfs -text +*.pth filter=lfs diff=lfs merge=lfs -text +*.rar filter=lfs diff=lfs merge=lfs -text +*.safetensors filter=lfs diff=lfs merge=lfs -text +saved_model/**/* filter=lfs diff=lfs merge=lfs -text +*.tar.* filter=lfs diff=lfs merge=lfs -text +*.tar filter=lfs diff=lfs merge=lfs -text +*.tflite filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.wasm filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text +*tfevents* filter=lfs diff=lfs merge=lfs -text +material_res3.png filter=lfs diff=lfs merge=lfs -text +figures/material_res3.png filter=lfs diff=lfs merge=lfs -text +figures/forming_angle.png filter=lfs diff=lfs merge=lfs -text diff --git a/inverse_design_demo/Data/DataForThermoforming.xlsx b/inverse_design_demo/Data/DataForThermoforming.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..36ebd54e89ebdb13b2c31d561e60d7484237ee6c Binary files /dev/null and b/inverse_design_demo/Data/DataForThermoforming.xlsx differ diff --git a/inverse_design_demo/Dataset.py b/inverse_design_demo/Dataset.py new file mode 100644 index 0000000000000000000000000000000000000000..4fee1e37d4f97f758ca4b34d8111acf32f11aaaf --- /dev/null +++ b/inverse_design_demo/Dataset.py @@ -0,0 +1,65 @@ +import numpy as np +import pandas as pd + +np.random.seed(42) +epsilon = 1e-8 + +class Dataset: + def __init__(self, inverse=False): + filename = './Data/DataForThermoforming.xlsx' + self.df = pd.read_excel(filename, sheet_name='CFPEEK') + # remove rows by index + # self.df = self.df.drop([20, 48], axis=0) + self.df = self.df.drop([7, 78, 101, 129], axis=0) + + # normalize data + if inverse: + self.input_columns = ['Ply_Number', 'Fiber_Volume_Fractions', 'A1(abs)', 'B1(abs)', 'C1(abs)', 'Stress(Max) MPa'] + self.output_columns = ['Initial_Temp (degree celsius)', 'Punch_Velocity (mm/s)', 'Cooling_Time (s)'] + else: + self.input_columns = ['Ply_Number', 'Fiber_Volume_Fractions', 'Initial_Temp (degree celsius)', 'Punch_Velocity (mm/s)', 'Cooling_Time (s)'] + self.output_columns = ['A1(abs)', 'B1(abs)', 'C1(abs)', 'Stress(Max) MPa'] + + self.input_mean = self.df[self.input_columns].mean().to_numpy(dtype=np.float32) + self.input_std = self.df[self.input_columns].std().to_numpy(dtype=np.float32) + epsilon + self.output_mean = self.df[self.output_columns].mean().to_numpy(dtype=np.float32) + self.output_std = self.df[self.output_columns].std().to_numpy(dtype=np.float32) + epsilon + + + def get_input(self, normalize=False): + data = self.df[self.input_columns].to_numpy(dtype=np.float32) + if normalize: + data = self.normalize_input(data) + return data + + + def get_output(self, normalize=False): + data = self.df[self.output_columns].to_numpy(dtype=np.float32) + if normalize: + data = self.normalize_output(data) + return data + + def __str__(self): + return str(self.df.head()) + + def normalize_input(self, input_data): + return (input_data - self.input_mean) / self.input_std + + def normalize_output(self, output_data): + return (output_data - self.output_mean) / self.output_std + + def denormalize_input(self, normalized_input): + return normalized_input * self.input_std + self.input_mean + + def denormalize_output(self, normalized_output): + return normalized_output * self.output_std + self.output_mean + +if __name__ == "__main__": + dataset = Dataset() + + # Example usage + input_data = dataset.get_input(normalize=True) + output_data = dataset.get_output(normalize=True) + + print("Input shape:", input_data.shape) + print("Output shape:", output_data.shape) diff --git a/inverse_design_demo/README.md b/inverse_design_demo/README.md new file mode 100644 index 0000000000000000000000000000000000000000..b78fc00faae40bc47b7822a7b28e4d1f14d6ccbb --- /dev/null +++ b/inverse_design_demo/README.md @@ -0,0 +1,27 @@ +--- +title: Thermoforming inverse design +sdk: streamlit +emoji: 🚀 +colorFrom: red +colorTo: red +short_description: Thermoforming inverse design +--- +# 🏂 US Population Dashboard + +A dashboard web app template built in Python using Streamlit. + +## Demo App + +[![Streamlit App](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://population-dashboard.streamlit.app/) + +## Colab notebook +[![Colab Notebook](https://colab.research.google.com/assets/colab-badge.svg)](https://github.com/dataprofessor/population-dashboard/blob/master/US_Population.ipynb) + +## Prerequisite libraries +Here are the Python libraries used in the creation of this dashboard app + +## Data source +US Population data spanning the duration of 2010-2019 was obtained from the [U.S. Census Bureau](https://www.census.gov/data/datasets/time-series/demo/popest/2010s-state-total.html). + +## Reference +A talk entitled [_Crafting a Dashboard App in Python using Streamlit_](https://budapestbi.hu/2023/hu/program/speakers/chanin-nantasenamat/) showing how to build this app is given at the [Budapest BI Forum (Data Visualization track)](https://budapestbi.hu/2023/hu/en/program-data-visualization-track/) on November 22, 2023. \ No newline at end of file diff --git a/inverse_design_demo/app.py b/inverse_design_demo/app.py new file mode 100644 index 0000000000000000000000000000000000000000..cfa9902ed520d92f64924b76dfc540157656ffd9 --- /dev/null +++ b/inverse_design_demo/app.py @@ -0,0 +1,1168 @@ +####################### +# Import libraries +import streamlit as st +import pandas as pd +import altair as alt +# import plotly.express as px +from PIL import Image # Used to open and handle image files +import matplotlib +import matplotlib.pyplot as plt +import numpy as np +import os +import sys +import importlib.util +import time +import secrets +from typing import Optional + +from model_inverse import inverse_design + +# --- Backend wiring only (UI layout below remains unchanged) --- +# Use polynomial-conditioned hybrid diffusion model from: +# /project/luofeng/feiyang/MaterialGeneration/hybrid_diffusion_material_generation +APP_DIR = os.path.dirname(os.path.abspath(__file__)) +ROOT_DIR = os.path.abspath(os.path.join(APP_DIR, "..")) + +HYBRID_DIR = os.path.join(ROOT_DIR, "hybrid_diffusion_material_generation") +if HYBRID_DIR not in sys.path: + sys.path.insert(0, HYBRID_DIR) + +# For laminate simulation we reuse the validated implementation from: +# /project/luofeng/feiyang/MaterialGeneration/data_generation/hf_space_generation_ro/space_lib/simulate.py +# We load it by file path to avoid Python module-name collisions (both repos have a `models.py`). +_HF_SIMULATE_PY = os.path.join( + ROOT_DIR, + "data_generation", + "hf_space_generation_ro", + "space_lib", + "simulate.py", +) +_hf_sim_spec = importlib.util.spec_from_file_location("mg_hf_simulate", _HF_SIMULATE_PY) +_hf_sim_mod = importlib.util.module_from_spec(_hf_sim_spec) # type: ignore[arg-type] +assert _hf_sim_spec and _hf_sim_spec.loader +_hf_sim_spec.loader.exec_module(_hf_sim_mod) # type: ignore[union-attr] +simulate_instances = _hf_sim_mod.simulate_instances # type: ignore[attr-defined] +default_lam_dir = _hf_sim_mod.default_lam_dir # type: ignore[attr-defined] + +# These imports are intentionally localized to the backend; UI code stays as-is. +import torch # noqa: E402 + +from models import MaterialHybridDenoiser, ModelConfig # noqa: E402 +from train import ( # noqa: E402 + DiscreteMaskDiffusion, + GaussianDiffusion, + VF_CATEGORIES, + linear_beta_schedule, + sample as diffusion_sample, + vf_category_to_volume_fraction, +) + +####################### +# Page configuration +st.set_page_config( + page_title="Inverse Design of Thermoplastic Composites for Thermoforming", +# page_icon="🏂", + layout="wide", + initial_sidebar_state="collapsed") + +alt.themes.enable('default') + +####################### +# CSS styling + +st.markdown(""" + +""", unsafe_allow_html=True) + +st.markdown(""" + +""", unsafe_allow_html=True) + +st.markdown(""" + +""", unsafe_allow_html=True) + +st.markdown(""" + +""", unsafe_allow_html=True) + + +st.set_page_config(initial_sidebar_state="collapsed") + +st.markdown( + """ + +""", + unsafe_allow_html=True, +) + +####################### +font = {'size' : 18} + +matplotlib.rc('font', **font) + +####################### +if 'input_changed' not in st.session_state: + st.session_state.input_changed= False +def input_typed_in(): + st.session_state.input_changed= True + +if 'forming_input_changed' not in st.session_state: + st.session_state.forming_input_changed= False +def forming_typed_in(): + st.session_state.forming_input_changed= True + + + +if 'input_curve_button_clicked' not in st.session_state: + st.session_state.input_curve_button_clicked= False +def input_curve_click(): + st.session_state.input_curve_button_clicked = True + +if 'material_design_button_clicked' not in st.session_state: + st.session_state.material_design_button_clicked= False +def material_design_click(): + st.session_state.material_design_button_clicked = True + # allow repeated attempts: each click increments run id + st.session_state.material_design_run_id = int(st.session_state.get("material_design_run_id", 0)) + 1 + +if 'forming_input_button_clicked' not in st.session_state: + st.session_state.forming_input_button_clicked= False +def forming_input_click(): + st.session_state.forming_input_button_clicked = True + +if 'forming_design_button_clicked' not in st.session_state: + st.session_state.forming_design_button_clicked= False +def forming_design_click(): + st.session_state.forming_design_button_clicked = True + + + +####################### +# Load data +#df_reshaped = pd.read_csv('data/us-population-2010-2019-reshaped.csv') + +######## Initialize data ############# +E1aV=0 # initial longitudinal stiffness +E1bV=0 # 10% strain longitudinal stiffness +G12aV=0 # initial longitudinal stiffness +G12bV=0 # 10% strain longitudinal stiffness +nlayers=4 +vf=0.6 +angle=30 + +####################### +# Backend helpers (no UI changes) + +DEFAULT_CHECKPOINT_DIR = os.environ.get( + "MG_CHECKPOINT_DIR", + os.path.join( + ROOT_DIR, + "hybrid_diffusion_material_generation", + "checkpoints", + "config_1_continuous_100_epoch", + "exp_20260114_164540", + ), +) +DEFAULT_DATA_DIR = os.environ.get( + "MG_DATA_DIR", + os.path.join(ROOT_DIR, "data_generation", "processed_dataset", "config_1"), +) +DEFAULT_CURVE_DIR = os.environ.get( + "MG_CURVE_DIR", + os.path.join(ROOT_DIR, "data_generation", "shahriar_modified_2025_12", "RVE_Datasets"), +) + +CHECKPOINT_DIR = DEFAULT_CHECKPOINT_DIR +DATA_DIR = DEFAULT_DATA_DIR +CURVE_DIR = DEFAULT_CURVE_DIR +LAM_DIR = default_lam_dir() + +_device_env = (os.environ.get("MG_DEVICE") or "").strip().lower() +if os.environ.get("MG_FORCE_CPU", "").strip() in {"1", "true", "yes"}: + DEVICE = "cpu" +elif _device_env in {"cpu", "cuda"}: + DEVICE = _device_env +else: + DEVICE = "cuda" if torch.cuda.is_available() else "cpu" +print(f"[mg-demo] torch={torch.__version__} cuda_available={torch.cuda.is_available()} device={DEVICE}") +REMASK_PROB = 0.1 +NORMALIZATION_METHOD = os.environ.get("MG_NORMALIZATION_METHOD", "").strip().lower() or None + +MATERIAL_NAMES = ["CPP", "CHDPE", "GPP", "GHDPE"] +N_INPUT_POINTS = int(os.environ.get("MG_INPUT_POINTS", "10")) + + +def _seed_from_env() -> Optional[int]: + """ + If MG_DEMO_SEED (or MG_SEED) is set, we use it to make results repeatable. + """ + for k in ("MG_DEMO_SEED", "MG_SEED"): + v = os.environ.get(k) + if v is None or str(v).strip() == "": + continue + try: + return int(str(v).strip()) + except Exception: + raise ValueError(f"{k} must be an integer, got: {v!r}") + return None + + +def _get_demo_seed_if_match() -> Optional[int]: + """ + If the current inputs match one of the demo cases, return its fixed seed. + """ + def _matches(values: dict, tol: float = 1e-6) -> bool: + for key, expected in values.items(): + actual = st.session_state.get(key, None) + if actual is None: + return False + if abs(float(actual) - float(expected)) > tol: + return False + return True + + demo_cases = [ + ( + { + "E1a": 22500, "E1b": 22500, "S1b": 2250, + "E2a": 37500, "E2b": 37500, "S2b": 3750, + "G12a": 16000, "G12b": 16200, "S12b": 1610, + "v12a": 0.20, "v12b": 0.21, + "v21a": 0.40, "v21b": 0.41, + }, + 547238375, + ), + ( + { + "E1a": 7300, "E1b": -1000, "S1b": 150, + "E2a": 1400, "E2b": 10, "S2b": 58, + "G12a": 8000, "G12b": 4000, "S12b": 640, + "v12a": 0.80, "v12b": 7.50, + "v21a": 0.38, "v21b": 0.40, + }, + 1520908510, + ), + ( + { + "E1a": 5000, "E1b": 4000, "S1b": 480, + "E2a": 1400, "E2b": 400, "S2b": 103, + "G12a": 2600, "G12b": 1700, "S12b": 168, + "v12a": 0.55, "v12b": 1.20, + "v21a": 0.19, "v21b": 0.17, + }, + 1288865411, + ), + ] + + for values, seed in demo_cases: + if _matches(values): + return int(seed) + return None + + +def _get_run_seed() -> tuple[int, str]: + """ + Returns (seed, mode). + - demo: fixed seed from env (replicable) + - attempt: random seed each run + """ + demo_seed = _get_demo_seed_if_match() + if demo_seed is not None: + return int(demo_seed), "demo" + fixed = _seed_from_env() + if fixed is not None: + return int(fixed), "demo" + return int(secrets.randbelow(2**31 - 1)), "attempt" + + +def _apply_global_seed(seed: int) -> None: + seed = int(seed) + # Make results deterministic across CPU/GPU when possible. + os.environ.setdefault("CUBLAS_WORKSPACE_CONFIG", ":4096:8") + torch.use_deterministic_algorithms(True) + torch.backends.cudnn.deterministic = True + torch.backends.cudnn.benchmark = False + np.random.seed(seed) + torch.manual_seed(seed) + if torch.cuda.is_available(): + torch.cuda.manual_seed_all(seed) + + +def _apply_axes_padding(ax, x_min: float, x_max: float, y_min: float, y_max: float, pad_frac: float = 0.06): + """ + Add a little space around data bounds so plots don't look clipped. + Never disables axes. + """ + x_min = float(x_min) + x_max = float(x_max) + y_min = float(y_min) + y_max = float(y_max) + + if not np.isfinite(x_min) or not np.isfinite(x_max) or x_max <= x_min: + return + if not np.isfinite(y_min) or not np.isfinite(y_max) or y_max <= y_min: + return + + dx = (x_max - x_min) * float(pad_frac) + dy = (y_max - y_min) * float(pad_frac) + ax.set_xlim(x_min - dx, x_max + dx) + ax.set_ylim(y_min - dy, y_max + dy) + + +def _apply_axes_padding_from_series(ax, xs: list[np.ndarray], ys: list[np.ndarray], pad_frac: float = 0.06): + x_all = np.concatenate([np.asarray(x, dtype=np.float32).reshape(-1) for x in xs if x is not None]) if xs else None + y_all = np.concatenate([np.asarray(y, dtype=np.float32).reshape(-1) for y in ys if y is not None]) if ys else None + if x_all is None or y_all is None or x_all.size == 0 or y_all.size == 0: + return + _apply_axes_padding( + ax, + float(np.min(x_all)), + float(np.max(x_all)), + float(np.min(y_all)), + float(np.max(y_all)), + pad_frac=pad_frac, + ) + + +def _poly_eval_no_intercept(coeffs_row: np.ndarray, x: np.ndarray) -> np.ndarray: + """ + Evaluate no-intercept polynomial with coeffs in np.polyval order [x^d..x^1]. + """ + coeffs_with_zero = np.append(np.asarray(coeffs_row, dtype=np.float32), 0.0) + return np.polyval(coeffs_with_zero, np.asarray(x, dtype=np.float32)) + + +def _extract_json_value_prefix(text: str, key: str) -> str: + """ + Extract the JSON value for a top-level key from a prefix of metadata.json. + Supports numbers and arrays. + """ + key_pat = f"\"{key}\"" + i = text.find(key_pat) + if i < 0: + raise KeyError(f"Key '{key}' not found in metadata prefix") + j = text.find(":", i) + if j < 0: + raise ValueError(f"Malformed JSON near key '{key}'") + k = j + 1 + while k < len(text) and text[k] in " \t\r\n": + k += 1 + if k >= len(text): + raise ValueError(f"Truncated JSON near key '{key}'") + if text[k] == "[": + # bracket matching + depth = 0 + end = k + while end < len(text): + ch = text[end] + if ch == "[": + depth += 1 + elif ch == "]": + depth -= 1 + if depth == 0: + return text[k : end + 1] + end += 1 + raise ValueError(f"Truncated array for key '{key}' (increase prefix read)") + # number/bool/string: read to comma/newline/} + end = k + while end < len(text) and text[end] not in ",\n\r}": + end += 1 + return text[k:end].strip() + + +@st.cache_resource(show_spinner=False) +def _load_poly_metadata_small(data_dir: str) -> dict: + """ + metadata.json in processed_dataset can be huge; we only need a few scalar/array fields. + We read a prefix and parse those fields only. + """ + import json + + meta_path = os.path.join(str(data_dir), "metadata.json") + if not os.path.exists(meta_path): + raise FileNotFoundError(f"metadata.json not found in {data_dir}") + + # These keys live very early in the file (per grep): keep this small for Streamlit responsiveness. + keys = [ + "coefficient_min", + "coefficient_max", + "coefficient_mean", + "coefficient_std", + "polynomial_degree", + "angle_min", + "angle_max", + ] + + prefix_bytes = 256_000 + with open(meta_path, "r") as f: + prefix = f.read(prefix_bytes) + + out = {} + for k in keys: + raw = _extract_json_value_prefix(prefix, k) + # json.loads handles arrays and numeric scalars (including scientific notation) + out[k] = json.loads(raw) + return out + + +@st.cache_resource(show_spinner=False) +def _load_model_bundle_poly(checkpoint_dir: str, device: str): + """ + Load polynomial-conditioned diffusion model from hybrid_diffusion_material_generation checkpoint dir. + Returns dict: model, diffusion processes, training_cfg. + """ + import json + + ckpt_dir = str(checkpoint_dir) + cfg_path = os.path.join(ckpt_dir, "training_config.json") + with open(cfg_path, "r") as f: + training_cfg = json.load(f) + + use_discrete_angles = bool(training_cfg.get("use_discrete_angles", True)) + model_cfg = ModelConfig(**training_cfg["model_config"]) + mask_ids = dict(training_cfg.get("mask_ids", {})) + + # Load checkpoint (prefer best_model.pt) + ckpt_path = os.path.join(ckpt_dir, "best_model.pt") + # PyTorch 2.6+ defaults weights_only=True, which can reject custom classes. + # We trust this checkpoint, so load with weights_only=False. + ckpt = torch.load(ckpt_path, map_location="cpu", weights_only=False) + state_dict = ckpt["model_state_dict"] if isinstance(ckpt, dict) and "model_state_dict" in ckpt else ckpt + + # Discrete-angles only: determine n_angle_categories from metadata (not needed for continuous) + n_angle_categories = int(training_cfg.get("n_angle_categories", 7)) + + model = MaterialHybridDenoiser( + model_cfg, + mask_ids=mask_ids, + use_discrete_angles=use_discrete_angles, + n_angle_categories=n_angle_categories, + ).to(device) + model.load_state_dict(state_dict, strict=True) + model.eval() + + T = int(training_cfg.get("T", 100)) + beta_start = float(training_cfg.get("beta_start", 1e-4)) + beta_end = float(training_cfg.get("beta_end", 2e-2)) + betas = linear_beta_schedule(T, beta_start=beta_start, beta_end=beta_end, device=str(device)) + + disc_diff_mat = DiscreteMaskDiffusion(vocab_size=int(model_cfg.n_materials), mask_id=int(mask_ids["material"]), T=T, betas=betas) + disc_diff_vf = DiscreteMaskDiffusion(vocab_size=int(model_cfg.n_vf_categories), mask_id=int(mask_ids["vf_category"]), T=T, betas=betas) + disc_diff_layer = DiscreteMaskDiffusion(vocab_size=2, mask_id=int(mask_ids["layer"]), T=T, betas=betas) + + if use_discrete_angles: + # Not expected for this checkpoint, but keep compatible. + # Vocab includes dead category, so +1. + disc_diff_angle = DiscreteMaskDiffusion(vocab_size=int(n_angle_categories + 1), mask_id=int(mask_ids["angle"]), T=T, betas=betas) + cont_diff = None + else: + disc_diff_angle = None + cont_diff = GaussianDiffusion(T=T, betas=betas) + + return { + "training_cfg": training_cfg, + "model": model, + "disc_diff_mat": disc_diff_mat, + "disc_diff_vf": disc_diff_vf, + "disc_diff_layer": disc_diff_layer, + "disc_diff_angle": disc_diff_angle, + "cont_diff": cont_diff, + "mask_ids": mask_ids, + "use_discrete_angles": use_discrete_angles, + } + + +def _polyfit_no_intercept(x: np.ndarray, y: np.ndarray, degree: int) -> np.ndarray: + """ + Fit y ≈ sum_{k=1..degree} c_k * x^k (no intercept). + Returns coeffs in numpy.polyval order: [x^degree, ..., x^1] with length=degree. + """ + x = np.asarray(x, dtype=np.float32).reshape(-1) + y = np.asarray(y, dtype=np.float32).reshape(-1) + if x.size < 4 or y.size != x.size: + raise ValueError("Not enough points for polynomial fit") + vander = np.vander(x, int(degree) + 1, increasing=False)[:, :-1] # drop constant + coeffs, *_ = np.linalg.lstsq(vander, y, rcond=None) + return coeffs.astype(np.float32) + + +def _normalize_poly_coeffs(coeffs_5_by_deg: np.ndarray, metadata: dict, normalize_method: str) -> np.ndarray: + coeffs_flat = np.asarray(coeffs_5_by_deg, dtype=np.float32).flatten() + method = (normalize_method or "minmax").lower() + if method == "minmax": + mn = np.asarray(metadata["coefficient_min"], dtype=np.float32) + mx = np.asarray(metadata["coefficient_max"], dtype=np.float32) + rng = mx - mn + rng = np.where(rng == 0, 1.0, rng) + return ((coeffs_flat - mn) / rng).astype(np.float32) + if method == "zscore": + mu = np.asarray(metadata["coefficient_mean"], dtype=np.float32) + sd = np.asarray(metadata["coefficient_std"], dtype=np.float32) + sd = np.where(sd == 0, 1.0, sd) + return ((coeffs_flat - mu) / sd).astype(np.float32) + raise ValueError(f"Unknown normalization_method: {normalize_method}") + + +def _mat_type_to_matrix_fiber(mat_type: str) -> tuple[str, str]: + """ + Model emits: CPP / GPP / CHDPE / GHDPE. + We map: + - leading C/G -> Carbon / Glass fiber + - suffix PP/HDPE -> matrix + """ + mt = (mat_type or "").upper().strip() + fiber = "Carbon" if mt.startswith("C") else ("Glass" if mt.startswith("G") else mt[:1]) + matrix = "HDPE" if mt.endswith("HDPE") else ("PP" if mt.endswith("PP") else mt[1:]) + return matrix, fiber + + +def _run_inverse_design_from_required_curves() -> dict: + """ + Uses curves cached in st.session_state (from 'Generate required stress-strain curves') + to run the diffusion generator and a single simulation instance. + Returns dict with predicted materials, vf, full_angles, and simulation curves. + """ + if "required_curves" not in st.session_state: + raise RuntimeError("Required curves not found. Please click 'Generate required stress-strain curves' first.") + + metadata = _load_poly_metadata_small(DATA_DIR) + bundle = _load_model_bundle_poly(CHECKPOINT_DIR, device=DEVICE) + training_cfg = bundle["training_cfg"] + degree = int(metadata.get("polynomial_degree", 3)) + normalize_method = (NORMALIZATION_METHOD or training_cfg.get("normalization_method") or "minmax") + + seed, seed_mode = _get_run_seed() + _apply_global_seed(seed) + + curves = st.session_state.required_curves + coeffs_list = [] + coeffs_list.append(_polyfit_no_intercept(curves["eps11"], curves["sig11_mpa"], degree)) + coeffs_list.append(_polyfit_no_intercept(curves["eps11"], curves["eps22_from_eps11"], degree)) + coeffs_list.append(_polyfit_no_intercept(curves["eps22"], curves["sig22_mpa"], degree)) + coeffs_list.append(_polyfit_no_intercept(curves["eps22"], curves["eps11_from_eps22"], degree)) + coeffs_list.append(_polyfit_no_intercept(curves["eps12"], curves["sig12_mpa"], degree)) + cond_coeffs_5_by_deg = np.stack(coeffs_list, axis=0).astype(np.float32) # (5, degree) + cond_norm = _normalize_poly_coeffs(cond_coeffs_5_by_deg, metadata, normalize_method) + + cond_t = torch.tensor(cond_norm, dtype=torch.float32, device=DEVICE).view(1, -1) + out = diffusion_sample( + model=bundle["model"], + disc_diff_mat=bundle["disc_diff_mat"], + disc_diff_vf_category=bundle["disc_diff_vf"], + disc_diff_layer=bundle["disc_diff_layer"], + disc_diff_angle=bundle["disc_diff_angle"], + cont_diff=bundle["cont_diff"], + cond=cond_t, + mask_ids=bundle["mask_ids"], + device=DEVICE, + remask_prob=float(REMASK_PROB), + use_discrete_angles=bundle["use_discrete_angles"], + ) + + # Decode generated design + mat_idx = int(out["material_t"].item()) + mat_type = MATERIAL_NAMES[mat_idx] if 0 <= mat_idx < len(MATERIAL_NAMES) else f"MAT{mat_idx}" + vf_cat = int(out["vf_category_t"].item()) + vf_pred = float(vf_category_to_volume_fraction(vf_cat)) + # Use layer mask to select alive layers; handle both continuous and discrete angle outputs. + layer_t = out["layer_t"] + angle_t = out["angle_t"] + if layer_t is None or angle_t is None: + raise RuntimeError( + f"Diffusion sample returned None tensors: layer_t={layer_t}, angle_t={angle_t}" + ) + if torch.is_tensor(layer_t): + layer_np = layer_t.detach().cpu().numpy() + else: + layer_np = np.asarray(layer_t) + if torch.is_tensor(angle_t): + angle_np = angle_t.detach().cpu().numpy() + else: + angle_np = np.asarray(angle_t) + + if layer_np.ndim == 1: + layer_mask = layer_np.astype(np.int64) + else: + layer_mask = layer_np[0].astype(np.int64) + + if angle_np.ndim == 3: + angle_vals = angle_np[0] # (L,1) + elif angle_np.ndim == 2: + angle_vals = angle_np[0].reshape(-1, 1) # (L,1) + if bundle["use_discrete_angles"]: + ang_min = float(metadata.get("angle_min", 0.0)) + ang_max = float(metadata.get("angle_max", 90.0)) + ang_res = float(metadata.get("angle_resolution", 1.0)) + n_cats = int(round((ang_max - ang_min) / ang_res)) + 1 + categories = np.linspace(ang_min, ang_max, n_cats, dtype=np.float32) + idx = np.clip(angle_vals.astype(np.int64).reshape(-1), 0, len(categories) - 1) + angle_vals = np.deg2rad(categories[idx]).reshape(-1, 1) + else: + raise RuntimeError(f"Unexpected angle_t shape: {angle_np.shape}") + + min_len = min(len(layer_mask), angle_vals.shape[0]) + layer_mask = layer_mask[:min_len] + angle_vals = angle_vals[:min_len] + alive_mask = layer_mask == 1 + upper_angles = np.rad2deg(angle_vals[alive_mask, 0]).astype(np.float32).tolist() + # Clip angles to metadata range + ang_min = float(metadata.get("angle_min", 0.0)) + ang_max = float(metadata.get("angle_max", 90.0)) + upper_angles = [min(max(float(a), ang_min), ang_max) for a in upper_angles] + + # Print run settings to server log for "attempt mode" record-keeping (no UI changes). + try: + run_id = int(st.session_state.get("material_design_run_id", 0)) + except Exception: + run_id = 0 + print( + "\n".join( + [ + "=== Material Inverse Design run ===", + f"time: {time.strftime('%Y-%m-%d %H:%M:%S')}", + f"run_id: {run_id}", + f"seed_mode: {seed_mode}", + f"seed: {seed}", + f"checkpoint_dir: {CHECKPOINT_DIR}", + f"data_dir: {DATA_DIR}", + f"curve_dir: {CURVE_DIR}", + f"normalization_method: {normalize_method}", + f"poly_degree: {degree}", + f"pred_mat_type: {mat_type}", + f"pred_vf: {vf_pred:.6f}", + f"pred_upper_angles_deg: {sorted([float(a) for a in upper_angles])}", + ] + ) + ) + + # Simulate 3 instances (as before) + sim_by_instance = simulate_instances( + curve_dir=CURVE_DIR, + lam_dir=LAM_DIR, + mat_type=mat_type, + vf=float(vf_pred), + upper_angles=upper_angles, + instances=[1, 2, 3], + # Match previous behavior: sparse sim points, then we plot polynomial fits (no connecting lines). + num_output_points=10, + ) + + matrix, fiber = _mat_type_to_matrix_fiber(mat_type) + upper_sorted = sorted([float(a) for a in upper_angles]) + full_angles = upper_sorted + [-a for a in reversed(upper_sorted)] + + return { + "seed": int(seed), + "seed_mode": str(seed_mode), + "run_id": int(run_id), + "mat_type": mat_type, + "matrix": matrix, + "fiber": fiber, + "vf": float(vf_pred), + "upper_angles": upper_angles, + "full_angles": full_angles, + "simulations_by_instance": sim_by_instance, + "degree": int(degree), + "cond_coeffs_5_by_deg": cond_coeffs_5_by_deg, + } + +####################### +# Main Panel + +data_materials={ + 'Matrix':['ABS','Polyurethane','Nylon 6','Nylon 6','Nylon 66','PE','PP'], + 'Filler':['Carbon Black','Glass Fiber','Glass Fiber','Carbon Fiber','Glass Fiber','Carbon Fiber','Glass Fiber'], + 'VF':['15%','20%','20%','40%','30%','20%','30%'], + 'Feature':['Blend','Extruded','Molded','Molded','Molded','Molded','Molded'] + } + +data_physical = { + 'Forming T (C)': ['180', '185', '190'], + 'Punch V (m/s)': ['1.05', '1.8','1.67'], + 'Cooling time (s)': ['45','80','120'], + 'Holding force (kN)': ['23','24','25'] + } + +st.title("Inverse Design of Thermoplastic Composites for Thermoforming") +st.write("") +st.write("") +st.write("") +st.write(r"$\textsf{\textbf{\Large Material Design Requirements}}$") +#st.text_input(r"$\textsf{\textbf{\Large Material Design Requirements}}$") + +# First row with 5 columns +col1_row1, col2_row1, col3_row1, col4_row1, col5_row1= st.columns([0.25,0.25,0.25,0.25,0.25]) +with col1_row1: + with st.container(border=False): # Container with a border + E1aV= st.number_input("Initial x-stiffness (MPa):", value=2000.00, format="%.2f", width=250, key="E1a", on_change=input_typed_in) + E1bV= st.number_input("10% strain x-stiffness (MPa):", value=1000.00, format="%.2f", width=250, key="E1b", on_change=input_typed_in) + S1bV= st.number_input("10% strain x-stress (MPa):", value=1000.00, format="%.2f", width=250, key="S1b", on_change=input_typed_in) + +with col2_row1: + with st.container(border=False): # Container with a border + E2aV= st.number_input("Initial y-stiffness (MPa):", value=2000.00, format="%.2f", width=250, key="E2a", on_change=input_typed_in) + E2bV= st.number_input("10% strain y-stiffness (MPa):", value=1000.00, format="%.2f", width=250, key="E2b", on_change=input_typed_in) + S2bV= st.number_input("10% strain y-stress (MPa):", value=1000.00, format="%.2f", width=250, key="S2b", on_change=input_typed_in) + + +with col3_row1: + with st.container(border=False): # Container with a border + G12aV= st.number_input("Initial shear stiffness (MPa):", value=1800.00, format="%.2f", width=250, key="G12a", on_change=input_typed_in) + G12bV= st.number_input("0.1 shear strain stiffness (MPa):", value=1000.00, format="%.2f", width=250, key="G12b", on_change=input_typed_in) + S12bV= st.number_input("10% strain shear stress (MPa):", value=1000.00, format="%.2f", width=250, key="S12b", on_change=input_typed_in) + +with col4_row1: + with st.container(border=False): # Container with a border + v12aV= st.number_input("Initial Poisson's ratio (vxy):", value=0.3, format="%.2f", width=250, key="v12a", on_change=input_typed_in) + v12bV= st.number_input("0.1 strain Poisson's ratio (vxy):", value=0.4, format="%.2f", width=250, key="v12b", on_change=input_typed_in) + + +with col5_row1: + with st.container(border=False): # Container with a border + v21aV= st.number_input("Initial Poisson's ratio (vyx):", value=0.3, format="%.2f", width=250, key="v21a", on_change=input_typed_in) + v21bV= st.number_input("0.1 strain Poisson's ratio (vyx):", value=0.4, format="%.2f", width=250, key="v21b", on_change=input_typed_in) + + + +st.write("") +if st.session_state.input_changed == True: + st.session_state.input_curve_button_clicked = False + st.session_state.material_design_button_clicked = False + st.session_state.forming_input_button_clicked = False + st.session_state.forming_design_button_clicked = False + # Invalidate cached downstream artifacts when inputs change + if "required_curves" in st.session_state: + del st.session_state["required_curves"] + if "inverse_design_result" in st.session_state: + del st.session_state["inverse_design_result"] + if "material_design_last_run_id" in st.session_state: + del st.session_state["material_design_last_run_id"] + st.session_state.input_changed = False + +st.button("Generate required stress-strain curves", use_container_width=True, on_click=input_curve_click) + +if st.session_state.input_curve_button_clicked == True: + #st.write(E1aV) + #st.write(E1bV) + n_pts = int(max(4, N_INPUT_POINTS)) + x = np.linspace(0, 0.1, n_pts) + A = np.array([[0.2, 0.03], [0.01, 0.001]]) + b = np.array([E1bV-E1aV, S1bV-E1aV*0.1]) + a = np.linalg.solve(A, b) + y1= E1aV*x + a[0]*x**2 + a[1]*x**3 + b = np.array([E2bV-E2aV, S2bV-E2aV*0.1]) + a = np.linalg.solve(A, b) + y2= E2aV*x + a[0]*x**2 + a[1]*x**3 + b = np.array([G12bV-G12aV, S12bV-G12aV*0.1]) + a = np.linalg.solve(A, b) + y3= G12aV*x + a[0]*x**2 + a[1]*x**3 + + y4 = v12aV*x + (v12bV - v12aV)/0.2*x*x + y5 = v21aV*x + (v21bV - v21aV)/0.2*x*x + + # Cache required curves for inverse design (model conditioning) + st.session_state.required_curves = { + "eps11": x.astype(np.float32), + "sig11_mpa": y1.astype(np.float32), + "eps22": x.astype(np.float32), + "sig22_mpa": y2.astype(np.float32), + "eps12": x.astype(np.float32), + "sig12_mpa": y3.astype(np.float32), + "eps22_from_eps11": (-y4).astype(np.float32), + "eps11_from_eps22": (-y5).astype(np.float32), + } + # New curves -> invalidate any previous inverse-design result + if "inverse_design_result" in st.session_state: + del st.session_state["inverse_design_result"] + + + #ylimit=np.max([np.max(y1),np.max(y2), np.max(y3)]) + # 2nd row with 3 columns + col1_row2, col2_row2, col3_row2, col4_row2, col5_row2= st.columns([0.2,0.2,0.2,0.2,0.2]) + with col1_row2: + with st.container(border=False): # Container with a border + fig, ax = plt.subplots() + ax.plot(x, y1) + #ax.set_ylim([0, ylimit]) + ax.set_ylabel('Stress (MPa)') + ax.set_xlabel('Strain') + ax.set_title('Longitudinal stress-strain (xx)') + st.pyplot(fig) + with col2_row2: + with st.container(border=False): # Container with a border + fig, ax = plt.subplots() + ax.plot(x, y2) + #ax.set_ylim([0, ylimit]) + ax.set_ylabel('Stress (MPa)') + ax.set_xlabel('Strain') + ax.set_title('Transverse stress-strain (yy)') + st.pyplot(fig) + with col3_row2: + with st.container(border=False): # Container with a border + fig, ax = plt.subplots() + ax.plot(x, y3) + #ax.set_ylim([0, ylimit]) + ax.set_ylabel('Stress (MPa)') + ax.set_xlabel('Strain') + ax.set_title('Shear stress-strain (xy') + st.pyplot(fig) + with col4_row2: + with st.container(border=False): # Container with a border + fig, ax = plt.subplots() + ax.plot(x, -y4) + #ax.set_ylim([-0.05, 0]) + ax.set_xlabel('Strain xx') + ax.set_ylabel('Strain yy') + ax.set_title('Strain ratio with stress xx') + st.pyplot(fig) + with col5_row2: + with st.container(border=False): # Container with a border + fig, ax = plt.subplots() + ax.plot(x, -y5) + #ax.set_ylim([-0.05, 0]) + ax.set_xlabel('Strain yy') + ax.set_ylabel('Strain xx') + ax.set_title('Strain ratio with stress yy') + st.pyplot(fig) + + st.write("") + st.button("Material Inverse Design", use_container_width=True, on_click=material_design_click) + if st.session_state.material_design_button_clicked == True: + # Run model + simulation once per click (attempt mode supports repeated runs) + current_run_id = int(st.session_state.get("material_design_run_id", 0)) + last_run_id = int(st.session_state.get("material_design_last_run_id", -1)) + if ("inverse_design_result" not in st.session_state) or (current_run_id != last_run_id): + with st.spinner("Running inverse design model + simulation..."): + st.session_state.inverse_design_result = _run_inverse_design_from_required_curves() + st.session_state.material_design_last_run_id = current_run_id + res = st.session_state.inverse_design_result + + # 3rd row with 3 columns + col1_row3, col2_row3, col3_row3, col4_row3, col5_row3= st.columns([0.15,0.15,0.23,0.23,0.23]) + with col1_row3: + with st.container(border=False): # Container with a border + st.write("Matrix material = ", res["matrix"]) + st.write("Fiber material = ", res["fiber"]) + + with col2_row3: + with st.container(border=False): # Container with a border + st.write("Number of layers =", int(len(res["full_angles"]))) + st.write("Volume fraction =", f"{float(res['vf']):.3f}") + + with col3_row3: + with st.container(border=False): # Container with a border + df = pd.DataFrame({'Ply': [], 'Orientation': []}) + plies = np.array([[i + 1, float(a)] for i, a in enumerate(res["full_angles"])], dtype=object) + plies_df=pd.DataFrame(plies, columns=df.columns) + df = pd.concat([df, plies_df], ignore_index=True) + st.dataframe(df, hide_index=True) + + + # 3.5rd row with 3 columns + col1_row35, col2_row35, col3_row35, col4_row35, col5_row35= st.columns([0.2,0.2,0.2,0.2,0.2]) + + # Plot condition + simulations overlays in required order (left -> right) + # - Condition: show sampled points + polynomial fit (black) + # - Simulations: show simulation points (no connecting lines) + polynomial fit for each instance + sims_by_inst = res["simulations_by_instance"] + cond = st.session_state.get("required_curves", None) + colors = ["C0", "C1", "C2", "C3", "C4"] + degree = int(res.get("degree", 3)) + cond_coeffs = res.get("cond_coeffs_5_by_deg", None) + x_fit = np.linspace(0.0, 0.1, 200, dtype=np.float32) + fig1, ax1 = plt.subplots() + if cond is not None: + ax1.scatter(cond["eps11"], cond["sig11_mpa"], color="k", s=18, alpha=0.7, label="Cond samples") + if cond_coeffs is not None: + ax1.plot(x_fit, _poly_eval_no_intercept(cond_coeffs[0], x_fit), color="k", linewidth=2, label="Cond fit") + for idx, inst in enumerate(sorted(sims_by_inst.keys())): + sim = sims_by_inst[inst]["11"] + ax1.scatter(sim["strain"], sim["stress"], color=colors[idx % len(colors)], s=22, alpha=0.85, label=f"Sim inst{inst}") + try: + c = _polyfit_no_intercept(sim["strain"], sim["stress"], degree) + ax1.plot(x_fit, _poly_eval_no_intercept(c, x_fit), color=colors[idx % len(colors)], linewidth=2, alpha=0.9, label="_nolegend_") + except Exception: + pass + ax1.set_xlabel("eps_11") + ax1.set_ylabel("sig_11 (MPa)") + ax1.set_title("sig_11 vs eps_11") + ax1.grid(True, alpha=0.25) + ax1.legend(fontsize=11, loc="best") + _apply_axes_padding_from_series( + ax1, + [cond["eps11"]] + [sims_by_inst[i]["11"]["strain"] for i in sorted(sims_by_inst.keys())] if cond is not None else [sims_by_inst[i]["11"]["strain"] for i in sorted(sims_by_inst.keys())], + [cond["sig11_mpa"]] + [sims_by_inst[i]["11"]["stress"] for i in sorted(sims_by_inst.keys())] if cond is not None else [sims_by_inst[i]["11"]["stress"] for i in sorted(sims_by_inst.keys())], + pad_frac=0.05, + ) + + fig2, ax2 = plt.subplots() + if cond is not None: + ax2.scatter(cond["eps22"], cond["sig22_mpa"], color="k", s=18, alpha=0.7, label="Cond samples") + if cond_coeffs is not None: + ax2.plot(x_fit, _poly_eval_no_intercept(cond_coeffs[2], x_fit), color="k", linewidth=2, label="Cond fit") + for idx, inst in enumerate(sorted(sims_by_inst.keys())): + sim = sims_by_inst[inst]["22"] + ax2.scatter(sim["strain"], sim["stress"], color=colors[idx % len(colors)], s=22, alpha=0.85, label=f"Sim inst{inst}") + try: + c = _polyfit_no_intercept(sim["strain"], sim["stress"], degree) + ax2.plot(x_fit, _poly_eval_no_intercept(c, x_fit), color=colors[idx % len(colors)], linewidth=2, alpha=0.9, label="_nolegend_") + except Exception: + pass + ax2.set_xlabel("eps_22") + ax2.set_ylabel("sig_22 (MPa)") + ax2.set_title("sig_22 vs eps_22") + ax2.grid(True, alpha=0.25) + ax2.legend(fontsize=11, loc="best") + _apply_axes_padding_from_series( + ax2, + [cond["eps22"]] + [sims_by_inst[i]["22"]["strain"] for i in sorted(sims_by_inst.keys())] if cond is not None else [sims_by_inst[i]["22"]["strain"] for i in sorted(sims_by_inst.keys())], + [cond["sig22_mpa"]] + [sims_by_inst[i]["22"]["stress"] for i in sorted(sims_by_inst.keys())] if cond is not None else [sims_by_inst[i]["22"]["stress"] for i in sorted(sims_by_inst.keys())], + pad_frac=0.05, + ) + + fig3, ax3 = plt.subplots() + if cond is not None: + ax3.scatter(cond["eps12"], cond["sig12_mpa"], color="k", s=18, alpha=0.7, label="Cond samples") + if cond_coeffs is not None: + ax3.plot(x_fit, _poly_eval_no_intercept(cond_coeffs[4], x_fit), color="k", linewidth=2, label="Cond fit") + for idx, inst in enumerate(sorted(sims_by_inst.keys())): + sim = sims_by_inst[inst]["12"] + ax3.scatter(sim["strain"], sim["stress"], color=colors[idx % len(colors)], s=22, alpha=0.85, label=f"Sim inst{inst}") + try: + c = _polyfit_no_intercept(sim["strain"], sim["stress"], degree) + ax3.plot(x_fit, _poly_eval_no_intercept(c, x_fit), color=colors[idx % len(colors)], linewidth=2, alpha=0.9, label="_nolegend_") + except Exception: + pass + ax3.set_xlabel("eps_12") + ax3.set_ylabel("sig_12 (MPa)") + ax3.set_title("sig_12 vs eps_12") + ax3.grid(True, alpha=0.25) + ax3.legend(fontsize=11, loc="best") + _apply_axes_padding_from_series( + ax3, + [cond["eps12"]] + [sims_by_inst[i]["12"]["strain"] for i in sorted(sims_by_inst.keys())] if cond is not None else [sims_by_inst[i]["12"]["strain"] for i in sorted(sims_by_inst.keys())], + [cond["sig12_mpa"]] + [sims_by_inst[i]["12"]["stress"] for i in sorted(sims_by_inst.keys())] if cond is not None else [sims_by_inst[i]["12"]["stress"] for i in sorted(sims_by_inst.keys())], + pad_frac=0.05, + ) + + fig4, ax4 = plt.subplots() + if cond is not None: + ax4.scatter(cond["eps11"], cond["eps22_from_eps11"], color="k", s=18, alpha=0.7, label="Cond samples") + if cond_coeffs is not None: + ax4.plot(x_fit, _poly_eval_no_intercept(cond_coeffs[1], x_fit), color="k", linewidth=2, label="Cond fit") + for idx, inst in enumerate(sorted(sims_by_inst.keys())): + sim = sims_by_inst[inst]["11"] + ax4.scatter(sim["strain"], sim["lateral"], color=colors[idx % len(colors)], s=22, alpha=0.85, label=f"Sim inst{inst}") + try: + c = _polyfit_no_intercept(sim["strain"], sim["lateral"], degree) + ax4.plot(x_fit, _poly_eval_no_intercept(c, x_fit), color=colors[idx % len(colors)], linewidth=2, alpha=0.9, label="_nolegend_") + except Exception: + pass + ax4.set_xlabel("eps_11") + ax4.set_ylabel("eps_22") + ax4.set_title("eps_22 vs eps_11") + ax4.grid(True, alpha=0.25) + ax4.legend(fontsize=11, loc="best") + _apply_axes_padding_from_series( + ax4, + [cond["eps11"]] + [sims_by_inst[i]["11"]["strain"] for i in sorted(sims_by_inst.keys())] if cond is not None else [sims_by_inst[i]["11"]["strain"] for i in sorted(sims_by_inst.keys())], + [cond["eps22_from_eps11"]] + [sims_by_inst[i]["11"]["lateral"] for i in sorted(sims_by_inst.keys())] if cond is not None else [sims_by_inst[i]["11"]["lateral"] for i in sorted(sims_by_inst.keys())], + pad_frac=0.06, + ) + + fig5, ax5 = plt.subplots() + if cond is not None: + ax5.scatter(cond["eps22"], cond["eps11_from_eps22"], color="k", s=18, alpha=0.7, label="Cond samples") + if cond_coeffs is not None: + ax5.plot(x_fit, _poly_eval_no_intercept(cond_coeffs[3], x_fit), color="k", linewidth=2, label="Cond fit") + for idx, inst in enumerate(sorted(sims_by_inst.keys())): + sim = sims_by_inst[inst]["22"] + ax5.scatter(sim["strain"], sim["lateral"], color=colors[idx % len(colors)], s=22, alpha=0.85, label=f"Sim inst{inst}") + try: + c = _polyfit_no_intercept(sim["strain"], sim["lateral"], degree) + ax5.plot(x_fit, _poly_eval_no_intercept(c, x_fit), color=colors[idx % len(colors)], linewidth=2, alpha=0.9, label="_nolegend_") + except Exception: + pass + ax5.set_xlabel("eps_22") + ax5.set_ylabel("eps_11") + ax5.set_title("eps_11 vs eps_22") + ax5.grid(True, alpha=0.25) + ax5.legend(fontsize=11, loc="best") + _apply_axes_padding_from_series( + ax5, + [cond["eps22"]] + [sims_by_inst[i]["22"]["strain"] for i in sorted(sims_by_inst.keys())] if cond is not None else [sims_by_inst[i]["22"]["strain"] for i in sorted(sims_by_inst.keys())], + [cond["eps11_from_eps22"]] + [sims_by_inst[i]["22"]["lateral"] for i in sorted(sims_by_inst.keys())] if cond is not None else [sims_by_inst[i]["22"]["lateral"] for i in sorted(sims_by_inst.keys())], + pad_frac=0.06, + ) + + with col1_row35: + with st.container(border=False): # Container with a border + st.pyplot(fig1) + + with col2_row35: + with st.container(border=False): # Container with a border + st.pyplot(fig2) + + with col3_row35: + with st.container(border=False): # Container with a border + st.pyplot(fig3) + + with col4_row35: + with st.container(border=False): # Container with a border + st.pyplot(fig4) + + + with col5_row35: + with st.container(border=False): # Container with a border + st.pyplot(fig5) + + + st.write("") + st.button("Thermoforming Requirements", use_container_width=True, on_click=forming_input_click) + if st.session_state.forming_input_button_clicked == True: + #st.write("") + # 4th row with 3 columns + col1_row4, col2_row4, col3_row4, col4_row4, col5_row4 = st.columns([0.16,0.16,0.2,0.24,0.24]) + with col1_row4: + with st.container(border=False): # Container with a border + st.write("Matrix material", "PEEK") + st.write("Fiber material=", "Carbon") + st.write("Number of layers=", nlayers) + st.write("Volume fraction=", vf) + with col2_row4: + with st.container(border=False): # Container with a border + df = pd.DataFrame({'Ply': [], 'Orientation': []}) + plies = np.array([[1,90], [2,45], [3,-45], [4,-90]]) + plies_df=pd.DataFrame(plies, columns=df.columns) + df = pd.concat([df, plies_df], ignore_index=True) + st.dataframe(df, hide_index=True) + + with col3_row4: + with st.container(border=False): # Container with a border + image = Image.open(os.path.join(APP_DIR, "figures", "forming_angle.png")) + new_image = image.resize((250, 200)) + st.image(new_image, caption='') + + with col4_row4: + with st.container(border=False): # Container with a border + angleA= st.number_input("Maximum warpage angle A (degree):", format="%.2f", width=300, key="A", on_change=forming_typed_in) + angleB= st.number_input("Maximum warpage angle B (degree):", format="%.2f", width=300, key="B", on_change=forming_typed_in) + + + with col5_row4: + with st.container(border=False): # Container with a border + angleC= st.number_input("Maximum warpage angle C (degree):", format="%.2f", width=300, key="C", on_change=forming_typed_in) + max_stress= st.number_input("Maximum residual stress (MPa):", format="%.2f", width=300, key="max_stress", on_change=forming_typed_in) + + + st.write("") + if st.session_state.forming_input_changed == True: + st.session_state.forming_design_button_clicked = False + st.session_state.forming_input_changed = False + st.button("Thermoforming process design", use_container_width=True, on_click=forming_design_click) + if st.session_state.forming_design_button_clicked == True: + best = inverse_design(ply_number=nlayers, + fiber_vf=vf, + y_target=[angleA, angleB, angleC, max_stress], + n_restarts=5, + epochs=100) + # 5th row with 3 columns + col1_row5, col2_row5,col3_row5 = st.columns([0.25,0.25,0.25]) + with col1_row5: + with st.container(border=False): # Container with a border + st.write("Forming temperature (C)=", best["input"][0]) + with col2_row5: + with st.container(border=False): # Container with a border + st.write("Punching velocity (mm/s)=", best["input"][1]) + with col3_row5: + with st.container(border=False): # Container with a border + st.write("Cooling time (s)=", best["input"][2]) + + + + + + + diff --git a/inverse_design_demo/figures/a.txt b/inverse_design_demo/figures/a.txt new file mode 100644 index 0000000000000000000000000000000000000000..b55c7b9b1b03994a24e780f240a7c604c23cc902 --- /dev/null +++ b/inverse_design_demo/figures/a.txt @@ -0,0 +1 @@ +dede \ No newline at end of file diff --git a/inverse_design_demo/figures/forming_angle.png b/inverse_design_demo/figures/forming_angle.png new file mode 100644 index 0000000000000000000000000000000000000000..0d4f3ed588a527accf063031c1cf4bf9b95a4c09 --- /dev/null +++ b/inverse_design_demo/figures/forming_angle.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dc9ebe02d592189681889baf8ff15b12b12f680e47ab8073ed5b796247d20313 +size 139480 diff --git a/inverse_design_demo/figures/material_res3.png b/inverse_design_demo/figures/material_res3.png new file mode 100644 index 0000000000000000000000000000000000000000..5cb1b50d93c8e7d7e18fb93a863f269a1c87df70 --- /dev/null +++ b/inverse_design_demo/figures/material_res3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:435bec3f74968e08715052c0ffe28afab314258bdcb12b839542e014675c1cbe +size 102163 diff --git a/inverse_design_demo/main_thermo.py b/inverse_design_demo/main_thermo.py new file mode 100644 index 0000000000000000000000000000000000000000..2e1eb78632711a2b7526aa4de595131c9fe8acf1 --- /dev/null +++ b/inverse_design_demo/main_thermo.py @@ -0,0 +1,176 @@ +import torch +import numpy as np +import matplotlib.pyplot as plt +from Dataset import Dataset +from model import NeuralNetwork + +DEVICE = torch.device('cuda' if torch.cuda.is_available() else 'cpu') +# Set global plotting parameters +plt.rcParams.update({'font.size': 14, + 'figure.figsize': (10, 8), + 'lines.linewidth': 2, + 'lines.markersize': 6, + 'axes.grid': True, + 'axes.labelsize': 16, + 'legend.fontsize': 14, + 'xtick.labelsize': 14, + 'ytick.labelsize': 14, + 'figure.autolayout': True + }) + +def set_seed(seed=42): + np.random.seed(seed) + torch.manual_seed(seed) + if torch.cuda.is_available(): + torch.cuda.manual_seed_all(seed) + +def train_neural_network(model, inputs, outputs, optimizer, epochs=1000, lr_scheduler=None): + model.train() + for epoch in range(epochs): + optimizer.zero_grad() + predictions = model(inputs) + loss = torch.mean(torch.square(predictions - outputs)) + loss.backward() + optimizer.step() + + if lr_scheduler: + lr_scheduler.step() + + if epoch % 100 == 0: + print(f'Epoch {epoch}, Loss: {loss.item()}, Learning Rate: {optimizer.param_groups[0]["lr"]}') + +def main(): + set_seed(5324) + dataset = Dataset() + inputs = dataset.get_input(normalize=True) + outputs = dataset.get_output(normalize=True) + + idx_train = np.random.choice(len(inputs), size=int(0.98 * len(inputs)), replace=False) + idx_test = np.setdiff1d(np.arange(len(inputs)), idx_train) + + inputs_train = torch.tensor(inputs[idx_train], dtype=torch.float32).to(DEVICE) + outputs_train = torch.tensor(outputs[idx_train], dtype=torch.float32).to(DEVICE) + + inputs_test = torch.tensor(inputs[idx_test], dtype=torch.float32).to(DEVICE) + outputs_test = torch.tensor(outputs[idx_test], dtype=torch.float32).to(DEVICE) + + layer_sizes = [inputs.shape[1]] + [64] * 4 + [outputs.shape[1]] + dropout_rate = 0.00 + model = NeuralNetwork(layer_sizes, dropout_rate=dropout_rate, activation=torch.nn.ReLU).to(DEVICE) + optimizer = torch.optim.Adam(model.parameters(), lr=0.001) + lr_scheduler = torch.optim.lr_scheduler.StepLR(optimizer, step_size=5000, gamma=0.9) + + # Create a proper dataset that keeps input-output pairs together + train_dataset = torch.utils.data.TensorDataset(inputs_train, outputs_train) + train_loader = torch.utils.data.DataLoader(train_dataset, batch_size=16, shuffle=True) + + # Train the model + epochs = 20000 + for epoch in range(epochs): + model.train() + for inputs_batch, outputs_batch in train_loader: + inputs_batch = inputs_batch.to(DEVICE) + outputs_batch = outputs_batch.to(DEVICE) + optimizer.zero_grad() + predictions = model(inputs_batch) + loss = torch.mean(torch.square(predictions - outputs_batch)) + loss.backward() + optimizer.step() + + if lr_scheduler: + lr_scheduler.step() + + if epoch % 500 == 0: + train_pred = model(inputs_train) + train_loss = torch.mean(torch.square(train_pred - outputs_train)) + test_pred = model(inputs_test) + test_loss = torch.mean(torch.square(test_pred - outputs_test)) + print(f'Epoch {epoch}, Train Loss: {train_loss.item():.6f}, Test Loss: {test_loss.item():.6f}') + # print(f'Learning Rate: {optimizer.param_groups[0]["lr"]}') + + + predictions = model.predict(inputs_test) + test_loss = torch.mean(torch.square(predictions - outputs_test)) + print(f'Test Loss: {test_loss.item()}. Samples: {idx_test}') + + x = np.arange(0, len(idx_test)) + + outputs_test = dataset.denormalize_output(outputs_test.cpu().numpy()) + predictions = dataset.denormalize_output(predictions.cpu().numpy()) + # for sample in outputs_test: + # print(f'Test samples: {sample}') + plt.figure(figsize=(10, 6)) + plt.plot(x, outputs_test[:, 0], color='b', linestyle='--', label='True A1') + plt.plot(x, predictions[:, 0], color='b', linestyle='-', label='Predicted A1') + plt.plot(x, outputs_test[:, 1], color='r', linestyle='--', label='True B1') + plt.plot(x, predictions[:, 1], color='r', linestyle='-', label='Predicted B1') + plt.plot(x, outputs_test[:, 2], color='g', linestyle='--', label='True C1') + plt.plot(x, predictions[:, 2], color='g', linestyle='-', label='Predicted C1') + plt.gca().xaxis.set_major_locator(plt.MaxNLocator(integer=True)) + plt.xlabel('Sample Index') + plt.xticks(ticks=range(len(idx_test)),labels=idx_test + 1) + plt.ylabel('Springback Angle (Degrees)') + plt.title('Springback Angle Prediction') + plt.legend(loc='upper right') + plt.savefig('springback_angle_prediction.png') + + + plt.figure(figsize=(10, 6)) + plt.plot(x, outputs_test[:, 3], color='m', linestyle='--', label='True Stress(Max)') + plt.plot(x, predictions[:, 3], color='m', linestyle='-', label='Predicted Stress(Max)') + plt.xlabel('Sample Index') + plt.xticks(ticks=range(len(idx_test)),labels=idx_test + 1) + plt.ylabel('Stress (MPa)') + plt.legend(loc='upper left') + plt.savefig('stress_max_prediction.png') + + + + # MSE + mse = np.mean((predictions - outputs_test) ** 2, axis=0) + print(f'Mean Squared Error for A1: {mse[0]:.6f}, B1: {mse[1]:.6f}, C1: {mse[2]:.6f}, Stress(Max): {mse[3]:.6f}') + + # R 2 score + ss_ress = np.sum((outputs_test - predictions) ** 2, axis=0) + ss_tots = np.sum((outputs_test - np.mean(outputs_test, axis=0)) ** 2, axis=0) + r2_scores = 1 - ss_ress / ss_tots + print(f'R² Score for A1: {r2_scores[0]:.6f}, B1: {r2_scores[1]:.6f}, C1: {r2_scores[2]:.6f}, Stress(Max): {r2_scores[3]:.6f}') + + # Error + + # Save the model + model_save_path = './model_checkpoint.pth' + model_config = {'layer_sizes': layer_sizes, + 'dropout_rate': dropout_rate + } + checkpoint = { + 'model_state_dict': model.state_dict(), + 'model_config': model_config + } + torch.save(checkpoint, model_save_path) + # Load the model + # model = NeuralNetwork(layer_sizes) + # model.load_state_dict(torch.load(model_save_path)) + +def load_model(model_path): + checkpoint = torch.load(model_path) + model_config = checkpoint['model_config'] + model = NeuralNetwork(model_config['layer_sizes'], dropout_rate=model_config['dropout_rate'], activation=torch.nn.ReLU).to(DEVICE) + model.load_state_dict(checkpoint['model_state_dict']) + print(f"Model loaded from {model_path}") + return model + + +if __name__ == "__main__": + main() + + # model = load_model('./model_checkpoint.pth').to(torch.device('cpu')) + # data = Dataset() + # data = Dataset() + # print(np.unique(data.df['Fiber_Volume_Fractions'].to_numpy())[:10]) + + # test_input = torch.tensor([[2, 0.6, 450.0, 100.0, 500.0]], dtype=torch.float32) + # test_output = model.predict((test_input - torch.tensor(data.input_mean)) / torch.tensor(data.input_std)) + # test_output = test_output * torch.tensor(data.output_std) + torch.tensor(data.output_mean) + # print(f"Test Prediction for fixed input {test_input.numpy()}: {test_output.numpy()}") + diff --git a/inverse_design_demo/material_res3.png b/inverse_design_demo/material_res3.png new file mode 100644 index 0000000000000000000000000000000000000000..5cb1b50d93c8e7d7e18fb93a863f269a1c87df70 --- /dev/null +++ b/inverse_design_demo/material_res3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:435bec3f74968e08715052c0ffe28afab314258bdcb12b839542e014675c1cbe +size 102163 diff --git a/inverse_design_demo/model.py b/inverse_design_demo/model.py new file mode 100644 index 0000000000000000000000000000000000000000..973461bf4aea741da0ef01191f2753492279c478 --- /dev/null +++ b/inverse_design_demo/model.py @@ -0,0 +1,39 @@ +import torch + + +class NeuralNetwork(torch.nn.Module): + def __init__(self, layer_sizes, dropout_rate=0.0, activation=torch.nn.ReLU): + super(NeuralNetwork, self).__init__() + + if dropout_rate > 0: + self.dropout_layer = torch.nn.Dropout(dropout_rate) + + self.layer_sizes = layer_sizes + self.layers = torch.nn.ModuleList() + for i in range(len(layer_sizes) - 2): + self.layers.append(torch.nn.Linear(layer_sizes[i], layer_sizes[i + 1])) + self.layers.append(activation()) + self.layers.append(torch.nn.Linear(layer_sizes[-2], layer_sizes[-1])) + + # self.sequential = torch.nn.Sequential(*self.layers) + + self.init_weights() + + def init_weights(self): + for layer in self.layers: + if isinstance(layer, torch.nn.Linear): + torch.nn.init.xavier_normal_(layer.weight) + layer.bias.data.fill_(0.0) + + def forward(self, x, train=True): + for layer in self.layers: + x = layer(x) + if train and hasattr(self, 'dropout_layer'): + x = self.dropout_layer(x) + + return x + + def predict(self, x, train=False): + self.eval() + with torch.no_grad(): + return self.forward(x, train) diff --git a/inverse_design_demo/model_checkpoint.pth b/inverse_design_demo/model_checkpoint.pth new file mode 100644 index 0000000000000000000000000000000000000000..d63586933c53d2b2a451cbc65f47d5e864e721fa --- /dev/null +++ b/inverse_design_demo/model_checkpoint.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6170b3c02cd10a5db53184cfc0438ce279fe87ed4ffd4e7cf5a31a3945391326 +size 57109 diff --git a/inverse_design_demo/model_inverse.py b/inverse_design_demo/model_inverse.py new file mode 100644 index 0000000000000000000000000000000000000000..aeb6b92f4ce9af7416cbed2e28431dca4c9d1c8d --- /dev/null +++ b/inverse_design_demo/model_inverse.py @@ -0,0 +1,267 @@ +import torch +import numpy as np +import matplotlib.pyplot as plt +from Dataset import Dataset + +# DEVICE = torch.device('cuda' if torch.cuda.is_available() else 'cpu') +DEVICE = torch.device('cpu') + +# Set global plotting parameters +plt.rcParams.update({'font.size': 14, + 'figure.figsize': (10, 8), + 'lines.linewidth': 2, + 'lines.markersize': 6, + 'axes.grid': True, + 'axes.labelsize': 16, + 'legend.fontsize': 14, + 'xtick.labelsize': 14, + 'ytick.labelsize': 14, + 'figure.autolayout': True + }) + +def set_seed(seed=42): + np.random.seed(seed) + torch.manual_seed(seed) + if torch.cuda.is_available(): + torch.cuda.manual_seed_all(seed) + +class NeuralNetwork(torch.nn.Module): + def __init__(self, layer_sizes, dropout_rate=0.0, activation=torch.nn.ReLU): + super(NeuralNetwork, self).__init__() + + if dropout_rate > 0: + self.dropout_layer = torch.nn.Dropout(dropout_rate) + + self.layer_sizes = layer_sizes + self.layers = torch.nn.ModuleList() + for i in range(len(layer_sizes) - 2): + self.layers.append(torch.nn.Linear(layer_sizes[i], layer_sizes[i + 1])) + self.layers.append(activation()) + self.layers.append(torch.nn.Linear(layer_sizes[-2], layer_sizes[-1])) + + # self.sequential = torch.nn.Sequential(*self.layers) + + self.init_weights() + + def init_weights(self): + for layer in self.layers: + if isinstance(layer, torch.nn.Linear): + torch.nn.init.xavier_normal_(layer.weight) + layer.bias.data.fill_(0.0) + + def forward(self, x, train=True): + for layer in self.layers: + x = layer(x) + if train and hasattr(self, 'dropout_layer'): + x = self.dropout_layer(x) + + return x + + def predict(self, x, train=False): + self.eval() + with torch.no_grad(): + return self.forward(x, train) + +def train_neural_network(model, inputs, outputs, optimizer, epochs=1000, lr_scheduler=None): + model.train() + for epoch in range(epochs): + optimizer.zero_grad() + predictions = model(inputs) + loss = torch.mean(torch.square(predictions - outputs)) + loss.backward() + optimizer.step() + + if lr_scheduler: + lr_scheduler.step() + + if epoch % 100 == 0: + print(f'Epoch {epoch}, Loss: {loss.item()}, Learning Rate: {optimizer.param_groups[0]["lr"]}') + + +def load_model(model_path): + checkpoint = torch.load(model_path, map_location=DEVICE) + model_config = checkpoint['model_config'] + model = NeuralNetwork(model_config['layer_sizes'], dropout_rate=model_config['dropout_rate']) + model.load_state_dict(checkpoint['model_state_dict']) + print(f"Model loaded from {model_path}") + + model.to(DEVICE) + model.eval() + return model + +def inverse_design(ply_number, fiber_vf, y_target, n_restarts=10, epochs=100, use_lbfgs=False): + model = load_model('./model_checkpoint.pth') + + data = Dataset() + y_target_norm = data.normalize_output(y_target) # (A1, B1, C1, Stress) + y_target_tensor = torch.tensor(y_target, dtype=torch.float32) + input_mean = torch.tensor(data.input_mean) + input_std = torch.tensor(data.input_std) + output_mean = torch.tensor(data.output_mean) + output_std = torch.tensor(data.output_std) + + + weights = torch.tensor([1.0, 1.0, 1.0, 0.5], dtype=torch.float32) + bounds = torch.tensor([[50., 600.], [50., 600.], [50., 600.]], dtype=torch.float32) # Initial_Temp, Punch_Velocity, Cooling_Time + best = {"loss": float('inf'), "input": None, "output": None} + + for restart in range(n_restarts): + z = torch.randn(3, requires_grad=True) + + if use_lbfgs: + optimizer = torch.optim.LBFGS([z], lr=0.1, max_iter=epochs, line_search_fn="strong_wolfe") + steps = 1 + else: + optimizer = torch.optim.Adam([z], lr=0.001) + steps = epochs + + for step in range(steps): + def closure(): + var = bounds[:, 0] + (bounds[:, 1] - bounds[:, 0]) * torch.sigmoid(z) + optimizer.zero_grad() + input_raw = torch.cat([torch.tensor([ply_number, fiber_vf]), var]).unsqueeze(0) + input_norm = (input_raw - input_mean) / input_std + output_pred = model(input_norm, train=False) + output_pred = (output_pred * output_std) + output_mean + loss = torch.sum(weights * (output_pred - y_target_tensor) ** 2) + loss.backward() + return loss + + if use_lbfgs: + loss = optimizer.step(closure) + else: + loss = closure() + optimizer.step() + + if (step + 1) % 200 == 0: + print(f'Restart {restart + 1}, Step {step + 1}, Loss: {loss.item():.6f}, grad: {z.grad.norm().item():.6f}') + + with torch.no_grad(): + var = bounds[:, 0] + (bounds[:, 1] - bounds[:, 0]) * torch.sigmoid(z) + input_raw = torch.cat([torch.tensor([ply_number, fiber_vf]), var]) + input_norm = (input_raw - input_mean) / input_std + output_pred = model.predict(input_norm) + output_pred = data.denormalize_output(output_pred.numpy()) + final_loss = np.sum(weights.numpy() * (output_pred - y_target) ** 2).item() + if final_loss < best["loss"]: + best["loss"] = final_loss + best["input"] = var.detach().cpu().numpy() + best["output"] = output_pred + + return best + + +def inverse_model(): + set_seed(5324) + dataset = Dataset(inverse=True) + inputs, outputs = dataset.get_input(normalize=True), dataset.get_output(normalize=True) + + idx_train = np.random.choice(len(inputs), size=int(0.85 * len(inputs)), replace=False) + idx_test = np.setdiff1d(np.arange(len(inputs)), idx_train) + # idx_test = np.array([1, 14+1, 18+1, 20+1, 23+1]) + # idx_train = np.setdiff1d(np.arange(len(inputs)), idx_test) + + inputs_train = torch.tensor(inputs[idx_train], dtype=torch.float32).to(DEVICE) + outputs_train = torch.tensor(outputs[idx_train], dtype=torch.float32).to(DEVICE) + + inputs_test = torch.tensor(inputs[idx_test], dtype=torch.float32).to(DEVICE) + outputs_test = torch.tensor(outputs[idx_test], dtype=torch.float32).to(DEVICE) + + layer_sizes = [inputs.shape[1]] + [64] * 4 + [outputs.shape[1]] + dropout_rate =0.05 + model = NeuralNetwork(layer_sizes, dropout_rate=dropout_rate, activation=torch.nn.ReLU).to(DEVICE) + optimizer = torch.optim.Adam(model.parameters(), lr=0.001) + lr_scheduler = torch.optim.lr_scheduler.StepLR(optimizer, step_size=5000, gamma=0.9) + + # Create a proper dataset that keeps input-output pairs together + train_dataset = torch.utils.data.TensorDataset(inputs_train, outputs_train) + train_loader = torch.utils.data.DataLoader(train_dataset, batch_size=16, shuffle=True) + + # Train the model + epochs = 20000 + for epoch in range(epochs): + model.train() + for inputs_batch, outputs_batch in train_loader: + inputs_batch = inputs_batch.to(DEVICE) + outputs_batch = outputs_batch.to(DEVICE) + optimizer.zero_grad() + predictions = model(inputs_batch) + loss = torch.mean(torch.square(predictions - outputs_batch)) + loss.backward() + optimizer.step() + + if lr_scheduler: + lr_scheduler.step() + + if epoch % 500 == 0: + train_pred = model(inputs_train) + train_loss = torch.mean(torch.square(train_pred - outputs_train)) + test_pred = model(inputs_test) + test_loss = torch.mean(torch.square(test_pred - outputs_test)) + print(f'Epoch {epoch}, Train Loss: {train_loss.item():.6f}, Test Loss: {test_loss.item():.6f}') + # print(f'Learning Rate: {optimizer.param_groups[0]["lr"]}') + + + predictions = model.predict(inputs_test) + test_loss = torch.mean(torch.square(predictions - outputs_test)) + print(f'Test Loss: {test_loss.item()}. Samples: {idx_test}') + + x = np.arange(0, len(idx_test)) + + outputs_test = dataset.denormalize_output(outputs_test.cpu().numpy()) + predictions = dataset.denormalize_output(predictions.cpu().numpy()) + # for sample in outputs_test: + # print(f'Test samples: {sample}') + plt.figure(figsize=(10, 6)) + plt.plot(x, outputs_test[:, 0], color='b', linestyle='--', label='True Initial Temp') + plt.plot(x, predictions[:, 0], color='b', linestyle='-', label='Predicted Initial Temp') + plt.plot(x, outputs_test[:, 1], color='r', linestyle='--', label='True Punch Velocity') + plt.plot(x, predictions[:, 1], color='r', linestyle='-', label='Predicted Punch Velocity') + plt.plot(x, outputs_test[:, 2], color='g', linestyle='--', label='True Cooling Time') + plt.plot(x, predictions[:, 2], color='g', linestyle='-', label='Predicted Cooling Time') + plt.gca().xaxis.set_major_locator(plt.MaxNLocator(integer=True)) + plt.xlabel('Sample Index') + plt.xticks(ticks=range(len(idx_test)),labels=idx_test + 1) + plt.ylabel('Processing Parameters') + plt.legend(loc='upper right') + plt.savefig('inverse_design.png') + + # MSE + mse = np.mean((predictions - outputs_test) ** 2, axis=0) + print(f'Mean Squared Error for Initial Temp: {mse[0]:.6f}, Punch Velocity: {mse[1]:.6f}, Cooling Time: {mse[2]:.6f}') + + # R 2 score + ss_ress = np.sum((outputs_test - predictions) ** 2, axis=0) + ss_tots = np.sum((outputs_test - np.mean(outputs_test, axis=0)) ** 2, axis=0) + r2_scores = 1 - ss_ress / ss_tots + print(f'R² Score for Initial Temp: {r2_scores[0]:.6f}, Punch Velocity: {r2_scores[1]:.6f}, Cooling Time: {r2_scores[2]:.6f}') + + # Error + + # Save the model + model_save_path = './model_inverse_ckpt.pth' + model_config = {'layer_sizes': layer_sizes, + 'dropout_rate': dropout_rate + } + checkpoint = { + 'model_state_dict': model.state_dict(), + 'model_config': model_config + } + torch.save(checkpoint, model_save_path) + + +if __name__ == "__main__": + # train the inverse model over springback data + # inverse_model() + + # perform inverse design + import time + start_time = time.time() + # best = inverse_design(ply_number=2, fiber_vf=0.6, y_target=np.array([0.89, 0.83, 0.12, 180.2]), n_restarts=50, epochs=100, use_lbfgs=True, feasibility_samples=2000) + best = inverse_design(ply_number=2, fiber_vf=0.4, y_target=np.array([0.45, 9.03, 1.87, 187.4]), n_restarts=50, epochs=100, use_lbfgs=True) + end_time = time.time() + time_elapsed = (end_time - start_time) + print(f"Inverse design completed in {time_elapsed:.2f} seconds.") + print("Best Input (Initial Temp, Punch Velocity, Cooling Time):", best["input"]) + print("Best Output (A1, B1, C1, Stress):", best["output"]) + diff --git a/inverse_design_demo/requirements.txt b/inverse_design_demo/requirements.txt new file mode 100644 index 0000000000000000000000000000000000000000..75c2af523a7071b20ab1819370de8fd5aaacfd8f --- /dev/null +++ b/inverse_design_demo/requirements.txt @@ -0,0 +1,9 @@ +streamlit +pandas +altair +plotly +pathlib +numpy +matplotlib +openpyxl +torch \ No newline at end of file diff --git a/inverse_design_demo/thermoforming.py b/inverse_design_demo/thermoforming.py new file mode 100644 index 0000000000000000000000000000000000000000..7caccaf09289bb112d61388f08c91b553d2cbd09 --- /dev/null +++ b/inverse_design_demo/thermoforming.py @@ -0,0 +1,368 @@ +####################### +# Import libraries +import streamlit as st +import pandas as pd +import altair as alt +import plotly.express as px +from PIL import Image # Used to open and handle image files +import matplotlib.pyplot as plt +import numpy as np + + +####################### +# Page configuration +st.set_page_config( + page_title="Inverse Design of Thermoplastic Composites for Thermoforming", +# page_icon="🏂", + layout="wide", + initial_sidebar_state="collapsed") + +alt.themes.enable('default') + +####################### +# CSS styling + +st.markdown(""" + +""", unsafe_allow_html=True) + +st.markdown(""" + +""", unsafe_allow_html=True) + +st.markdown(""" + +""", unsafe_allow_html=True) + +st.markdown(""" + +""", unsafe_allow_html=True) + + +st.set_page_config(initial_sidebar_state="collapsed") + +st.markdown( + """ + +""", + unsafe_allow_html=True, +) +####################### +if 'input_changed' not in st.session_state: + st.session_state.input_changed= False +def input_typed_in(): + st.session_state.input_changed= True + +if 'forming_input_changed' not in st.session_state: + st.session_state.forming_input_changed= False +def forming_typed_in(): + st.session_state.forming_input_changed= True + + + +if 'input_curve_button_clicked' not in st.session_state: + st.session_state.input_curve_button_clicked= False +def input_curve_click(): + st.session_state.input_curve_button_clicked = True + +if 'material_design_button_clicked' not in st.session_state: + st.session_state.material_design_button_clicked= False +def material_design_click(): + st.session_state.material_design_button_clicked = True + +if 'forming_input_button_clicked' not in st.session_state: + st.session_state.forming_input_button_clicked= False +def forming_input_click(): + st.session_state.forming_input_button_clicked = True + +if 'forming_design_button_clicked' not in st.session_state: + st.session_state.forming_design_button_clicked= False +def forming_design_click(): + st.session_state.forming_design_button_clicked = True + + + +####################### +# Load data +#df_reshaped = pd.read_csv('data/us-population-2010-2019-reshaped.csv') + +######## Initialize data ############# +E1aV=0 # initial longitudinal stiffness +E1bV=0 # 10% strain longitudinal stiffness +G12aV=0 # initial longitudinal stiffness +G12bV=0 # 10% strain longitudinal stiffness +nlayers=4 +vf=0.5 +angle=30 + +####################### +# Main Panel + +data_materials={ + 'Matrix':['ABS','Polyurethane','Nylon 6','Nylon 6','Nylon 66','PE','PP'], + 'Filler':['Carbon Black','Glass Fiber','Glass Fiber','Carbon Fiber','Glass Fiber','Carbon Fiber','Glass Fiber'], + 'VF':['15%','20%','20%','40%','30%','20%','30%'], + 'Feature':['Blend','Extruded','Molded','Molded','Molded','Molded','Molded'] + } + +data_physical = { + 'Forming T (C)': ['180', '185', '190'], + 'Punch V (m/s)': ['1.05', '1.8','1.67'], + 'Cooling time (s)': ['45','80','120'], + 'Holding force (kN)': ['23','24','25'] + } + +st.title("Inverse Design of Thermoplastic Composites for Thermoforming") +st.write("") +st.write("") +st.write("") +st.write(r"$\textsf{\textbf{\Large Material Design Requirements}}$") +#st.text_input(r"$\textsf{\textbf{\Large Material Design Requirements}}$") + +# First row with 3 columns +col1_row1, col2_row1, col3_row1 = st.columns([0.3,0.3,0.3]) +with col1_row1: + with st.container(border=False): # Container with a border + E1aV= st.number_input("Initial tensile stiffness (MPa):", format="%.2f", width=250, key="E1a", on_change=input_typed_in) + E1bV= st.number_input("10% tensile stiffness (MPa):", format="%.2f", width=250, key="E1b", on_change=input_typed_in) + +with col2_row1: + with st.container(border=False): # Container with a border + G12aV= st.number_input("Initial shear stiffness (MPa):", format="%.2f", width=250, key="G12a", on_change=input_typed_in) + G12bV= st.number_input("0.1 shear strain stiffness (MPa):", format="%.2f", width=250, key="G12b", on_change=input_typed_in) + +with col3_row1: + with st.container(border=False): # Container with a border + EratioV= st.number_input("Anisotropicity (Ex/Ey):", format="%.2f", width=250, key="Eratio", on_change=input_typed_in) + + +st.write("") +if st.session_state.input_changed == True: + st.session_state.input_curve_button_clicked = False + st.session_state.material_design_button_clicked = False + st.session_state.forming_input_button_clicked = False + st.session_state.forming_design_button_clicked = False + st.session_state.input_changed = False + +st.button("Generate required stress-strain curves", width=400, on_click=input_curve_click) + +if st.session_state.input_curve_button_clicked == True: + #st.write(E1aV) + #st.write(E1bV) + x = np.linspace(0, 0.1, 20) + y1 = E1aV*x + (E1bV-E1aV)/0.2*x*x + y2 = G12aV*x + (G12bV-G12aV)/0.2*x*x + y3 = y1/EratioV + ylimit=np.max([np.max(y1),np.max(y2), np.max(y3)]) + # 2nd row with 3 columns + col1_row2, col2_row2, col3_row2, col4_row2= st.columns([0.25,0.25,0.25,0.25]) + with col1_row2: + with st.container(border=False): # Container with a border + fig, ax = plt.subplots() + ax.plot(x, y1) + ax.set_ylim([0, ylimit]) + ax.set_xlabel('Stress (MPa)') + ax.set_ylabel('Strain') + ax.set_title('Longitudinal stress-strain') + st.pyplot(fig) + with col2_row2: + with st.container(border=False): # Container with a border + fig, ax = plt.subplots() + ax.plot(x, y2) + ax.set_ylim([0, ylimit]) + ax.set_xlabel('Stress (MPa)') + ax.set_ylabel('Strain') + ax.set_title('Shear stress-strain') + st.pyplot(fig) + with col3_row2: + with st.container(border=False): # Container with a border + fig, ax = plt.subplots() + ax.plot(x, y3) + ax.set_ylim([0, ylimit]) + ax.set_xlabel('Stress (MPa)') + ax.set_ylabel('Strain') + ax.set_title('Shear stress-strain') + st.pyplot(fig) + + st.write("") + st.button("Material Inverse Design", width=400, on_click=material_design_click) + if st.session_state.material_design_button_clicked == True: + #st.write("") + # 3rd row with 3 columns + col1_row3, col2_row3, col3_row3, col4_row3, col5_row3= st.columns([0.15,0.15,0.23,0.23,0.23]) + with col1_row3: + with st.container(border=False): # Container with a border + st.write("Number of layers=", nlayers) + st.write("Volume fraction=", vf) + + with col2_row3: + with st.container(border=False): # Container with a border + df = pd.DataFrame({'Ply': [], 'Orientation': []}) + plies = np.array([[1,90], [2,45], [3,-45], [4,-90]]) + plies_df=pd.DataFrame(plies, columns=df.columns) + df = pd.concat([df, plies_df], ignore_index=True) + st.dataframe(df, hide_index=True) + + with col3_row3: + with st.container(border=False): # Container with a border + image = Image.open('figures/material_res3.png') + new_image = image.resize((250, 200)) + st.image(new_image, caption='') + + with col4_row3: + with st.container(border=False): # Container with a border + image = Image.open('figures/material_res3.png') + new_image = image.resize((250, 200)) + st.image(new_image, caption='') + + + with col5_row3: + with st.container(border=False): # Container with a border + image = Image.open('figures/material_res3.png') + new_image = image.resize((250, 200)) + st.image(new_image, caption='') + + + st.write("") + st.button("Thermoforming Requirements", width=400, on_click=forming_input_click) + if st.session_state.forming_input_button_clicked == True: + #st.write("") + # 4th row with 3 columns + col1_row4, col2_row4, col3_row4, col4_row4, col5_row4 = st.columns([0.16,0.16,0.2,0.24,0.24]) + with col1_row4: + with st.container(border=False): # Container with a border + st.write("Number of layers=", nlayers) + st.write("Volume fraction=", vf) + st.write("Fiber orientation=", angle) + with col2_row4: + with st.container(border=False): # Container with a border + df = pd.DataFrame({'Ply': [], 'Orientation': []}) + plies = np.array([[1,90], [2,45], [3,-45], [4,-90]]) + plies_df=pd.DataFrame(plies, columns=df.columns) + df = pd.concat([df, plies_df], ignore_index=True) + st.dataframe(df, hide_index=True) + + with col3_row4: + with st.container(border=False): # Container with a border + image = Image.open('figures/forming_angle.png') + new_image = image.resize((250, 200)) + st.image(new_image, caption='') + + with col4_row4: + with st.container(border=False): # Container with a border + angleA= st.number_input("Maximum warpage angle A (degree):", format="%.2f", width=300, key="A", on_change=forming_typed_in) + angleB= st.number_input("Maximum warpage angle B (degree):", format="%.2f", width=300, key="B", on_change=forming_typed_in) + + + with col5_row4: + with st.container(border=False): # Container with a border + angleC= st.number_input("Maximum warpage angle C (degree):", format="%.2f", width=300, key="C", on_change=forming_typed_in) + max_stress= st.number_input("Maximum residual stress (MPa):", format="%.2f", width=300, key="max_stress", on_change=forming_typed_in) + + st.write("") + if st.session_state.forming_input_changed == True: + st.session_state.forming_design_button_clicked = False + st.session_state.forming_input_changed = False + st.button("Thermoforming process design", width=400, on_click=forming_design_click) + if st.session_state.forming_design_button_clicked == True: + # 5th row with 3 columns + col1_row5, col2_row5,col3_row5 = st.columns([0.25,0.25,0.25]) + with col1_row5: + with st.container(border=False): # Container with a border + st.write("Forming temperature (C)=", nlayers) + with col2_row5: + with st.container(border=False): # Container with a border + st.write("Punching velocity (mm/s)=", nlayers) + with col3_row5: + with st.container(border=False): # Container with a border + st.write("Cooling time (s)=", nlayers) + + + + + + + + diff --git a/requirements.txt b/requirements.txt index 75c2af523a7071b20ab1819370de8fd5aaacfd8f..ea8f8581e5a9d6e9c3c7c102bbd588959cfb826e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,7 +3,7 @@ pandas altair plotly pathlib -numpy +numpy==1.26.4 matplotlib openpyxl torch \ No newline at end of file