1,907,109 research outputs found

    BC Studies 2017 conference poster

    No full text
    Poster for (Un)setting British Columbia - BC Studies 2017 conference. Conference date: May 4 - 6, 2017. Location: Vancouver Island University, Snuneymuxw First Nation Territory / Nanaimo, B.C

    BC Studies 2017: Call for proposals

    No full text
    Call for proposals for (Un)settling British Columbia - 2017 BC Studies Conference. Conference date: May 4 - 6, 2017. Location: Vancouver Island University, Snuneymuxw First Nation Territory / Nanaimo, B.C.https://viuspace.viu.ca/bitstream/handle/10613/3252/BC Studies 2017 CFP.pdf?sequence=

    Data Sets for a Fractional Moisture-Dependent Viscoelasticity Model for Thermoplastic Polymers

    No full text
    This dataset contains Dynamical Mechanical Thermal Analysis (DMTA) results, including the determination of the complex Young’s modulus and complex shear modulus from torsion and tension measurements. The dataset is associated with the publication Fauser et al. (2025) and complements the dataset “A Modular Framework for Non-Linear Optimization of Linear Viscoelastic Model Parameters Using a Second-Order Fractional Approach”. Frequency-dependent measurements were performed using a rheometer (MCR 702, linear motor, Anton Paar, Graz, Austria) over a frequency range of 0.1 s⁻¹ to 10 s⁻¹. The applied strain amplitudes were ε = 0.01 % (axial) and γ = 0.01 % (shear). Measurements were conducted at constant temperatures within the glass transition range of the respective polymers. Master curves were generated from frequency sweeps of the complex Young’s and shear moduli for cylindrical samples (BASF, Ludwigshafen, Germany) of: Poly-l-actic acid (PLA) Poly-ethylene terephthalate (PET) Poly-amid (PA) and for rectangular samples of: Thermoplastic poly-urethane (TPU, SMP Technologies Inc., Tokyo, Japan) TPU samples were analyzed at varying moisture contents (in 10 % RH increments). The corresponding state-dependent shift factors used for master curve generation are also provided in the dataset.</p

    Die Churfürstliche Haupt- / und Residenz-Stadt. / Mayntz : Gabriel Bodenehr

    No full text
    Ansicht der Stadt MainzBegleittext und Bildlegende linksVorliegende/r Kupferstich/Radierung wohl um 1861 von Fauser herausgegebe

    Jörg Fauser

    No full text
    Jörg Fauser was the enfant terrible of the German literary scene. Born in the Taunus town of Bad Schwalbach in 1944, he worked a number of different jobs (temporary worker, airport worker, night guard, journalist, author and rock songwriter). The night after his forty-third birthday, he died tragically and under mysterious circumstances when walking on the A94 highway between Feldkirchen and Riehm near Munich, where he was hit by a truck. It was only after his death that he became an iconic figure. In 1988, Das Syndikat, a group of German crime writers, awarded him the prestigious Ehrenglauser prize for crime fiction, named after the Swiss author Friedrich Glauser

    A Modular Framework for Non-Linear Optimization of Linear Viscoelastic Model Parameters using a Second-Order Fractional Approach

    No full text
    This repository presents a reproducible workflow for fitting the Linear Second-order Fractional (LSF) model to mastercurves of thermoplastic polymers. The dataset is associated with the publication Fauser et al. (2025) and complements the dataset Data Sets for a Fractional Moisture-Dependent Viscoelasticity Model for Thermoplastic Polymers. The LSF model effectively captures the broad relaxation spectra typical of polymers, but its interdependent parameters require robust non-linear optimization. To ensure clarity and maintainability, the fitting workflow is organized into three modular components: Viscoelastic Models Class (models.py) Configuration File (configuration_file.py) Model Fitting Notebook (main.ipynb) 1. Viscoelastic Models Class (models.py) This module serves as the core library of constitutive models. Each model is implemented as a self-contained, object-oriented class. Purpose Encapsulate mathematical definitions of viscoelastic models, enabling modular extensions and reuse. Key Component: The LSF Model The Second-Order Fractional (LSF) model is defined by its complex modulus: E*(ω) = (Ξ₀ + (iω)^α₁ Ξ₁ + (iω)^α₂ Ξ₂) / (Λ₀ + (iω)^α₁ Λ₁ + (iω)^α₂ Λ₂) Parameters: Ξ₀, Ξ₁, Ξ₂ → strain-related coefficients Λ₀, Λ₁, Λ₂ → stress-related coefficients α₁, α₂ → fractional exponents Parent Class: ViscoelasticityModel Defines methods for computing the real/imaginary parts of the complex modulus, as well as the storage modulus, loss modulus, and loss factor: class ViscoelasticityModel(torch.nn.Module): """ Parent class for viscoelasticity models """ def __init__(self): super().__init__() def complexModulus(self, w): raise Exception def forward(self, w): comp = self.complexModulus(w) return comp.imag / comp.real def storageModulus(self,w): comp = self.complexModulus(w) return comp.real def lossModulus(self,w): comp = self.complexModulus(w) return comp.imag Subclass: SecondOrderFractionalDerivativeModel Implements the LSF model, with parameters represented as torch.nn.Parameter for optimization. A scaling factor normalizes experimental and model data for stability. class SecondOrderFractionalDerivativeModel(ViscoelasticityModel): """ Class for a second order derivative model (G0 + d/dt^alpha G1 + d/dt^beta G2) stress = (E0 + d/dt^alpha E1 + d/dt^beta E2) strain """ def __init__(self,E0,E1,E2,G0,G1,G2,alpha,beta): super().__init__() self.E0 = torch.nn.Parameter(E0 * torch.ones(1, dtype=torch.float64)) self.E1 = torch.nn.Parameter(E1 * torch.ones(1, dtype=torch.float64)) self.E2 = torch.nn.Parameter(E2 * torch.ones(1, dtype=torch.float64)) # normalize G0 to 1, G0 is not fitted self.G0 = 1 * torch.ones(1, dtype=torch.float64) self.G1 = torch.nn.Parameter(G1 * torch.ones(1, dtype=torch.float64)) self.G2 = torch.nn.Parameter(G2 * torch.ones(1, dtype=torch.float64)) self.alpha1 = torch.nn.Parameter(alpha * torch.ones(1, dtype=torch.float64)) self.alpha2 = torch.nn.Parameter(beta * torch.ones(1, dtype=torch.float64)) def complexModulus(self, w): w = w[:,None] iw = torch.view_as_complex(torch.cat((torch.zeros(w.size()),w),1)) iw_alpha1 = iw ** self.alpha1 iw_alpha2 = iw ** self.alpha2 comp = ((self.E0 + self.E1 * iw_alpha1 + self.E2 * iw_alpha2) / (self.G0 + self.G1 * self.E1 * iw_alpha1 + self.G2 * self.E2 * iw_alpha2)) return comp 2. Configuration File (configuration_file.py) This module centralizes all hyperparameters for non-linear optimization. Separating configuration ensures reproducibility, readability, and simplified parameter tuning. Example def get_diaplex_50_optimization_params(): dict = {} dict["lr"] = 1e-3 dict["n_iter"] = 40000 dict["data_range"] = [5e-6,1e4] dict["w_threshold"] = 0.0032 dict["w_left"] = 1 dict["w_right"] = 2 dict["criterion"] = torch.nn.MSELoss(reduction="sum") return dict Key Parameters lr → learning rate for Adam optimizer n_iter → number of optimization iterations data_range → frequency range for fitting w_threshold → frequency of peak loss factor w_left, w_right → weighting around w_threshold criterion → loss function (L2 norm) 3. Model Fitting (main.ipynb) The Jupyter notebook orchestrates the full workflow for fitting fractional viscoelastic models to experimental mechanical data. It performs data loading, preprocessing, model definition, and optimization of material parameters using Adam optimizer. Workflow Overview Load configuration and utilities Imports helper functions and parameters from configuration_file.py: get_diaplex_filenames() — returns paths to experimental CSV data. get_diaplex_50_optimization_params() — provides hyperparameters (learning rate, iteration count, weighting, etc.). Initializes the fractional viscoelastic model SecondOrderFractionalDerivativeModel for each dataset. Load and preprocess experimental data Reads CSV files, extracts and sorts: Extensional Reduced Frequency Extensional Storage Modulus (E′) Extensional Loss Modulus (E″) Data are converted to PyTorch tensors for GPU-based optimization. Define training configuration For each dataset: Finds the frequency corresponding to the loss peak (tan δ = E″/E′). Loads optimization settings: criterion, lr, n_iter, w_left, w_right, and data_range. Computes data_scaling to weight frequency ranges differently around the loss peak. Optimization Loop for t in tqdm(range(n_iter)): pred = models[key](angfreq[key][indices[key]]) meas = ((lossmod[key])/(stormod[key]))[indices[key]] loss = criterion(meas/meas * data_scaling, pred/meas * data_scaling) optimizer.zero_grad() loss.backward() optimizer.step() The optimization minimizes the difference between measured and predicted loss factor (tan δ). Weighting (w_left, w_right) emphasizes frequencies below or above the loss peak for improved robustness. Convergence depends strongly on initial guesses, data range, and learning rate. Visualization and Output After convergence, the notebook produces log–log plots comparing model predictions and measurements: Loss factor (tan δ) Storage modulus (E′) Figures are saved as *_fig_loss_factor.pdf and *_fig_storage_modulus.pdf, ready for publication. Key Notes Convergence sensitivity: Good initial parameter guesses and suitable step sizes are essential. Weighting strategy: Improves robustness near the loss peak, particularly for noisy data. Modular design: New datasets or model variants can be added easily through configuration files. 4. Fitted Parameters In addition to the Python scripts for non-linear optimization, this repository also provides the fitted parameters of each master curve. These parameters, published in the related dataset (Data Sets for a Fractional Moisture-Dependent Viscoelasticity Model for Thermoplastic Polymers), are available for both the LSF model and the Generalized Maxwell model. </p
    corecore