====== Commit 2006-09-19 ====== ===== Modifs ===== ==== Nettoyage des materiaux visco-élastiques ==== * **mtMaterialLaws/viscoelastic:** * Création de functions hyperélastiques de Ogden et Hencky. * Création d'une loi visco-élastique composée d'un ressort et d'un dashpot, chacun obéissant à une loi hyperélastique. * **mtFEM/mtFEM:** * Le père d'un ''materialLaw'' est le ''materialLawSet'', ce qui permet de définir une loi visco-élastique à partir de lois hyperélastique. * **mtMaterials/volumes:** * Création d'un matériau visco-élastique avec une branche principale (spring et dashpot en parallèle) visco-élastique et une branche de Maxwell (spring et dashpot en série) visco-élastique. * Création d'un matériau pouvant utiliser une fonction hyperélastique. * **mtMath/mtMath:** * Nettoyage des opérations spectrales sur matrices. ==== Exemples d'application ==== * **Création de lois de type Ogden et Hencky:** materLawSet.define(index, OgdenHyperFunction) materLawSet[index].put(OGDEN_MU1, mu1) materLawSet[index].put(OGDEN_MU2, mu2) materLawSet[index].put(OGDEN_MU3, mu3) materLawSet[index].put(OGDEN_A1, a1) materLawSet[index].put(OGDEN_A2, a2) materLawSet[index].put(OGDEN_A3, a3) materLawSet.define(index, HenckyHyperFunction) materLawSet[index].put(HENCKY_MU, mu) * **Création d'une loi visco-élastique** avec ''sl'' le numéro de la loi de type ''HyperFunction'' correspondant au spring et ''dl'' le numéro de la loi de type ''HyperFunction'' correspondant au dashpot: materLawSet.define(index, IsoViscoElasticFunction) materLawSet[index].put(VE_SPRING_LAW, sl) materLawSet[index].put(VE_DASHPOT_LAW, dl) * **Création d'un matériau visco-élastique** avec ''mainLaw'' le numéro de la loi de type ''IsoViscoElasticFunction'' correspondant à la branche principale et ''maxwellLaw'' le numéro de la loi de type ''IsoViscoElasticFunction'' correspondant à la branche de maxwell: materSet.define(materIndex, VeIsoHyperPk2Material) materSet[materIndex].put(MASS_DENSITY, rho) materSet[materIndex].put(HYPER_K0, k) materSet[materIndex].put(MAIN_FUNCTION_NO, mainLaw) materSet[materIndex].put(MAXWELL_FUNCTION_NO, maxwellLaw) * **Création d'un matériau hyperélastique** avec ''hyperLaw'' le numéro de la loi de type ''HyperFunction'': materSet.define(materIndex, FunctionBasedHyperPk2Material) materSet[materIndex].put(MASS_DENSITY, rho) materSet[materIndex].put(HYPER_K0, k) materSet[materIndex].put(HYPER_FUNCTION_NO, hyperLaw) * En utilsant les **macros de toolbox**, un ancien matériaux OHOH devient: materSet = domain.getMaterialSet() materLawSet = domain.getMaterialLawSet() materLawOgden(materLawSet, 1, 0., 0., 0., 1.8, -2., 7.) materLawHencky(materLawSet, 2, 0.) materLawOgden(materLawSet, 3, 51.4, -18., 3.86, 1.8, -2.0, 7.) materLawHencky(materLawSet, 4, 1361.) materLawIsoVe(materLawSet, 11, 1, 2) materLawIsoVe(materLawSet, 12, 3, 4) materialEvIso(materSet, 1, 7.895e-9, 10000.0, 11, 12) ==== TO DO list==== * Des fonctions sur la décomposition spectrale sont appliquées directement sur les valeurs propres au sein du matériau. Cela pourrait être déplacé dans le loi visco-élastique? * Le pas de temps explicite est peut-être trop petit car ''getG0'' n'est pas rempli dans le matériau ''veIsoHyperPk2Material''. * Le matériau ''veIsoHyperPk2Material'' ne contient qu'une seule branche de maxwell, une généralisation à n branches est envisageable. ===== Fichiers ajoutés/supprimés ===== A mtMaterialLaws\viscoelastic\HenckyHyperFunction.cpp A mtMaterialLaws\viscoelastic\HenckyHyperFunction.h A mtMaterialLaws\viscoelastic\HenckyHyperFunctionShcuts.h A mtMaterialLaws\viscoelastic\HenckyHyperFunctionShcuts.inl A mtMaterialLaws\viscoelastic\HenckyStaticFunction.cpp A mtMaterialLaws\viscoelastic\HenckyStaticFunction.h A mtMaterialLaws\viscoelastic\HyperFunction.cpp A mtMaterialLaws\viscoelastic\HyperFunction.h A mtMaterialLaws\viscoelastic\HyperFunctionShcuts.h A mtMaterialLaws\viscoelastic\HyperFunctionShcuts.inl A mtMaterialLaws\viscoelastic\IsoViscoElasticFunction.cpp A mtMaterialLaws\viscoelastic\IsoViscoElasticFunction.h A mtMaterialLaws\viscoelastic\IsoViscoElasticFunctionShcuts.h A mtMaterialLaws\viscoelastic\IsoViscoElasticFunctionShcuts.inl A mtMaterialLaws\viscoelastic\OgdenHyperFunction.cpp A mtMaterialLaws\viscoelastic\OgdenHyperFunction.h A mtMaterialLaws\viscoelastic\OgdenHyperFunctionShcuts.h A mtMaterialLaws\viscoelastic\OgdenHyperFunctionShcuts.inl A mtMaterialLaws\viscoelastic\OgdenStaticFunction.cpp A mtMaterialLaws\viscoelastic\OgdenStaticFunction.h A mtMaterialLaws\viscoelastic\ViscoElasticFunction.cpp A mtMaterialLaws\viscoelastic\ViscoElasticFunction.h A mtMaterialLaws\viscoelastic\ViscoElasticFunctionShcuts.h A mtMaterialLaws\viscoelastic\ViscoElasticFunctionShcuts.inl A mtMaterials\volumes\FunctionBasedHyperPk2GpState.cpp A mtMaterials\volumes\FunctionBasedHyperPk2GpState.h A mtMaterials\volumes\FunctionBasedHyperPk2Material.cpp A mtMaterials\volumes\FunctionBasedHyperPk2Material.h A mtMaterials\volumes\FunctionBasedHyperPk2MatShcuts.cpp A mtMaterials\volumes\FunctionBasedHyperPk2MatShcuts.h A mtMaterials\volumes\VeIsoHyperPk2GpkState.cpp A mtMaterials\volumes\VeIsoHyperPk2GpkState.h A mtMaterials\volumes\VeIsoHyperPk2GpState.cpp A mtMaterials\volumes\VeIsoHyperPk2GpState.h A mtMaterials\volumes\VeIsoHyperPk2Material.cpp A mtMaterials\volumes\VeIsoHyperPk2Material.h A mtMaterials\volumes\VeIsoHyperPk2MatShcuts.cpp A mtMaterials\volumes\VeIsoHyperPk2MatShcuts.h R mtMaterials\volumes\HenckyFunctions.cpp R mtMaterials\volumes\HenckyFunctions.h R mtMaterials\volumes\OgdenFunctions.cpp R mtMaterials\volumes\OgdenFunctions.h R mtMaterials\volumes\OgdenHyperPk2GpState.cpp R mtMaterials\volumes\OgdenHyperPk2GpState.h R mtMaterials\volumes\OgdenHyperPk2Material.cpp R mtMaterials\volumes\OgdenHyperPk2Material.h R mtMaterials\volumes\OgdenHyperPk2MatShcuts.cpp R mtMaterials\volumes\OgdenHyperPk2MatShcuts.h R mtMaterials\volumes\OgdenStaticFunctions.cpp R mtMaterials\volumes\OgdenStaticFunctions.h R mtMaterials\volumes\VeIsoHyperHHHHPk2GpkState.cpp R mtMaterials\volumes\VeIsoHyperHHHHPk2GpkState.h R mtMaterials\volumes\VeIsoHyperHHHHPk2GpState.cpp R mtMaterials\volumes\VeIsoHyperHHHHPk2GpState.h R mtMaterials\volumes\VeIsoHyperHHHHPk2Material.cpp R mtMaterials\volumes\VeIsoHyperHHHHPk2Material.h R mtMaterials\volumes\VeIsoHyperHHHHPk2MatShcuts.cpp R mtMaterials\volumes\VeIsoHyperHHHHPk2MatShcuts.h R mtMaterials\volumes\VeIsoHyperOHHHPk2GpkState.cpp R mtMaterials\volumes\VeIsoHyperOHHHPk2GpkState.h R mtMaterials\volumes\VeIsoHyperOHHHPk2GpState.cpp R mtMaterials\volumes\VeIsoHyperOHHHPk2GpState.h R mtMaterials\volumes\VeIsoHyperOHHHPk2Material.cpp R mtMaterials\volumes\VeIsoHyperOHHHPk2Material.h R mtMaterials\volumes\VeIsoHyperOHHHPk2MatShcuts.cpp R mtMaterials\volumes\VeIsoHyperOHHHPk2MatShcuts.h R mtMaterials\volumes\VeIsoHyperOHOHPk2GpkState.cpp R mtMaterials\volumes\VeIsoHyperOHOHPk2GpkState.h R mtMaterials\volumes\VeIsoHyperOHOHPk2GpState.cpp R mtMaterials\volumes\VeIsoHyperOHOHPk2GpState.h R mtMaterials\volumes\VeIsoHyperOHOHPk2Material.cpp R mtMaterials\volumes\VeIsoHyperOHOHPk2Material.h R mtMaterials\volumes\VeIsoHyperOHOHPk2MatShcuts.cpp R mtMaterials\volumes\VeIsoHyperOHOHPk2MatShcuts.h R mtMaterials\volumes\VeIsoHyperOHOOPk2GpkState.cpp R mtMaterials\volumes\VeIsoHyperOHOOPk2GpkState.h R mtMaterials\volumes\VeIsoHyperOHOOPk2GpState.cpp R mtMaterials\volumes\VeIsoHyperOHOOPk2GpState.h R mtMaterials\volumes\VeIsoHyperOHOOPk2Material.cpp R mtMaterials\volumes\VeIsoHyperOHOOPk2Material.h R mtMaterials\volumes\VeIsoHyperOHOOPk2MatShcuts.cpp R mtMaterials\volumes\VeIsoHyperOHOOPk2MatShcuts.h R mtMaterials\volumes\ViscoElasticFunctionsHHHH.cpp R mtMaterials\volumes\ViscoElasticFunctionsHHHH.h R mtMaterials\volumes\ViscoElasticFunctionsOHHH.cpp R mtMaterials\volumes\ViscoElasticFunctionsOHHH.h R mtMaterials\volumes\ViscoElasticFunctionsOHOH.cpp R mtMaterials\volumes\ViscoElasticFunctionsOHOH.h R mtMaterials\volumes\ViscoElasticFunctionsOHOO.cpp R mtMaterials\volumes\ViscoElasticFunctionsOHOO.h