Table of Contents

Commit 2016-11-08

Robustification batterie (-fpe) Elimination des blas dans systèmes petite taille Simplification interface FrequencyAnalysis

Robustification batteries

Suite à la découverte d'une division par 0 dans le matrices de raideur numériques, j'ai rendu possible l'execution de la batterie avec l'option “fpe” (cad sans laisser au processeur la possibilité de gérer les divisions par 0, sqrt(neg), … à travers des “NotANumber” “NaN”):

 
metafor -fpe
metafor_d -fpe
python battery.py --fpe
python battery.py --debug --fpe 

La batterie ne passe pas entièrement en “-fpe” (pas encore tout corrigé), et sous linux, la batterie ne démarre même pas en “-fpe” ⇒ à corriger…

Le lancement de tests instables en debug et avec l'option “-fpe” m'a permis de retrouver bon nombre de bugs :

MechanicalTimeIntegration::getThermalTheta()

''mtMath::LineSearch''

''mtMaterial::PlasticCriterion''

"ContinuousAnisoDamageEvpIsoHHypoMaterial" / "ContinuousDamageEvpIsoHHypoMaterial" :

''EvpIsoHDamageHypoMaterial'' : Implémentation Gurson de Laurent Adam

PowerIsotropicHardening

$$ \sigma_{vm}= P_1 \left[ P_2 \sigma_{vm} + P_3 \overline{\varepsilon}^{vp} \right] ^{P_4} $$

SpectralOperations3D

To Do : suppression de ''computeInitialYieldingStress''

C'est cette fonction computeDissipatedEnergy qui doit remonter dans chaque matériau et particularisée à chaque modèle matériau…

Blas :

⇒ il faut identifier les fonctions appelées au niveau global et les interfacer différement …

FrequencyAnalysis

    freqAna = LanczosFrequencyAnalysisMethod(domain)
    freqAna.setNumberOfEigenValues(p['nbEigenVal'])
    freqAna.setSpectralShifting(p['spectralShifting'])
    freqAna.setComputeEigenVectors(True)
    freqAna.setComputeErrors(True)
    freqAna.setVerbose(p['verbose'])
    freqAna.setSymmetrizeK(False)
    
    if p['useDss'] == True :   
        try:
            freqAna.setSolver(DSSolver())
            print "OK : DSSolver found"
        except NameError:
            print "DSSolver not found. Use of default skyline instead"
            pass
    # Value Extractor
    freqAnaVE = FrequencyAnalysisValueExtractor(freqAna)    
    vm.add(no, freqAnaVE ,name)   
    # Objective Function
    freqAnalyFObj = FrequencyAnalysisObjectiveFunction(no, freqAna)

mtWear

InMemoryDataMatrix::interpolateRow

Divers

Opti

CMake

chkrep.py

$Id$

Fichiers ajoutés/supprimés

Adding: oo_meta\CMake\win64-vs2012-student.cmake  text/plain
Adding: oo_meta\mtFrequencyAnalysis\src\FrequencyAnalysisObjectiveFunction.cpp  text/plain
Adding: oo_meta\mtFrequencyAnalysis\src\FrequencyAnalysisObjectiveFunction.h  text/plain
Adding: oo_meta\mtFrequencyAnalysis\src\FrequencyAnalysisValueExtractor.cpp  text/plain
Adding: oo_meta\mtFrequencyAnalysis\src\FrequencyAnalysisValueExtractor.h  text/plain
Deleting: oo_meta\mtFrequencyAnalysis\src\FrequencyValueExtractor.cpp  
Deleting: oo_meta\mtFrequencyAnalysis\src\FrequencyValueExtractor.h  

Tests ajoutés/supprimés

Adding: 
Deleting: 

Luc Papeleux 2016/11/08