Merge pull request #12753 from davesrocketshop/20240301_FEM_Models
Material: New data models to support elasticity
This commit is contained in:
@@ -39,11 +39,13 @@ ModelProperty::ModelProperty()
|
||||
{}
|
||||
|
||||
ModelProperty::ModelProperty(const QString& name,
|
||||
const QString& header,
|
||||
const QString& type,
|
||||
const QString& units,
|
||||
const QString& url,
|
||||
const QString& description)
|
||||
: _name(name)
|
||||
, _displayName(header)
|
||||
, _propertyType(type)
|
||||
, _units(units)
|
||||
, _url(url)
|
||||
@@ -52,6 +54,7 @@ ModelProperty::ModelProperty(const QString& name,
|
||||
|
||||
ModelProperty::ModelProperty(const ModelProperty& other)
|
||||
: _name(other._name)
|
||||
, _displayName(other._displayName)
|
||||
, _propertyType(other._propertyType)
|
||||
, _units(other._units)
|
||||
, _url(other._url)
|
||||
@@ -63,6 +66,14 @@ ModelProperty::ModelProperty(const ModelProperty& other)
|
||||
}
|
||||
}
|
||||
|
||||
const QString ModelProperty::getDisplayName() const
|
||||
{
|
||||
if (_displayName.isEmpty()) {
|
||||
return getName();
|
||||
}
|
||||
return _displayName;
|
||||
}
|
||||
|
||||
ModelProperty& ModelProperty::operator=(const ModelProperty& other)
|
||||
{
|
||||
if (this == &other) {
|
||||
@@ -70,6 +81,7 @@ ModelProperty& ModelProperty::operator=(const ModelProperty& other)
|
||||
}
|
||||
|
||||
_name = other._name;
|
||||
_displayName = other._displayName;
|
||||
_propertyType = other._propertyType;
|
||||
_units = other._units;
|
||||
_url = other._url;
|
||||
@@ -89,7 +101,7 @@ bool ModelProperty::operator==(const ModelProperty& other) const
|
||||
return true;
|
||||
}
|
||||
|
||||
return (_name == other._name) && (_propertyType == other._propertyType)
|
||||
return (_name == other._name) && (_displayName == other._displayName) && (_propertyType == other._propertyType)
|
||||
&& (_units == other._units) && (_url == other._url) && (_description == other._description)
|
||||
&& (_inheritance == other._inheritance);
|
||||
}
|
||||
|
||||
@@ -56,6 +56,7 @@ class MaterialsExport ModelProperty: public Base::BaseClass
|
||||
public:
|
||||
ModelProperty();
|
||||
ModelProperty(const QString& name,
|
||||
const QString& header,
|
||||
const QString& type,
|
||||
const QString& units,
|
||||
const QString& url,
|
||||
@@ -67,6 +68,7 @@ public:
|
||||
{
|
||||
return _name;
|
||||
}
|
||||
const QString getDisplayName() const;
|
||||
const QString getPropertyType() const
|
||||
{
|
||||
return _propertyType;
|
||||
@@ -96,6 +98,10 @@ public:
|
||||
{
|
||||
_name = name;
|
||||
}
|
||||
void setColumnHeader(const QString& header)
|
||||
{
|
||||
_displayName = header;
|
||||
}
|
||||
virtual void setPropertyType(const QString& type)
|
||||
{
|
||||
_propertyType = type;
|
||||
@@ -139,6 +145,7 @@ public:
|
||||
|
||||
private:
|
||||
QString _name;
|
||||
QString _displayName;
|
||||
QString _propertyType;
|
||||
QString _units;
|
||||
QString _url;
|
||||
|
||||
@@ -254,6 +254,7 @@ void ModelLoader::addToTree(std::shared_ptr<ModelEntry> model,
|
||||
if (exclude.count(QString::fromStdString(propName)) == 0) {
|
||||
// showYaml(it->second);
|
||||
auto yamlProp = yamlProperties[propName];
|
||||
auto propDisplayName = yamlValue(yamlProp, "DisplayName", "");
|
||||
auto propType = yamlValue(yamlProp, "Type", "");
|
||||
auto propUnits = yamlValue(yamlProp, "Units", "");
|
||||
auto propURL = yamlValue(yamlProp, "URL", "");
|
||||
@@ -261,6 +262,7 @@ void ModelLoader::addToTree(std::shared_ptr<ModelEntry> model,
|
||||
// auto inherits = yamlValue(yamlProp, "Inherits", "");
|
||||
|
||||
ModelProperty property(QString::fromStdString(propName),
|
||||
propDisplayName,
|
||||
propType,
|
||||
propUnits,
|
||||
propURL,
|
||||
@@ -276,11 +278,13 @@ void ModelLoader::addToTree(std::shared_ptr<ModelEntry> model,
|
||||
// Base::Console().Log("\tColumns '%s'\n", colName.c_str());
|
||||
|
||||
auto colProp = cols[colName];
|
||||
auto colPropDisplayName = yamlValue(colProp, "DisplayName", "");
|
||||
auto colPropType = yamlValue(colProp, "Type", "");
|
||||
auto colPropUnits = yamlValue(colProp, "Units", "");
|
||||
auto colPropURL = yamlValue(colProp, "URL", "");
|
||||
auto colPropDescription = yamlValue(colProp, "Description", "");
|
||||
ModelProperty colProperty(QString::fromStdString(colName),
|
||||
colPropDisplayName,
|
||||
colPropType,
|
||||
colPropUnits,
|
||||
colPropURL,
|
||||
|
||||
@@ -232,11 +232,24 @@ SET(MaterialModel_Files
|
||||
Resources/Models/Fluid/Fluid.yml
|
||||
Resources/Models/Legacy/Father.yml
|
||||
Resources/Models/Legacy/MaterialStandard.yml
|
||||
Resources/Models/Mechanical/ArrudaBoyce.yml
|
||||
Resources/Models/Mechanical/Density.yml
|
||||
Resources/Models/Mechanical/IsotropicLinearElastic.yml
|
||||
Resources/Models/Mechanical/LinearElastic.yml
|
||||
Resources/Models/Mechanical/MooneyRivlin.yml
|
||||
Resources/Models/Mechanical/NeoHooke.yml
|
||||
Resources/Models/Mechanical/OgdenN1.yml
|
||||
Resources/Models/Mechanical/OgdenN2.yml
|
||||
Resources/Models/Mechanical/OgdenN3.yml
|
||||
Resources/Models/Mechanical/OgdenYld2004p18.yml
|
||||
Resources/Models/Mechanical/OrthotropicLinearElastic.yml
|
||||
Resources/Models/Mechanical/PolynomialN1.yml
|
||||
Resources/Models/Mechanical/PolynomialN2.yml
|
||||
Resources/Models/Mechanical/PolynomialN3.yml
|
||||
Resources/Models/Mechanical/ReducedPolynomialN1.yml
|
||||
Resources/Models/Mechanical/ReducedPolynomialN2.yml
|
||||
Resources/Models/Mechanical/ReducedPolynomialN3.yml
|
||||
Resources/Models/Mechanical/Yeoh.yml
|
||||
Resources/Models/Patterns/PAT.yml
|
||||
"Resources/Models/Patterns/Pattern File.yml"
|
||||
"Resources/Models/Render Workbench/RenderAppleseed.yml"
|
||||
|
||||
@@ -62,6 +62,7 @@ Array2D::Array2D(const QString& propertyName,
|
||||
if (_property) {
|
||||
_value =
|
||||
std::static_pointer_cast<Materials::Material2DArray>(_property->getMaterialValue());
|
||||
setWindowTitle(_property->getDisplayName());
|
||||
}
|
||||
else {
|
||||
_value = nullptr;
|
||||
@@ -81,16 +82,6 @@ Array2D::Array2D(const QString& propertyName,
|
||||
connect(ui->standardButtons, &QDialogButtonBox::rejected, this, &Array2D::reject);
|
||||
}
|
||||
|
||||
void Array2D::setHeaders(QStandardItemModel* model)
|
||||
{
|
||||
QStringList headers;
|
||||
auto columns = _property->getColumns();
|
||||
for (auto column = columns.begin(); column != columns.end(); column++) {
|
||||
headers.append(column->getName());
|
||||
}
|
||||
model->setHorizontalHeaderLabels(headers);
|
||||
}
|
||||
|
||||
void Array2D::setColumnWidths(QTableView* table)
|
||||
{
|
||||
int length = _property->columns();
|
||||
|
||||
@@ -68,7 +68,6 @@ private:
|
||||
|
||||
QAction _deleteAction;
|
||||
|
||||
void setHeaders(QStandardItemModel* model);
|
||||
void setColumnWidths(QTableView* table);
|
||||
void setColumnDelegates(QTableView* table);
|
||||
void setupArray();
|
||||
|
||||
@@ -111,7 +111,7 @@ QVariant Array2DModel::headerData(int section, Qt::Orientation orientation, int
|
||||
if (role == Qt::DisplayRole) {
|
||||
if (orientation == Qt::Horizontal) {
|
||||
const Materials::MaterialProperty& column = _property->getColumn(section);
|
||||
return column.getName();
|
||||
return column.getDisplayName();
|
||||
}
|
||||
else if (orientation == Qt::Vertical) {
|
||||
// Vertical header
|
||||
@@ -251,7 +251,7 @@ QVariant Array3DDepthModel::headerData(int section, Qt::Orientation orientation,
|
||||
if (role == Qt::DisplayRole) {
|
||||
if (orientation == Qt::Horizontal) {
|
||||
const Materials::MaterialProperty& column = _property->getColumn(section);
|
||||
return column.getName();
|
||||
return column.getDisplayName();
|
||||
}
|
||||
if (orientation == Qt::Vertical) {
|
||||
// Vertical header
|
||||
@@ -406,7 +406,7 @@ QVariant Array3DModel::headerData(int section, Qt::Orientation orientation, int
|
||||
if (role == Qt::DisplayRole) {
|
||||
if (orientation == Qt::Horizontal) {
|
||||
const Materials::MaterialProperty& column = _property->getColumn(section + 1);
|
||||
return column.getName();
|
||||
return column.getDisplayName();
|
||||
}
|
||||
if (orientation == Qt::Vertical) {
|
||||
// Vertical header
|
||||
|
||||
@@ -110,7 +110,8 @@ QVariant MaterialDelegate::getValue(const QModelIndex& index) const
|
||||
QVariant propertyValue;
|
||||
if (group->child(row, 1)) {
|
||||
auto material = group->child(row, 1)->data().value<std::shared_ptr<Materials::Material>>();
|
||||
auto propertyName = group->child(row, 0)->text();
|
||||
// auto propertyName = group->child(row, 0)->text();
|
||||
auto propertyName = group->child(row, 0)->data().toString();
|
||||
propertyValue = material->getProperty(propertyName)->getValue();
|
||||
}
|
||||
return propertyValue;
|
||||
@@ -130,7 +131,8 @@ void MaterialDelegate::setValue(QAbstractItemModel* model,
|
||||
int row = index.row();
|
||||
if (group->child(row, 1)) {
|
||||
auto material = group->child(row, 1)->data().value<std::shared_ptr<Materials::Material>>();
|
||||
auto propertyName = group->child(row, 0)->text();
|
||||
// auto propertyName = group->child(row, 0)->text();
|
||||
auto propertyName = group->child(row, 0)->data().toString();
|
||||
material->getProperty(propertyName)->setValue(value);
|
||||
group->child(row, 1)->setText(value.toString());
|
||||
}
|
||||
@@ -152,7 +154,8 @@ void MaterialDelegate::notifyChanged(const QAbstractItemModel* model,
|
||||
int row = index.row();
|
||||
if (group->child(row, 1)) {
|
||||
auto material = group->child(row, 1)->data().value<std::shared_ptr<Materials::Material>>();
|
||||
auto propertyName = group->child(row, 0)->text();
|
||||
// auto propertyName = group->child(row, 0)->text();
|
||||
auto propertyName = group->child(row, 0)->data().toString();
|
||||
auto propertyValue = material->getProperty(propertyName)->getValue();
|
||||
material->setEditStateAlter();
|
||||
Base::Console().Log("MaterialDelegate::notifyChanged() - marked altered\n");
|
||||
@@ -181,7 +184,8 @@ bool MaterialDelegate::editorEvent(QEvent* event,
|
||||
|
||||
int row = index.row();
|
||||
|
||||
QString propertyName = group->child(row, 0)->text();
|
||||
// QString propertyName = group->child(row, 0)->text();
|
||||
QString propertyName = group->child(row, 0)->data().toString();
|
||||
|
||||
auto type = getType(index);
|
||||
if (type == Materials::MaterialValue::Color) {
|
||||
|
||||
@@ -963,7 +963,9 @@ void MaterialsEditor::updateMaterialAppearance()
|
||||
QList<QStandardItem*> items;
|
||||
|
||||
QString key = itp->first;
|
||||
auto propertyItem = new QStandardItem(key);
|
||||
// auto propertyItem = new QStandardItem(key);
|
||||
auto propertyItem = new QStandardItem(itp->second.getDisplayName());
|
||||
propertyItem->setData(key);
|
||||
propertyItem->setToolTip(itp->second.getDescription());
|
||||
items.append(propertyItem);
|
||||
|
||||
@@ -1026,7 +1028,9 @@ void MaterialsEditor::updateMaterialProperties()
|
||||
QString key = itp->first;
|
||||
Materials::ModelProperty modelProperty =
|
||||
static_cast<Materials::ModelProperty>(itp->second);
|
||||
auto propertyItem = new QStandardItem(key);
|
||||
// auto propertyItem = new QStandardItem(key);
|
||||
auto propertyItem = new QStandardItem(modelProperty.getDisplayName());
|
||||
propertyItem->setData(key);
|
||||
propertyItem->setToolTip(modelProperty.getDescription());
|
||||
items.append(propertyItem);
|
||||
|
||||
|
||||
@@ -28,16 +28,19 @@ Model:
|
||||
Description: "default architectural model"
|
||||
DOI: ""
|
||||
EnvironmentalEfficiencyClass:
|
||||
DisplayName: "Environmental Efficiency Class"
|
||||
Type: 'String'
|
||||
Units: ''
|
||||
URL: ''
|
||||
Description: " "
|
||||
ExecutionInstructions:
|
||||
DisplayName: "Execution Instructions"
|
||||
Type: 'String'
|
||||
Units: ''
|
||||
URL: ''
|
||||
Description: " "
|
||||
FireResistanceClass:
|
||||
DisplayName: "Fire Resistance Class"
|
||||
Type: 'String'
|
||||
Units: ''
|
||||
URL: ''
|
||||
@@ -48,11 +51,13 @@ Model:
|
||||
URL: ''
|
||||
Description: " "
|
||||
SoundTransmissionClass:
|
||||
DisplayName: "Sound Transmission Class"
|
||||
Type: 'String'
|
||||
Units: ''
|
||||
URL: ''
|
||||
Description: " "
|
||||
UnitsPerQuantity:
|
||||
DisplayName: "Units Per Quantity"
|
||||
Type: 'Float'
|
||||
Units: ''
|
||||
URL: ''
|
||||
|
||||
@@ -28,11 +28,13 @@ Model:
|
||||
Description: "default cost model"
|
||||
DOI: ""
|
||||
ProductURL:
|
||||
DisplayName: "Product URL"
|
||||
Type: 'URL'
|
||||
Units: ''
|
||||
URL: 'https://de.wikipedia.org/wiki/Hyperlink'
|
||||
Description: "Product URL, recommended are wikipedia links"
|
||||
SpecificPrice:
|
||||
DisplayName: "Specific Price"
|
||||
Type: 'Float'
|
||||
Units: ''
|
||||
URL: ''
|
||||
|
||||
@@ -28,17 +28,20 @@ Model:
|
||||
Description: "default electromagnetic model"
|
||||
DOI: ""
|
||||
RelativePermittivity:
|
||||
DisplayName: "Relative Permittivity"
|
||||
Type: 'Float'
|
||||
Units: ''
|
||||
URL: 'https://en.wikipedia.org/wiki/Relative_permittivity'
|
||||
Description: "The ratio to the permittivity of the vacuum"
|
||||
ElectricalConductivity:
|
||||
DisplayName: "Electrical Conductivity"
|
||||
Type: 'Quantity'
|
||||
Units: 'S/m'
|
||||
URL: 'https://en.wikipedia.org/wiki/Electrical_resistivity_and_conductivity'
|
||||
Description: >
|
||||
The electrical conductivity in [FreeCAD ElectricalConductivity unit]
|
||||
RelativePermeability:
|
||||
DisplayName: "Relative Permeability"
|
||||
Type: 'Float'
|
||||
Units: ''
|
||||
URL: 'https://en.wikipedia.org/wiki/Permeability_(electromagnetism)'
|
||||
|
||||
@@ -30,6 +30,7 @@ Model:
|
||||
- Density:
|
||||
UUID: '454661e5-265b-4320-8e6f-fcf6223ac3af'
|
||||
DynamicViscosity:
|
||||
DisplayName: "Dynamic Viscosity"
|
||||
Type: 'Quantity'
|
||||
Units: 'Pa*s'
|
||||
URL: 'https://en.wikipedia.org/wiki/Viscosity'
|
||||
@@ -38,11 +39,13 @@ Model:
|
||||
flow and deform during mechanical oscillation as a function of
|
||||
temperature, frequency, time, or both
|
||||
KinematicViscosity:
|
||||
DisplayName: "Kinematic Viscosity"
|
||||
Type: 'Quantity'
|
||||
Units: 'm^2/s'
|
||||
URL: 'https://en.wikipedia.org/wiki/Viscosity'
|
||||
Description: "Kinematic Viscosity = Dynamic Viscosity / Density"
|
||||
PrandtlNumber:
|
||||
DisplayName: "Prandtl Number"
|
||||
Type: 'Float'
|
||||
Units: ''
|
||||
URL: 'https://en.wikipedia.org/wiki/Prandtl_number'
|
||||
|
||||
@@ -28,16 +28,19 @@ Model:
|
||||
Description: "Describes the norm or standards referenced by this material"
|
||||
DOI: ""
|
||||
KindOfMaterial:
|
||||
DisplayName: "Kind Of Material"
|
||||
Type: 'String'
|
||||
Units: ''
|
||||
URL: ''
|
||||
Description: " "
|
||||
MaterialNumber:
|
||||
DisplayName: "Material Number"
|
||||
Type: 'String'
|
||||
Units: ''
|
||||
URL: ''
|
||||
Description: " "
|
||||
StandardCode:
|
||||
DisplayName: "Standard Code"
|
||||
Type: 'String'
|
||||
Units: ''
|
||||
URL: ''
|
||||
|
||||
60
src/Mod/Material/Resources/Models/Mechanical/ArrudaBoyce.yml
Normal file
60
src/Mod/Material/Resources/Models/Mechanical/ArrudaBoyce.yml
Normal file
@@ -0,0 +1,60 @@
|
||||
---
|
||||
# ***************************************************************************
|
||||
# * *
|
||||
# * Copyright (c) 2023 David Carter <dcarter@davidcarter.ca> *
|
||||
# * *
|
||||
# * This program is free software; you can redistribute it and/or modify *
|
||||
# * it under the terms of the GNU Lesser General Public License (LGPL) *
|
||||
# * as published by the Free Software Foundation; either version 2 of *
|
||||
# * the License, or (at your option) any later version. *
|
||||
# * for detail see the LICENCE text file. *
|
||||
# * *
|
||||
# * This program is distributed in the hope that it will be useful, *
|
||||
# * but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
# * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
# * GNU Library General Public License for more details. *
|
||||
# * *
|
||||
# * You should have received a copy of the GNU Library General Public *
|
||||
# * License along with this program; if not, write to the Free Software *
|
||||
# * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
|
||||
# * USA *
|
||||
# * *
|
||||
# ***************************************************************************
|
||||
|
||||
Model:
|
||||
Name: 'ArrudaBoyce'
|
||||
UUID: 'e10d00de-c7de-4e59-bcdd-058c2ea19ec6'
|
||||
URL: 'http://www.dhondt.de/ccx_2.21.pdf'
|
||||
Description: >
|
||||
A hyperelastic constitutive model used to describe the mechanical
|
||||
behavior of rubber and other polymeric substances
|
||||
ArrudaBoyce:
|
||||
DisplayName: "Arruda-Boyce"
|
||||
Type: '2DArray'
|
||||
Columns:
|
||||
Temperature:
|
||||
Type: 'Quantity'
|
||||
Units: 'C'
|
||||
URL: ''
|
||||
Description: "Temperature"
|
||||
Mu:
|
||||
DisplayName: 'μ'
|
||||
Type: 'Quantity'
|
||||
Units: 'Pa'
|
||||
URL: ''
|
||||
Description: "μ [FreeCAD Pressure unit]"
|
||||
LambdaM:
|
||||
DisplayName: 'λm'
|
||||
Type: 'Float'
|
||||
Units: ''
|
||||
URL: ''
|
||||
Description: "λm"
|
||||
D:
|
||||
Type: 'Quantity'
|
||||
Units: '1/Pa'
|
||||
URL: ''
|
||||
Description: "D [1/FreeCAD Pressure unit]"
|
||||
URL: ''
|
||||
Description: >
|
||||
2 Dimensional array showing Arruda-Boyce properties as
|
||||
a function of temperature
|
||||
@@ -30,21 +30,25 @@ Model:
|
||||
and strain relationship is linear
|
||||
DOI: "10.1016/j.ijplas.2004.06.004"
|
||||
BulkModulus:
|
||||
DisplayName: "Bulk Modulus"
|
||||
Type: 'Quantity'
|
||||
Units: 'kPa'
|
||||
URL: 'https://en.wikipedia.org/wiki/Bulk_modulus'
|
||||
Description: "Bulk modulus in [FreeCAD Pressure unit]"
|
||||
PoissonRatio:
|
||||
DisplayName: "Poisson Ratio"
|
||||
Type: 'Float'
|
||||
Units: ''
|
||||
URL: 'https://en.wikipedia.org/wiki/Poisson%27s_ratio'
|
||||
Description: "Poisson's ratio [unitless]"
|
||||
ShearModulus:
|
||||
DisplayName: "Shear Modulus"
|
||||
Type: 'Quantity'
|
||||
Units: 'kPa'
|
||||
URL: 'https://en.wikipedia.org/wiki/Shear_modulus'
|
||||
Description: "Shear modulus in [FreeCAD Pressure unit]"
|
||||
YoungsModulus:
|
||||
DisplayName: "Young's Modulus"
|
||||
Type: 'Quantity'
|
||||
Units: 'kPa'
|
||||
URL: 'https://en.wikipedia.org/wiki/Young%27s_modulus'
|
||||
|
||||
@@ -35,6 +35,7 @@ Model:
|
||||
- IsotropicLinearElastic:
|
||||
UUID: 'f6f9e48c-b116-4e82-ad7f-3659a9219c50'
|
||||
AngleOfFriction:
|
||||
DisplayName: "Angle Of Friction"
|
||||
Type: 'Quantity'
|
||||
Units: 'deg'
|
||||
URL: 'https://en.wikipedia.org/wiki/Friction#Angle_of_friction'
|
||||
@@ -42,11 +43,13 @@ Model:
|
||||
Further information can be found at
|
||||
https://en.wikipedia.org/wiki/Mohr%E2%80%93Coulomb_theory
|
||||
CompressiveStrength:
|
||||
DisplayName: "Compressive Strength"
|
||||
Type: 'Quantity'
|
||||
Units: 'kPa'
|
||||
URL: 'https://en.wikipedia.org/wiki/Compressive_strength'
|
||||
Description: "Compressive strength in [FreeCAD Pressure unit]"
|
||||
FractureToughness:
|
||||
DisplayName: "Fracture Toughness"
|
||||
Type: 'Float'
|
||||
Units: ''
|
||||
URL: 'https://en.wikipedia.org/wiki/Fracture_toughness'
|
||||
@@ -55,16 +58,19 @@ Model:
|
||||
the unit is fixed MPa * m^0.5.
|
||||
https://github.com/FreeCAD/FreeCAD/pull/2156
|
||||
UltimateStrain:
|
||||
DisplayName: "Ultimate Strain"
|
||||
Type: 'Quantity'
|
||||
Units: 'kPa'
|
||||
URL: 'https://en.wikipedia.org/wiki/Deformation_(mechanics)'
|
||||
Description: " "
|
||||
UltimateTensileStrength:
|
||||
DisplayName: "Ultimate Tensile Strength"
|
||||
Type: 'Quantity'
|
||||
Units: 'kPa'
|
||||
URL: 'https://en.wikipedia.org/wiki/Ultimate_tensile_strength'
|
||||
Description: "Ultimate tensile strength in [FreeCAD Pressure unit]"
|
||||
YieldStrength:
|
||||
DisplayName: "Yield Strength"
|
||||
Type: 'Quantity'
|
||||
Units: 'kPa'
|
||||
URL: 'https://en.wikipedia.org/wiki/Yield_Strength'
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
---
|
||||
# ***************************************************************************
|
||||
# * *
|
||||
# * Copyright (c) 2023 David Carter <dcarter@davidcarter.ca> *
|
||||
# * *
|
||||
# * This program is free software; you can redistribute it and/or modify *
|
||||
# * it under the terms of the GNU Lesser General Public License (LGPL) *
|
||||
# * as published by the Free Software Foundation; either version 2 of *
|
||||
# * the License, or (at your option) any later version. *
|
||||
# * for detail see the LICENCE text file. *
|
||||
# * *
|
||||
# * This program is distributed in the hope that it will be useful, *
|
||||
# * but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
# * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
# * GNU Library General Public License for more details. *
|
||||
# * *
|
||||
# * You should have received a copy of the GNU Library General Public *
|
||||
# * License along with this program; if not, write to the Free Software *
|
||||
# * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
|
||||
# * USA *
|
||||
# * *
|
||||
# ***************************************************************************
|
||||
|
||||
Model:
|
||||
Name: 'MooneyRivlin'
|
||||
UUID: 'beeed169-7770-4da0-ab67-c9172cf7d23d'
|
||||
URL: 'http://www.dhondt.de/ccx_2.21.pdf'
|
||||
Description: >
|
||||
A hyperelastic material model where the strain energy density function
|
||||
W is a linear combination of two invariants of the left Cauchy–Green
|
||||
deformation tensor B
|
||||
MooneyRivlin:
|
||||
DisplayName: "Mooney-Rivlin"
|
||||
Type: '2DArray'
|
||||
Columns:
|
||||
Temperature:
|
||||
Type: 'Quantity'
|
||||
Units: 'C'
|
||||
URL: ''
|
||||
Description: ""
|
||||
C10:
|
||||
Type: 'Quantity'
|
||||
Units: 'Pa'
|
||||
URL: ''
|
||||
Description: ""
|
||||
C01:
|
||||
Type: 'Quantity'
|
||||
Units: 'Pa'
|
||||
URL: ''
|
||||
Description: ""
|
||||
D1:
|
||||
Type: 'Quantity'
|
||||
Units: '1/Pa'
|
||||
URL: ''
|
||||
Description: "D [1/FreeCAD Pressure unit]"
|
||||
URL: ''
|
||||
Description: >
|
||||
2 Dimensional array showing Mooney-Rivlin properties as
|
||||
a function of temperature
|
||||
54
src/Mod/Material/Resources/Models/Mechanical/NeoHooke.yml
Normal file
54
src/Mod/Material/Resources/Models/Mechanical/NeoHooke.yml
Normal file
@@ -0,0 +1,54 @@
|
||||
---
|
||||
# ***************************************************************************
|
||||
# * *
|
||||
# * Copyright (c) 2023 David Carter <dcarter@davidcarter.ca> *
|
||||
# * *
|
||||
# * This program is free software; you can redistribute it and/or modify *
|
||||
# * it under the terms of the GNU Lesser General Public License (LGPL) *
|
||||
# * as published by the Free Software Foundation; either version 2 of *
|
||||
# * the License, or (at your option) any later version. *
|
||||
# * for detail see the LICENCE text file. *
|
||||
# * *
|
||||
# * This program is distributed in the hope that it will be useful, *
|
||||
# * but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
# * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
# * GNU Library General Public License for more details. *
|
||||
# * *
|
||||
# * You should have received a copy of the GNU Library General Public *
|
||||
# * License along with this program; if not, write to the Free Software *
|
||||
# * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
|
||||
# * USA *
|
||||
# * *
|
||||
# ***************************************************************************
|
||||
|
||||
Model:
|
||||
Name: 'NeoHooke'
|
||||
UUID: '569ebc58-ef29-434a-83be-555a0980d505'
|
||||
URL: 'http://www.dhondt.de/ccx_2.21.pdf'
|
||||
Description: >
|
||||
A neo-Hookean solid is a hyperelastic material model, similar to
|
||||
Hooke's law, that can be used for predicting the nonlinear stress-strain
|
||||
behavior of materials undergoing large deformations.
|
||||
NeoHooke:
|
||||
DisplayName: "neo-Hooke"
|
||||
Type: '2DArray'
|
||||
Columns:
|
||||
Temperature:
|
||||
Type: 'Quantity'
|
||||
Units: 'C'
|
||||
URL: ''
|
||||
Description: ""
|
||||
C10:
|
||||
Type: 'Quantity'
|
||||
Units: 'Pa'
|
||||
URL: ''
|
||||
Description: ""
|
||||
D1:
|
||||
Type: 'Quantity'
|
||||
Units: '1/Pa'
|
||||
URL: ''
|
||||
Description: "D [1/FreeCAD Pressure unit]"
|
||||
URL: ''
|
||||
Description: >
|
||||
2 Dimensional array showing neo-Hooke properties as
|
||||
a function of temperature
|
||||
61
src/Mod/Material/Resources/Models/Mechanical/OgdenN1.yml
Normal file
61
src/Mod/Material/Resources/Models/Mechanical/OgdenN1.yml
Normal file
@@ -0,0 +1,61 @@
|
||||
---
|
||||
# ***************************************************************************
|
||||
# * *
|
||||
# * Copyright (c) 2023 David Carter <dcarter@davidcarter.ca> *
|
||||
# * *
|
||||
# * This program is free software; you can redistribute it and/or modify *
|
||||
# * it under the terms of the GNU Lesser General Public License (LGPL) *
|
||||
# * as published by the Free Software Foundation; either version 2 of *
|
||||
# * the License, or (at your option) any later version. *
|
||||
# * for detail see the LICENCE text file. *
|
||||
# * *
|
||||
# * This program is distributed in the hope that it will be useful, *
|
||||
# * but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
# * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
# * GNU Library General Public License for more details. *
|
||||
# * *
|
||||
# * You should have received a copy of the GNU Library General Public *
|
||||
# * License along with this program; if not, write to the Free Software *
|
||||
# * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
|
||||
# * USA *
|
||||
# * *
|
||||
# ***************************************************************************
|
||||
|
||||
Model:
|
||||
Name: 'OgdenN1'
|
||||
UUID: 'a2634a2c-412f-468d-9bec-74ae5d87a9c0'
|
||||
URL: 'http://www.dhondt.de/ccx_2.21.pdf'
|
||||
Description: >
|
||||
The Ogden material model is a hyperelastic material model used to
|
||||
describe the non-linear stress–strain behaviour of complex materials
|
||||
such as rubbers, polymers, and biological tissue.
|
||||
OgdenN1:
|
||||
DisplayName: "Ogden N=1"
|
||||
Type: '2DArray'
|
||||
Columns:
|
||||
Temperature:
|
||||
Type: 'Quantity'
|
||||
Units: 'C'
|
||||
URL: ''
|
||||
Description: "Temperature"
|
||||
Mu1:
|
||||
DisplayName: 'μ1'
|
||||
Type: 'Quantity'
|
||||
Units: 'Pa'
|
||||
URL: ''
|
||||
Description: "μ1 [FreeCAD Pressure unit]"
|
||||
Alpha1:
|
||||
DisplayName: 'α1'
|
||||
Type: 'Float'
|
||||
Units: ''
|
||||
URL: ''
|
||||
Description: "α1"
|
||||
D1:
|
||||
Type: 'Quantity'
|
||||
Units: '1/Pa'
|
||||
URL: ''
|
||||
Description: "D1 [1/FreeCAD Pressure unit]"
|
||||
URL: ''
|
||||
Description: >
|
||||
2 Dimensional array showing Ogden N=1 properties as
|
||||
a function of temperature
|
||||
78
src/Mod/Material/Resources/Models/Mechanical/OgdenN2.yml
Normal file
78
src/Mod/Material/Resources/Models/Mechanical/OgdenN2.yml
Normal file
@@ -0,0 +1,78 @@
|
||||
---
|
||||
# ***************************************************************************
|
||||
# * *
|
||||
# * Copyright (c) 2023 David Carter <dcarter@davidcarter.ca> *
|
||||
# * *
|
||||
# * This program is free software; you can redistribute it and/or modify *
|
||||
# * it under the terms of the GNU Lesser General Public License (LGPL) *
|
||||
# * as published by the Free Software Foundation; either version 2 of *
|
||||
# * the License, or (at your option) any later version. *
|
||||
# * for detail see the LICENCE text file. *
|
||||
# * *
|
||||
# * This program is distributed in the hope that it will be useful, *
|
||||
# * but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
# * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
# * GNU Library General Public License for more details. *
|
||||
# * *
|
||||
# * You should have received a copy of the GNU Library General Public *
|
||||
# * License along with this program; if not, write to the Free Software *
|
||||
# * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
|
||||
# * USA *
|
||||
# * *
|
||||
# ***************************************************************************
|
||||
|
||||
Model:
|
||||
Name: 'OgdenN2'
|
||||
UUID: '233540bb-7b13-4f49-ac12-126a5c82cedf'
|
||||
URL: 'http://www.dhondt.de/ccx_2.21.pdf'
|
||||
Description: >
|
||||
The Ogden material model is a hyperelastic material model used to
|
||||
describe the non-linear stress–strain behaviour of complex materials
|
||||
such as rubbers, polymers, and biological tissue.
|
||||
OgdenN2:
|
||||
DisplayName: "Ogden N=2"
|
||||
Type: '2DArray'
|
||||
Columns:
|
||||
Temperature:
|
||||
Type: 'Quantity'
|
||||
Units: 'C'
|
||||
URL: ''
|
||||
Description: "Temperature"
|
||||
Mu1:
|
||||
DisplayName: 'μ1'
|
||||
Type: 'Quantity'
|
||||
Units: 'Pa'
|
||||
URL: ''
|
||||
Description: "μ1 [FreeCAD Pressure unit]"
|
||||
Mu2:
|
||||
DisplayName: 'μ2'
|
||||
Type: 'Quantity'
|
||||
Units: 'Pa'
|
||||
URL: ''
|
||||
Description: "μ2 [FreeCAD Pressure unit]"
|
||||
Alpha1:
|
||||
DisplayName: 'α1'
|
||||
Type: 'Float'
|
||||
Units: ''
|
||||
URL: ''
|
||||
Description: "α1"
|
||||
Alpha2:
|
||||
DisplayName: 'α2'
|
||||
Type: 'Float'
|
||||
Units: ''
|
||||
URL: ''
|
||||
Description: "α2"
|
||||
D1:
|
||||
Type: 'Quantity'
|
||||
Units: '1/Pa'
|
||||
URL: ''
|
||||
Description: "D1 [1/FreeCAD Pressure unit]"
|
||||
D2:
|
||||
Type: 'Quantity'
|
||||
Units: '1/Pa'
|
||||
URL: ''
|
||||
Description: "D2 [1/FreeCAD Pressure unit]"
|
||||
URL: ''
|
||||
Description: >
|
||||
2 Dimensional array showing Ogden N=2 properties as
|
||||
a function of temperature
|
||||
95
src/Mod/Material/Resources/Models/Mechanical/OgdenN3.yml
Normal file
95
src/Mod/Material/Resources/Models/Mechanical/OgdenN3.yml
Normal file
@@ -0,0 +1,95 @@
|
||||
---
|
||||
# ***************************************************************************
|
||||
# * *
|
||||
# * Copyright (c) 2023 David Carter <dcarter@davidcarter.ca> *
|
||||
# * *
|
||||
# * This program is free software; you can redistribute it and/or modify *
|
||||
# * it under the terms of the GNU Lesser General Public License (LGPL) *
|
||||
# * as published by the Free Software Foundation; either version 2 of *
|
||||
# * the License, or (at your option) any later version. *
|
||||
# * for detail see the LICENCE text file. *
|
||||
# * *
|
||||
# * This program is distributed in the hope that it will be useful, *
|
||||
# * but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
# * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
# * GNU Library General Public License for more details. *
|
||||
# * *
|
||||
# * You should have received a copy of the GNU Library General Public *
|
||||
# * License along with this program; if not, write to the Free Software *
|
||||
# * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
|
||||
# * USA *
|
||||
# * *
|
||||
# ***************************************************************************
|
||||
|
||||
Model:
|
||||
Name: 'OgdenN3'
|
||||
UUID: 'a917d6b8-209f-429e-9972-fe4bbb97af3f'
|
||||
URL: 'http://www.dhondt.de/ccx_2.21.pdf'
|
||||
Description: >
|
||||
The Ogden material model is a hyperelastic material model used to
|
||||
describe the non-linear stress–strain behaviour of complex materials
|
||||
such as rubbers, polymers, and biological tissue.
|
||||
OgdenN3:
|
||||
DisplayName: "Ogden N=3"
|
||||
Type: '2DArray'
|
||||
Columns:
|
||||
Temperature:
|
||||
Type: 'Quantity'
|
||||
Units: 'C'
|
||||
URL: ''
|
||||
Description: "Temperature"
|
||||
Mu1:
|
||||
DisplayName: 'μ1'
|
||||
Type: 'Quantity'
|
||||
Units: 'Pa'
|
||||
URL: ''
|
||||
Description: "μ1 [FreeCAD Pressure unit]"
|
||||
Mu2:
|
||||
DisplayName: 'μ2'
|
||||
Type: 'Quantity'
|
||||
Units: 'Pa'
|
||||
URL: ''
|
||||
Description: "μ2 [FreeCAD Pressure unit]"
|
||||
Mu3:
|
||||
DisplayName: 'μ3'
|
||||
Type: 'Quantity'
|
||||
Units: 'Pa'
|
||||
URL: ''
|
||||
Description: "μ1 [FreeCAD Pressure unit]"
|
||||
Alpha1:
|
||||
DisplayName: 'α1'
|
||||
Type: 'Float'
|
||||
Units: ''
|
||||
URL: ''
|
||||
Description: "α1"
|
||||
Alpha2:
|
||||
DisplayName: 'α2'
|
||||
Type: 'Float'
|
||||
Units: ''
|
||||
URL: ''
|
||||
Description: "α2"
|
||||
Alpha3:
|
||||
DisplayName: 'α3'
|
||||
Type: 'Float'
|
||||
Units: ''
|
||||
URL: ''
|
||||
Description: "α3"
|
||||
D1:
|
||||
Type: 'Quantity'
|
||||
Units: '1/Pa'
|
||||
URL: ''
|
||||
Description: "D1 [1/FreeCAD Pressure unit]"
|
||||
D2:
|
||||
Type: 'Quantity'
|
||||
Units: '1/Pa'
|
||||
URL: ''
|
||||
Description: "D2 [1/FreeCAD Pressure unit]"
|
||||
D3:
|
||||
Type: 'Quantity'
|
||||
Units: '1/Pa'
|
||||
URL: ''
|
||||
Description: "D3 [1/FreeCAD Pressure unit]"
|
||||
URL: ''
|
||||
Description: >
|
||||
2 Dimensional array showing Ogden N=3 properties as
|
||||
a function of temperature
|
||||
@@ -30,33 +30,39 @@ Model:
|
||||
strain relationship is linear
|
||||
DOI: "10.1016/j.ijplas.2004.06.004"
|
||||
OgdenModuli:
|
||||
DisplayName: "Ogden Moduli"
|
||||
Type: 'List'
|
||||
Units: 'kPa'
|
||||
URL: 'https://en.wikipedia.org/wiki/Ogden_hyperelastic_model'
|
||||
Description: "Elastic moduli μ for Ogden [FreeCAD Pressure unit]"
|
||||
OgdenExponent:
|
||||
DisplayName: "Ogden Exponent"
|
||||
Type: 'Integer'
|
||||
Units: ''
|
||||
URL: 'https://en.wikipedia.org/wiki/Ogden_hyperelastic_model'
|
||||
Description: "Exponent ɑ for Ogden [unitless]"
|
||||
InitialYieldStress:
|
||||
DisplayName: "Initial Yield Stress"
|
||||
Type: 'Quantity'
|
||||
Units: 'kPa'
|
||||
URL: ''
|
||||
Description: >
|
||||
Saturation stress for Voce isotropic hardening [FreeCAD Pressure unit]
|
||||
VoceSaturationStress:
|
||||
DisplayName: "Voce Saturation Stress"
|
||||
Type: 'Quantity'
|
||||
Units: 'kPa'
|
||||
URL: ''
|
||||
Description: >
|
||||
Saturation stress for Voce isotropic hardening [FreeCAD Pressure unit]
|
||||
VoceStrainScale:
|
||||
DisplayName: "Voce Strain Scale"
|
||||
Type: 'Float'
|
||||
Units: ''
|
||||
URL: ''
|
||||
Description: "Strain scale in Voce isotropic hardening [unitless]"
|
||||
Yld2004p18Coefficients:
|
||||
DisplayName: "Yld2004p18 Coefficients"
|
||||
Type: 'List'
|
||||
Units: ''
|
||||
URL: ''
|
||||
|
||||
@@ -30,46 +30,55 @@ Model:
|
||||
strain relationship is linear
|
||||
DOI: ""
|
||||
PoissonRatioXY:
|
||||
DisplayName: "Poisson Ratio XY"
|
||||
Type: 'Float'
|
||||
Units: ''
|
||||
URL: 'https://en.wikipedia.org/wiki/Poisson%27s_ratio'
|
||||
Description: "Poisson's ratio [unitless]"
|
||||
PoissonRatioXZ:
|
||||
DisplayName: "Poisson Ratio XZ"
|
||||
Type: 'Float'
|
||||
Units: ''
|
||||
URL: 'https://en.wikipedia.org/wiki/Poisson%27s_ratio'
|
||||
Description: "Poisson's ratio [unitless]"
|
||||
PoissonRatioYZ:
|
||||
DisplayName: "Poisson Ratio YZ"
|
||||
Type: 'Float'
|
||||
Units: 'Pressure'
|
||||
URL: 'https://en.wikipedia.org/wiki/Poisson%27s_ratio'
|
||||
Description: "Poisson's ratio [unitless]"
|
||||
ShearModulusXY:
|
||||
DisplayName: "Shear Modulus XY"
|
||||
Type: 'Quantity'
|
||||
Units: 'kPa'
|
||||
URL: 'https://en.wikipedia.org/wiki/Shear_modulus'
|
||||
Description: "Shear modulus in [FreeCAD Pressure unit]"
|
||||
ShearModulusXZ:
|
||||
DisplayName: "Shear Modulus XZ"
|
||||
Type: 'Quantity'
|
||||
Units: 'kPa'
|
||||
URL: 'https://en.wikipedia.org/wiki/Shear_modulus'
|
||||
Description: "Shear modulus in [FreeCAD Pressure unit]"
|
||||
ShearModulusYZ:
|
||||
DisplayName: "Shear Modulus YZ"
|
||||
Type: 'Quantity'
|
||||
Units: 'kPa'
|
||||
URL: 'https://en.wikipedia.org/wiki/Shear_modulus'
|
||||
Description: "Shear modulus in [FreeCAD Pressure unit]"
|
||||
YoungsModulusX:
|
||||
DisplayName: "Young's Modulus X"
|
||||
Type: 'Quantity'
|
||||
Units: 'kPa'
|
||||
URL: 'https://en.wikipedia.org/wiki/Young%27s_modulus'
|
||||
Description: "Young's modulus (or E-Module) in [FreeCAD Pressure unit]"
|
||||
YoungsModulusY:
|
||||
DisplayName: "Young's Modulus Y"
|
||||
Type: 'Quantity'
|
||||
Units: 'kPa'
|
||||
URL: 'https://en.wikipedia.org/wiki/Young%27s_modulus'
|
||||
Description: "Young's modulus (or E-Module) in [FreeCAD Pressure unit]"
|
||||
YoungsModulusZ:
|
||||
DisplayName: "Young's Modulus Z"
|
||||
Type: 'Quantity'
|
||||
Units: 'kPa'
|
||||
URL: 'https://en.wikipedia.org/wiki/Young%27s_modulus'
|
||||
|
||||
@@ -0,0 +1,58 @@
|
||||
---
|
||||
# ***************************************************************************
|
||||
# * *
|
||||
# * Copyright (c) 2023 David Carter <dcarter@davidcarter.ca> *
|
||||
# * *
|
||||
# * This program is free software; you can redistribute it and/or modify *
|
||||
# * it under the terms of the GNU Lesser General Public License (LGPL) *
|
||||
# * as published by the Free Software Foundation; either version 2 of *
|
||||
# * the License, or (at your option) any later version. *
|
||||
# * for detail see the LICENCE text file. *
|
||||
# * *
|
||||
# * This program is distributed in the hope that it will be useful, *
|
||||
# * but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
# * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
# * GNU Library General Public License for more details. *
|
||||
# * *
|
||||
# * You should have received a copy of the GNU Library General Public *
|
||||
# * License along with this program; if not, write to the Free Software *
|
||||
# * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
|
||||
# * USA *
|
||||
# * *
|
||||
# ***************************************************************************
|
||||
|
||||
Model:
|
||||
Name: 'PolynomialN1'
|
||||
UUID: '285a6042-0f0c-4a36-a898-4afadd6408ce'
|
||||
URL: 'http://www.dhondt.de/ccx_2.21.pdf'
|
||||
Description: >
|
||||
The polynomial hyperelastic material model is a phenomenological model
|
||||
of rubber elasticity.
|
||||
PolynomialN1:
|
||||
DisplayName: "Polynomial N=1"
|
||||
Type: '2DArray'
|
||||
Columns:
|
||||
Temperature:
|
||||
Type: 'Quantity'
|
||||
Units: 'C'
|
||||
URL: ''
|
||||
Description: ""
|
||||
C10:
|
||||
Type: 'Quantity'
|
||||
Units: 'Pa'
|
||||
URL: ''
|
||||
Description: ""
|
||||
C01:
|
||||
Type: 'Quantity'
|
||||
Units: 'Pa'
|
||||
URL: ''
|
||||
Description: ""
|
||||
D1:
|
||||
Type: 'Quantity'
|
||||
Units: '1/Pa'
|
||||
URL: ''
|
||||
Description: "D [1/FreeCAD Pressure unit]"
|
||||
URL: ''
|
||||
Description: >
|
||||
2 Dimensional array showing Polynomial N=1 properties as
|
||||
a function of temperature
|
||||
@@ -0,0 +1,78 @@
|
||||
---
|
||||
# ***************************************************************************
|
||||
# * *
|
||||
# * Copyright (c) 2023 David Carter <dcarter@davidcarter.ca> *
|
||||
# * *
|
||||
# * This program is free software; you can redistribute it and/or modify *
|
||||
# * it under the terms of the GNU Lesser General Public License (LGPL) *
|
||||
# * as published by the Free Software Foundation; either version 2 of *
|
||||
# * the License, or (at your option) any later version. *
|
||||
# * for detail see the LICENCE text file. *
|
||||
# * *
|
||||
# * This program is distributed in the hope that it will be useful, *
|
||||
# * but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
# * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
# * GNU Library General Public License for more details. *
|
||||
# * *
|
||||
# * You should have received a copy of the GNU Library General Public *
|
||||
# * License along with this program; if not, write to the Free Software *
|
||||
# * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
|
||||
# * USA *
|
||||
# * *
|
||||
# ***************************************************************************
|
||||
|
||||
Model:
|
||||
Name: 'PolynomialN2'
|
||||
UUID: '4c2fb7b2-5121-4d6f-be0d-8c5970c9e682'
|
||||
URL: 'http://www.dhondt.de/ccx_2.21.pdf'
|
||||
Description: >
|
||||
The polynomial hyperelastic material model is a phenomenological model
|
||||
of rubber elasticity.
|
||||
PolynomialN2:
|
||||
DisplayName: "Polynomial N=2"
|
||||
Type: '2DArray'
|
||||
Columns:
|
||||
Temperature:
|
||||
Type: 'Quantity'
|
||||
Units: 'C'
|
||||
URL: ''
|
||||
Description: ""
|
||||
C10:
|
||||
Type: 'Quantity'
|
||||
Units: 'Pa'
|
||||
URL: ''
|
||||
Description: ""
|
||||
C01:
|
||||
Type: 'Quantity'
|
||||
Units: 'Pa'
|
||||
URL: ''
|
||||
Description: ""
|
||||
C20:
|
||||
Type: 'Quantity'
|
||||
Units: 'Pa'
|
||||
URL: ''
|
||||
Description: ""
|
||||
C11:
|
||||
Type: 'Quantity'
|
||||
Units: 'Pa'
|
||||
URL: ''
|
||||
Description: ""
|
||||
C02:
|
||||
Type: 'Quantity'
|
||||
Units: 'Pa'
|
||||
URL: ''
|
||||
Description: ""
|
||||
D1:
|
||||
Type: 'Quantity'
|
||||
Units: '1/Pa'
|
||||
URL: ''
|
||||
Description: "D1 [1/FreeCAD Pressure unit]"
|
||||
D2:
|
||||
Type: 'Quantity'
|
||||
Units: '1/Pa'
|
||||
URL: ''
|
||||
Description: "D2 [1/FreeCAD Pressure unit]"
|
||||
URL: ''
|
||||
Description: >
|
||||
2 Dimensional array showing Polynomial N=2 properties as
|
||||
a function of temperature
|
||||
103
src/Mod/Material/Resources/Models/Mechanical/PolynomialN3.yml
Normal file
103
src/Mod/Material/Resources/Models/Mechanical/PolynomialN3.yml
Normal file
@@ -0,0 +1,103 @@
|
||||
---
|
||||
# ***************************************************************************
|
||||
# * *
|
||||
# * Copyright (c) 2023 David Carter <dcarter@davidcarter.ca> *
|
||||
# * *
|
||||
# * This program is free software; you can redistribute it and/or modify *
|
||||
# * it under the terms of the GNU Lesser General Public License (LGPL) *
|
||||
# * as published by the Free Software Foundation; either version 2 of *
|
||||
# * the License, or (at your option) any later version. *
|
||||
# * for detail see the LICENCE text file. *
|
||||
# * *
|
||||
# * This program is distributed in the hope that it will be useful, *
|
||||
# * but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
# * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
# * GNU Library General Public License for more details. *
|
||||
# * *
|
||||
# * You should have received a copy of the GNU Library General Public *
|
||||
# * License along with this program; if not, write to the Free Software *
|
||||
# * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
|
||||
# * USA *
|
||||
# * *
|
||||
# ***************************************************************************
|
||||
|
||||
Model:
|
||||
Name: 'PolynomialN3'
|
||||
UUID: 'e83ada22-947e-4beb-91e7-482a16f5ba77'
|
||||
URL: 'http://www.dhondt.de/ccx_2.21.pdf'
|
||||
Description: >
|
||||
The polynomial hyperelastic material model is a phenomenological model
|
||||
of rubber elasticity.
|
||||
PolynomialN3:
|
||||
DisplayName: "Polynomial N=3"
|
||||
Type: '2DArray'
|
||||
Columns:
|
||||
Temperature:
|
||||
Type: 'Quantity'
|
||||
Units: 'C'
|
||||
URL: ''
|
||||
Description: ""
|
||||
C10:
|
||||
Type: 'Quantity'
|
||||
Units: 'Pa'
|
||||
URL: ''
|
||||
Description: ""
|
||||
C01:
|
||||
Type: 'Quantity'
|
||||
Units: 'Pa'
|
||||
URL: ''
|
||||
Description: ""
|
||||
C20:
|
||||
Type: 'Quantity'
|
||||
Units: 'Pa'
|
||||
URL: ''
|
||||
Description: ""
|
||||
C11:
|
||||
Type: 'Quantity'
|
||||
Units: 'Pa'
|
||||
URL: ''
|
||||
Description: ""
|
||||
C02:
|
||||
Type: 'Quantity'
|
||||
Units: 'Pa'
|
||||
URL: ''
|
||||
Description: ""
|
||||
C30:
|
||||
Type: 'Quantity'
|
||||
Units: 'Pa'
|
||||
URL: ''
|
||||
Description: ""
|
||||
C21:
|
||||
Type: 'Quantity'
|
||||
Units: 'Pa'
|
||||
URL: ''
|
||||
Description: ""
|
||||
C12:
|
||||
Type: 'Quantity'
|
||||
Units: 'Pa'
|
||||
URL: ''
|
||||
Description: ""
|
||||
C03:
|
||||
Type: 'Quantity'
|
||||
Units: 'Pa'
|
||||
URL: ''
|
||||
Description: ""
|
||||
D1:
|
||||
Type: 'Quantity'
|
||||
Units: '1/Pa'
|
||||
URL: ''
|
||||
Description: "D1 [1/FreeCAD Pressure unit]"
|
||||
D2:
|
||||
Type: 'Quantity'
|
||||
Units: '1/Pa'
|
||||
URL: ''
|
||||
Description: "D2 [1/FreeCAD Pressure unit]"
|
||||
D3:
|
||||
Type: 'Quantity'
|
||||
Units: '1/Pa'
|
||||
URL: ''
|
||||
Description: "D3 [1/FreeCAD Pressure unit]"
|
||||
URL: ''
|
||||
Description: >
|
||||
2 Dimensional array showing Polynomial N=3 properties as
|
||||
a function of temperature
|
||||
@@ -0,0 +1,53 @@
|
||||
---
|
||||
# ***************************************************************************
|
||||
# * *
|
||||
# * Copyright (c) 2023 David Carter <dcarter@davidcarter.ca> *
|
||||
# * *
|
||||
# * This program is free software; you can redistribute it and/or modify *
|
||||
# * it under the terms of the GNU Lesser General Public License (LGPL) *
|
||||
# * as published by the Free Software Foundation; either version 2 of *
|
||||
# * the License, or (at your option) any later version. *
|
||||
# * for detail see the LICENCE text file. *
|
||||
# * *
|
||||
# * This program is distributed in the hope that it will be useful, *
|
||||
# * but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
# * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
# * GNU Library General Public License for more details. *
|
||||
# * *
|
||||
# * You should have received a copy of the GNU Library General Public *
|
||||
# * License along with this program; if not, write to the Free Software *
|
||||
# * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
|
||||
# * USA *
|
||||
# * *
|
||||
# ***************************************************************************
|
||||
|
||||
Model:
|
||||
Name: 'ReducdedPolynomialN1'
|
||||
UUID: 'f8052a3c-db17-42ea-b2be-13aa5ef30730'
|
||||
URL: 'http://www.dhondt.de/ccx_2.21.pdf'
|
||||
Description: >
|
||||
The polynomial hyperelastic material model is a phenomenological model
|
||||
of rubber elasticity.
|
||||
ReducdedPolynomialN1:
|
||||
DisplayName: "Reduced Polynomial N=1"
|
||||
Type: '2DArray'
|
||||
Columns:
|
||||
Temperature:
|
||||
Type: 'Quantity'
|
||||
Units: 'C'
|
||||
URL: ''
|
||||
Description: ""
|
||||
C10:
|
||||
Type: 'Quantity'
|
||||
Units: 'Pa'
|
||||
URL: ''
|
||||
Description: ""
|
||||
D1:
|
||||
Type: 'Quantity'
|
||||
Units: '1/Pa'
|
||||
URL: ''
|
||||
Description: "D1 [1/FreeCAD Pressure unit]"
|
||||
URL: ''
|
||||
Description: >
|
||||
2 Dimensional array showing Reduced Polynomial N=1 properties as
|
||||
a function of temperature
|
||||
@@ -0,0 +1,63 @@
|
||||
---
|
||||
# ***************************************************************************
|
||||
# * *
|
||||
# * Copyright (c) 2023 David Carter <dcarter@davidcarter.ca> *
|
||||
# * *
|
||||
# * This program is free software; you can redistribute it and/or modify *
|
||||
# * it under the terms of the GNU Lesser General Public License (LGPL) *
|
||||
# * as published by the Free Software Foundation; either version 2 of *
|
||||
# * the License, or (at your option) any later version. *
|
||||
# * for detail see the LICENCE text file. *
|
||||
# * *
|
||||
# * This program is distributed in the hope that it will be useful, *
|
||||
# * but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
# * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
# * GNU Library General Public License for more details. *
|
||||
# * *
|
||||
# * You should have received a copy of the GNU Library General Public *
|
||||
# * License along with this program; if not, write to the Free Software *
|
||||
# * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
|
||||
# * USA *
|
||||
# * *
|
||||
# ***************************************************************************
|
||||
|
||||
Model:
|
||||
Name: 'ReducdedPolynomialN2'
|
||||
UUID: 'c52b5021-4bb8-441c-80d4-855fce9de15e'
|
||||
URL: 'http://www.dhondt.de/ccx_2.21.pdf'
|
||||
Description: >
|
||||
The polynomial hyperelastic material model is a phenomenological model
|
||||
of rubber elasticity.
|
||||
ReducdedPolynomialN2:
|
||||
DisplayName: "Reduced Polynomial N=2"
|
||||
Type: '2DArray'
|
||||
Columns:
|
||||
Temperature:
|
||||
Type: 'Quantity'
|
||||
Units: 'C'
|
||||
URL: ''
|
||||
Description: ""
|
||||
C10:
|
||||
Type: 'Quantity'
|
||||
Units: 'Pa'
|
||||
URL: ''
|
||||
Description: ""
|
||||
C20:
|
||||
Type: 'Quantity'
|
||||
Units: 'Pa'
|
||||
URL: ''
|
||||
Description: ""
|
||||
D1:
|
||||
Type: 'Quantity'
|
||||
Units: '1/Pa'
|
||||
URL: ''
|
||||
Description: "D1 [1/FreeCAD Pressure unit]"
|
||||
D2:
|
||||
Type: 'Quantity'
|
||||
Units: '1/Pa'
|
||||
URL: ''
|
||||
Description: "D2 [1/FreeCAD Pressure unit]"
|
||||
URL: ''
|
||||
Description: >
|
||||
2 Dimensional array showing Reduced Polynomial N=2 properties as
|
||||
a function of temperature
|
||||
@@ -0,0 +1,73 @@
|
||||
---
|
||||
# ***************************************************************************
|
||||
# * *
|
||||
# * Copyright (c) 2023 David Carter <dcarter@davidcarter.ca> *
|
||||
# * *
|
||||
# * This program is free software; you can redistribute it and/or modify *
|
||||
# * it under the terms of the GNU Lesser General Public License (LGPL) *
|
||||
# * as published by the Free Software Foundation; either version 2 of *
|
||||
# * the License, or (at your option) any later version. *
|
||||
# * for detail see the LICENCE text file. *
|
||||
# * *
|
||||
# * This program is distributed in the hope that it will be useful, *
|
||||
# * but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
# * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
# * GNU Library General Public License for more details. *
|
||||
# * *
|
||||
# * You should have received a copy of the GNU Library General Public *
|
||||
# * License along with this program; if not, write to the Free Software *
|
||||
# * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
|
||||
# * USA *
|
||||
# * *
|
||||
# ***************************************************************************
|
||||
|
||||
Model:
|
||||
Name: 'ReducdedPolynomialN3'
|
||||
UUID: 'fa4e58b4-74c7-4292-8e79-7d5fd232fb55'
|
||||
URL: 'http://www.dhondt.de/ccx_2.21.pdf'
|
||||
Description: >
|
||||
The polynomial hyperelastic material model is a phenomenological model
|
||||
of rubber elasticity.
|
||||
ReducdedPolynomialN3:
|
||||
DisplayName: "Reduced Polynomial N=3"
|
||||
Type: '2DArray'
|
||||
Columns:
|
||||
Temperature:
|
||||
Type: 'Quantity'
|
||||
Units: 'C'
|
||||
URL: ''
|
||||
Description: ""
|
||||
C10:
|
||||
Type: 'Quantity'
|
||||
Units: 'Pa'
|
||||
URL: ''
|
||||
Description: ""
|
||||
C20:
|
||||
Type: 'Quantity'
|
||||
Units: 'Pa'
|
||||
URL: ''
|
||||
Description: ""
|
||||
C30:
|
||||
Type: 'Quantity'
|
||||
Units: 'Pa'
|
||||
URL: ''
|
||||
Description: ""
|
||||
D1:
|
||||
Type: 'Quantity'
|
||||
Units: '1/Pa'
|
||||
URL: ''
|
||||
Description: "D1 [1/FreeCAD Pressure unit]"
|
||||
D2:
|
||||
Type: 'Quantity'
|
||||
Units: '1/Pa'
|
||||
URL: ''
|
||||
Description: "D2 [1/FreeCAD Pressure unit]"
|
||||
D3:
|
||||
Type: 'Quantity'
|
||||
Units: '1/Pa'
|
||||
URL: ''
|
||||
Description: "D3 [1/FreeCAD Pressure unit]"
|
||||
URL: ''
|
||||
Description: >
|
||||
2 Dimensional array showing Reduced Polynomial N=3 properties as
|
||||
a function of temperature
|
||||
73
src/Mod/Material/Resources/Models/Mechanical/Yeoh.yml
Normal file
73
src/Mod/Material/Resources/Models/Mechanical/Yeoh.yml
Normal file
@@ -0,0 +1,73 @@
|
||||
---
|
||||
# ***************************************************************************
|
||||
# * *
|
||||
# * Copyright (c) 2023 David Carter <dcarter@davidcarter.ca> *
|
||||
# * *
|
||||
# * This program is free software; you can redistribute it and/or modify *
|
||||
# * it under the terms of the GNU Lesser General Public License (LGPL) *
|
||||
# * as published by the Free Software Foundation; either version 2 of *
|
||||
# * the License, or (at your option) any later version. *
|
||||
# * for detail see the LICENCE text file. *
|
||||
# * *
|
||||
# * This program is distributed in the hope that it will be useful, *
|
||||
# * but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
# * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
# * GNU Library General Public License for more details. *
|
||||
# * *
|
||||
# * You should have received a copy of the GNU Library General Public *
|
||||
# * License along with this program; if not, write to the Free Software *
|
||||
# * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
|
||||
# * USA *
|
||||
# * *
|
||||
# ***************************************************************************
|
||||
|
||||
Model:
|
||||
Name: 'Yeoh'
|
||||
UUID: 'cd13c492-21a9-4578-8191-deec003e4c01'
|
||||
URL: 'http://www.dhondt.de/ccx_2.21.pdf'
|
||||
Description: >
|
||||
The Yeoh hyperelastic material model is a phenomenological model for
|
||||
the deformation of nearly incompressible, nonlinear elastic materials
|
||||
such as rubber.
|
||||
Yeoh:
|
||||
Type: '2DArray'
|
||||
Columns:
|
||||
Temperature:
|
||||
Type: 'Quantity'
|
||||
Units: 'C'
|
||||
URL: ''
|
||||
Description: ""
|
||||
C10:
|
||||
Type: 'Quantity'
|
||||
Units: 'Pa'
|
||||
URL: ''
|
||||
Description: ""
|
||||
C20:
|
||||
Type: 'Quantity'
|
||||
Units: 'Pa'
|
||||
URL: ''
|
||||
Description: ""
|
||||
C30:
|
||||
Type: 'Quantity'
|
||||
Units: 'Pa'
|
||||
URL: ''
|
||||
Description: ""
|
||||
D1:
|
||||
Type: 'Quantity'
|
||||
Units: '1/Pa'
|
||||
URL: ''
|
||||
Description: "D1 [1/FreeCAD Pressure unit]"
|
||||
D2:
|
||||
Type: 'Quantity'
|
||||
Units: '1/Pa'
|
||||
URL: ''
|
||||
Description: "D2 [1/FreeCAD Pressure unit]"
|
||||
D3:
|
||||
Type: 'Quantity'
|
||||
Units: '1/Pa'
|
||||
URL: ''
|
||||
Description: "D3 [1/FreeCAD Pressure unit]"
|
||||
URL: ''
|
||||
Description: >
|
||||
2 Dimensional array showing Yeoh properties as
|
||||
a function of temperature
|
||||
@@ -31,11 +31,13 @@ AppearanceModel:
|
||||
- BasicRendering:
|
||||
UUID: 'f006c7e4-35b7-43d5-bbf9-c5d572309e6e'
|
||||
FragmentShader:
|
||||
DisplayName: "Fragment Shader"
|
||||
Type: 'String'
|
||||
Units: ''
|
||||
URL: ''
|
||||
Description: " "
|
||||
VertexShader:
|
||||
DisplayName: "Vertex Shader"
|
||||
Type: 'String'
|
||||
Units: ''
|
||||
URL: ''
|
||||
|
||||
@@ -28,16 +28,19 @@ AppearanceModel:
|
||||
Description: "default rendering model"
|
||||
DOI: ""
|
||||
AmbientColor:
|
||||
DisplayName: "Ambient Color"
|
||||
Type: 'Color'
|
||||
Units: ''
|
||||
URL: ''
|
||||
Description: " "
|
||||
DiffuseColor:
|
||||
DisplayName: "Diffuse Color"
|
||||
Type: 'Color'
|
||||
Units: ''
|
||||
URL: ''
|
||||
Description: " "
|
||||
EmissiveColor:
|
||||
DisplayName: "Emissive Color"
|
||||
Type: 'Color'
|
||||
Units: ''
|
||||
URL: ''
|
||||
@@ -48,6 +51,7 @@ AppearanceModel:
|
||||
URL: ''
|
||||
Description: " "
|
||||
SpecularColor:
|
||||
DisplayName: "Specular Color"
|
||||
Type: 'Color'
|
||||
Units: ''
|
||||
URL: ''
|
||||
|
||||
@@ -31,11 +31,13 @@ AppearanceModel:
|
||||
- BasicRendering:
|
||||
UUID: 'f006c7e4-35b7-43d5-bbf9-c5d572309e6e'
|
||||
TexturePath:
|
||||
DisplayName: "Texture Path"
|
||||
Type: 'File'
|
||||
Units: ''
|
||||
URL: ''
|
||||
Description: " "
|
||||
TextureScaling:
|
||||
DisplayName: "Texture Scaling"
|
||||
Type: 'Float'
|
||||
Units: ''
|
||||
URL: ''
|
||||
|
||||
@@ -28,31 +28,37 @@ AppearanceModel:
|
||||
Description: "default vector rendering model"
|
||||
DOI: ""
|
||||
SectionFillPattern:
|
||||
DisplayName: "Section Fill Pattern"
|
||||
Type: 'File'
|
||||
Units: ''
|
||||
URL: ''
|
||||
Description: " "
|
||||
SectionLinewidth:
|
||||
DisplayName: "Section Linewidth"
|
||||
Type: 'Float'
|
||||
Units: ''
|
||||
URL: ''
|
||||
Description: " "
|
||||
SectionColor:
|
||||
DisplayName: "Section Color"
|
||||
Type: 'Color'
|
||||
Units: ''
|
||||
URL: ''
|
||||
Description: " "
|
||||
ViewColor:
|
||||
DisplayName: "View Color"
|
||||
Type: 'Color'
|
||||
Units: ''
|
||||
URL: ''
|
||||
Description: " "
|
||||
ViewFillPattern:
|
||||
DisplayName: "View Fill Pattern"
|
||||
Type: 'Boolean'
|
||||
Units: ''
|
||||
URL: ''
|
||||
Description: " "
|
||||
ViewLinewidth:
|
||||
DisplayName: "View Linewidth"
|
||||
Type: 'Float'
|
||||
Units: ''
|
||||
URL: ''
|
||||
|
||||
@@ -28,16 +28,19 @@ Model:
|
||||
Description: "default thermal model"
|
||||
DOI: ""
|
||||
SpecificHeat:
|
||||
DisplayName: "Specific Heat"
|
||||
Type: 'Quantity'
|
||||
Units: 'J/kg/K'
|
||||
URL: 'https://en.wikipedia.org/wiki/Heat_capacity'
|
||||
Description: "Specific capacity in [FreeCAD SpecificHeat unit]"
|
||||
ThermalConductivity:
|
||||
DisplayName: "Thermal Conductivity"
|
||||
Type: 'Quantity'
|
||||
Units: 'W/m/K'
|
||||
URL: 'https://en.wikipedia.org/wiki/Thermal_conductivity'
|
||||
Description: "Thermal conductivity in [FreeCAD ThermalConductivity unit]"
|
||||
ThermalExpansionCoefficient:
|
||||
DisplayName: "Thermal Expansion Coefficient"
|
||||
Type: 'Quantity'
|
||||
Units: 'm/m/K'
|
||||
URL:
|
||||
|
||||
@@ -49,17 +49,20 @@ protected:
|
||||
{
|
||||
// 2D Properties
|
||||
modelProp = Materials::ModelProperty(QString::fromStdString("Density"), // Name
|
||||
QString::fromStdString("D"), // Header
|
||||
QString::fromStdString("2DArray"), // Type
|
||||
QString::fromStdString(""), // Units
|
||||
QString::fromStdString(""), // URL
|
||||
QString::fromStdString("desc")); // Description
|
||||
modelProp1 = Materials::ModelProperty(QString::fromStdString("Temperature"),
|
||||
QString::fromStdString("T"),
|
||||
QString::fromStdString("Quantity"),
|
||||
QString::fromStdString("C"),
|
||||
QString::fromStdString(""),
|
||||
QString::fromStdString("desc1"));
|
||||
modelProp2 = Materials::ModelProperty(
|
||||
QString::fromStdString("Density"),
|
||||
QString::fromStdString("D"),
|
||||
QString::fromStdString("Quantity"),
|
||||
QString::fromStdString("kg/m^3"),
|
||||
QString::fromStdString("https://en.wikipedia.org/wiki/Density"),
|
||||
@@ -70,23 +73,27 @@ protected:
|
||||
|
||||
// 3D properties
|
||||
model3DProp = Materials::ModelProperty(
|
||||
QString::fromStdString("StressStrain"), // Name
|
||||
QString::fromStdString("3DArray"), // Type
|
||||
QString::fromStdString(""), // Units
|
||||
QString::fromStdString(""), // URL
|
||||
QString::fromStdString("StressStrain"), // Name
|
||||
QString::fromStdString("Stress / Strain"), // Header
|
||||
QString::fromStdString("3DArray"), // Type
|
||||
QString::fromStdString(""), // Units
|
||||
QString::fromStdString(""), // URL
|
||||
QString::fromStdString("3 Dimensional array showing stress and strain as a function of "
|
||||
"temperature")); // Description
|
||||
model3DProp1 = Materials::ModelProperty(QString::fromStdString("Temperature"),
|
||||
QString::fromStdString("T"),
|
||||
QString::fromStdString("Quantity"),
|
||||
QString::fromStdString("C"),
|
||||
QString::fromStdString(""),
|
||||
QString::fromStdString("desc1"));
|
||||
model3DProp2 = Materials::ModelProperty(QString::fromStdString("Stress"),
|
||||
QString::fromStdString("Stress"),
|
||||
QString::fromStdString("Quantity"),
|
||||
QString::fromStdString("MPa"),
|
||||
QString::fromStdString(""),
|
||||
QString::fromStdString("desc2"));
|
||||
model3DProp3 = Materials::ModelProperty(QString::fromStdString("Strain"),
|
||||
QString::fromStdString("Strain"),
|
||||
QString::fromStdString("Quantity"),
|
||||
QString::fromStdString("MPa"),
|
||||
QString::fromStdString(""),
|
||||
|
||||
@@ -64,12 +64,14 @@ TEST_F(TestModelProperties, TestBasic)
|
||||
QString::fromStdString("2"),
|
||||
QString::fromStdString("3"),
|
||||
QString::fromStdString("4"),
|
||||
QString::fromStdString("5"));
|
||||
QString::fromStdString("5"),
|
||||
QString::fromStdString("6"));
|
||||
EXPECT_EQ(prop.getName(), QString::fromStdString("1"));
|
||||
EXPECT_EQ(prop.getPropertyType(), QString::fromStdString("2"));
|
||||
EXPECT_EQ(prop.getUnits(), QString::fromStdString("3"));
|
||||
EXPECT_EQ(prop.getURL(), QString::fromStdString("4"));
|
||||
EXPECT_EQ(prop.getDescription(), QString::fromStdString("5"));
|
||||
EXPECT_EQ(prop.getDisplayName(), QString::fromStdString("2"));
|
||||
EXPECT_EQ(prop.getPropertyType(), QString::fromStdString("3"));
|
||||
EXPECT_EQ(prop.getUnits(), QString::fromStdString("4"));
|
||||
EXPECT_EQ(prop.getURL(), QString::fromStdString("5"));
|
||||
EXPECT_EQ(prop.getDescription(), QString::fromStdString("6"));
|
||||
EXPECT_TRUE(prop.getInheritance().isNull());
|
||||
EXPECT_FALSE(prop.isInherited());
|
||||
EXPECT_EQ(prop.columns(), 0);
|
||||
@@ -85,17 +87,20 @@ TEST_F(TestModelProperties, TestAddColumns)
|
||||
QString::fromStdString("2"),
|
||||
QString::fromStdString("3"),
|
||||
QString::fromStdString("4"),
|
||||
QString::fromStdString("5"));
|
||||
QString::fromStdString("5"),
|
||||
QString::fromStdString("6"));
|
||||
auto prop1 = Materials::ModelProperty(QString::fromStdString("10"),
|
||||
QString::fromStdString("9"),
|
||||
QString::fromStdString("8"),
|
||||
QString::fromStdString("7"),
|
||||
QString::fromStdString("6"));
|
||||
QString::fromStdString("6"),
|
||||
QString::fromStdString("5"));
|
||||
auto prop2 = Materials::ModelProperty(QString::fromStdString("a"),
|
||||
QString::fromStdString("b"),
|
||||
QString::fromStdString("c"),
|
||||
QString::fromStdString("d"),
|
||||
QString::fromStdString("e"));
|
||||
QString::fromStdString("e"),
|
||||
QString::fromStdString("f"));
|
||||
|
||||
EXPECT_EQ(prop.columns(), 0);
|
||||
prop.addColumn(prop1);
|
||||
@@ -106,20 +111,22 @@ TEST_F(TestModelProperties, TestAddColumns)
|
||||
auto columns = prop.getColumns();
|
||||
auto entry1 = columns.at(0);
|
||||
EXPECT_EQ(entry1.getName(), QString::fromStdString("10"));
|
||||
EXPECT_EQ(entry1.getPropertyType(), QString::fromStdString("9"));
|
||||
EXPECT_EQ(entry1.getUnits(), QString::fromStdString("8"));
|
||||
EXPECT_EQ(entry1.getURL(), QString::fromStdString("7"));
|
||||
EXPECT_EQ(entry1.getDescription(), QString::fromStdString("6"));
|
||||
EXPECT_EQ(entry1.getDisplayName(), QString::fromStdString("9"));
|
||||
EXPECT_EQ(entry1.getPropertyType(), QString::fromStdString("8"));
|
||||
EXPECT_EQ(entry1.getUnits(), QString::fromStdString("7"));
|
||||
EXPECT_EQ(entry1.getURL(), QString::fromStdString("6"));
|
||||
EXPECT_EQ(entry1.getDescription(), QString::fromStdString("5"));
|
||||
EXPECT_TRUE(entry1.getInheritance().isNull());
|
||||
EXPECT_FALSE(entry1.isInherited());
|
||||
EXPECT_EQ(entry1.columns(), 0);
|
||||
|
||||
auto entry2 = columns.at(1);
|
||||
EXPECT_EQ(entry2.getName(), QString::fromStdString("a"));
|
||||
EXPECT_EQ(entry2.getPropertyType(), QString::fromStdString("b"));
|
||||
EXPECT_EQ(entry2.getUnits(), QString::fromStdString("c"));
|
||||
EXPECT_EQ(entry2.getURL(), QString::fromStdString("d"));
|
||||
EXPECT_EQ(entry2.getDescription(), QString::fromStdString("e"));
|
||||
EXPECT_EQ(entry2.getDisplayName(), QString::fromStdString("b"));
|
||||
EXPECT_EQ(entry2.getPropertyType(), QString::fromStdString("c"));
|
||||
EXPECT_EQ(entry2.getUnits(), QString::fromStdString("d"));
|
||||
EXPECT_EQ(entry2.getURL(), QString::fromStdString("e"));
|
||||
EXPECT_EQ(entry2.getDescription(), QString::fromStdString("f"));
|
||||
EXPECT_TRUE(entry2.getInheritance().isNull());
|
||||
EXPECT_FALSE(entry2.isInherited());
|
||||
EXPECT_EQ(entry2.columns(), 0);
|
||||
|
||||
Reference in New Issue
Block a user