CoolFace
Datasetpublic

PhysArena/2D_Multiscale_Hyperelasticity

owner: Safran license: cc-by-sa-4.0 data_production: type: simulation physics: 2D quasistatic non-linear structural mechanics, finite elasticity (large strains), P1 elements, compressible hyperelastic material simulator: fenics num_samples: train: 764 test: 376 storage_backend: hf_datasets This dataset was generated with plaid, we refer to this documentation for additional details on how to extract data from plaid_sample objects. The simplest way to use this dataset is to… See the full description on the dataset page: https://huggingface.co/datasets/PhysArena/2D_Multiscale_Hyperelasticity.

sourceHugging Facecc-by-sa-4.0updated 4mo agoView on Hugging Face
1likes120downloads
Dataset Card

<p align='center'> <img src='https://i.ibb.co/JR7bWLNn/Logo-2-D-Multiscale-Hyperelasticity-2-consolas-100.png' alt='https://i.ibb.co/JR7bWLNn/Logo-2-D-Multiscale-Hyperelasticity-2-consolas-100.png' width='1000'/> <img src='https://i.ibb.co/zHFQFnPR/2-D-Multiscale-Hyperelasticity.png' alt='https://i.ibb.co/zHFQFnPR/2-D-Multiscale-Hyperelasticity.png' width='1000'/> </p>

yaml
owner: Safran
license: cc-by-sa-4.0
data_production:
  type: simulation
  physics: 2D quasistatic non-linear structural mechanics, finite elasticity (large
    strains), P1 elements, compressible hyperelastic material
  simulator: fenics
num_samples:
  train: 764
  test: 376
storage_backend: hf_datasets

This dataset was generated with `plaid`, we refer to this documentation for additional details on how to extract data from plaid_sample objects.

The simplest way to use this dataset is to first download it:

python
from plaid.storage import download_from_hub

repo_id = "channel/dataset"
local_folder = "downloaded_dataset"

download_from_hub(repo_id, local_folder)

Then, to iterate over the dataset and instantiate samples:

python
from plaid.storage import init_from_disk

local_folder = "downloaded_dataset"
split_name = "train"

datasetdict, converterdict = init_from_disk(local_folder)

dataset = datasetdict[split]
converter = converterdict[split]

for i in range(len(dataset)):
    plaid_sample = converter.to_plaid(dataset, i)

It is possible to stream the data directly:

python
from plaid.storage import init_streaming_from_hub

repo_id = "channel/dataset"

datasetdict, converterdict = init_streaming_from_hub(repo_id)

dataset = datasetdict[split]
converter = converterdict[split]

for sample_raw in dataset:
    plaid_sample = converter.sample_to_plaid(sample_raw)

Sample features can then be retrieved as follows:

python
from plaid.storage import load_problem_definitions_from_disk
local_folder = "downloaded_dataset"
pb_defs = load_problem_definitions_from_disk(local_folder)

# or
from plaid.storage import load_problem_definitions_from_hub
repo_id = "channel/dataset"
pb_defs = load_problem_definitions_from_hub(repo_id)


pb_def = next(iter(pb_defs.values()))

plaid_sample = ... # use a method from above to instantiate a plaid sample

for t in plaid_sample.get_all_time_values():
    for path in pb_def.input_features:
        feature = plaid_sample.get_feature_by_path(path=path, time=t)
        ...
    for path in pb_def.output_features:
        feature = plaid_sample.get_feature_by_path(path=path, time=t)
        ...

For those familiar with HF's datasets library, raw data can be retrieved without using the plaid library:

python
from datasets import load_dataset

repo_id = "channel/dataset"

datasetdict = load_dataset(repo_id)

for split_name, dataset in datasetdict.items():
    for raw_sample in dataset:
        for feat_name in dataset.column_names:
            feature = raw_sample[feat_name]

Notice that raw data refers to the variable features only, with a specific encoding for time variable features.

Dataset Sources