Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Jul 05 2018 08:12
    ahojukka5 reopened #1
  • Jul 05 2018 08:12
    ahojukka5 closed #1
  • Jul 04 2018 20:13
    femtocleaner[bot] opened #1
  • Jul 04 2018 20:13

    femtocleaner[bot] on deps

    Fix deprecations (compare)

  • Jul 04 2018 12:35

    ahojukka5 on v0.1.2

    (compare)

  • Jul 04 2018 12:29

    ahojukka5 on v0.1.0

    (compare)

  • Jul 04 2018 12:24

    ahojukka5 on master

    Rename package (#4) Better nam… (compare)

  • Jul 04 2018 12:24
    ahojukka5 closed #4
  • Jul 04 2018 11:46
    ahojukka5 synchronize #4
  • Jul 04 2018 11:46

    ahojukka5 on rename_package

    Rename package Better name is … (compare)

  • Jul 04 2018 11:37
    ahojukka5 reopened #4
  • Jul 04 2018 11:37
    ahojukka5 closed #4
  • Jul 04 2018 08:50
    ahojukka5 opened #4
  • Jul 04 2018 08:49

    ahojukka5 on rename_package

    Rename file Rename package Better name is … (compare)

  • Jul 03 2018 18:40

    ahojukka5 on master

    Fix + example (#3) * Fix updat… (compare)

  • Jul 03 2018 18:40
    ahojukka5 closed #3
  • Jul 03 2018 15:46
    coveralls commented #3
  • Jul 03 2018 15:22
    ahojukka5 opened #3
  • Jul 03 2018 15:22

    ahojukka5 on fix

    Fix + example * Fix updating f… (compare)

  • Jul 03 2018 14:32

    ahojukka5 on gh-pages

    Initial empty commit for docs build based on 3e391f5 (compare)

Jukka Aho
@ahojukka5
Nämä kannat nyt vaan kun ne riippuu geometriasta niin ne pitäis olla periaatteessa elementtikohtaisia jos ne haluaisi ohjelmoida etukäteen. Kyykkääköhän Julia jos siihen generoidaan lennosta vaikka 10 miljoonaa anonymous-funktiota.
Sitten vielä sellainen, että jos nämä kannat riippuu geometriasta ja lasketaan nlgeom päällä niin ei edes riitä että ne kuvataan referenssikonfiguraatiossa. Nämä biortogonaaliset kannat finite sliding formulaatiolla on juuri sellaisia. Eli se kanta pitää rakennella deformoituneessa konfiguraatiossa kaiken lisäksi.
Jukka Aho
@ahojukka5
Niin ja kun se ehto vielä kaiken lisäksi on integraalimuodossa niin pitää lisäksi vielä numeerisesti integroida, ei löydy semmosta eksplisiittistä esitystapaa kuin korkeintaan lineaarisille elementeille. Jos tämmösen kannan käsittelyyn löytyy hyvä tapa niin siinä on kyllä kaikki mahdolliset hankaluudet leivottu sisälle.
Tom Gustafsson
@kinnala
https://github.com/kinnala/scikit-fem/blob/master/skfem/element.py#L109 lyhyesti: init_pbasis tekee yleisen N asteisen polynomikannan joka esitetään matriisina, eval_dofs evaluoi kyseisen yleisen kannan kaikkien elementtien DOFeissa samalla kertaa ja muodostaa kannanvaihtomatriisin V jokaiseen elementtiin, ja gbasis'ssa kannanvaihtomatriisi käännetään, jolloin käänteismatriisin sarakkeista voi lukea kantafunktioiden
kertoimet
tämän jälkeen uuden elementin määrittely on hyvinki simppeliä https://github.com/kinnala/scikit-fem/blob/master/skfem/element.py#L340 en tiedä miten tehokas ratkaisu o kyseessä ja kuulemma jossain tilanteissa voi olla numeerisia ongelmia matriisin V kääntämisessä, mutta o toiminut mulle ihan hyvin
Jukka Aho
@ahojukka5
Pitääpä tutustua!
Sulta puuttuu 27-solmuinen hexa :)
Tom Gustafsson
@kinnala
juu ne on vielä vähän vaiheessa. sain vasta pari viikkoa sitten tehtyä r
Jukka Aho
@ahojukka5
https://github.com/JuliaFEM/FEMBasis.jl/blob/master/src/create_basis.jl#L58 JuliaFEMissä on tämmönen taktiikka että generoidaan metaohjelmoinnilla muotofunktiot ja niiden osittaisderivaatat ennenku käännetään konekieliseksi. Käytännössä annetaan siis tuo riittävän korkea-asteinen yleinen polynomi ja rakennellaan tuolla Vandermonden matriisilla semmoset kertoimet että kannalle asetetut vaatimukset ovat voimassa. Käytännössä nämä määrittelyt sitten on tämän tapaisia: https://github.com/JuliaFEM/FEMBasis.jl/blob/master/src/lagrange_tetrahedrons.jl
Nyt tätä voisi tietenkin vähän kehitellä eteenpäin niin että voisi kehitellä vähän erikoisempiakin kantoja.
Jukka Aho
@ahojukka5
Sympystä löytyy lambdify, joku tuon tapanen voisi kyllä Pythonillakin onnistua. Ei oikein houkuttele juurikin jonku 27-solmuisen elementin muotofunktioiden ja osittaisderivaattojen käsin naputtelu, menee todennäköisyydellä 1 väärin.
Tom Gustafsson
@kinnala
mielenkiintoinen lähestymistapa. julia on kyllä näppärä kieli
Joona Vaara
@jvaara
@ovainola @ahojukka5 jossei materiaali-interface tule FEMBase:en niin kuinka ajattelit että se saatais tuossa perus frameworkissa toimimaan? Problem(Continuum)?
Jukka Aho
@ahojukka5
Tulee kunhan ehtii.. Ei ole vielä edes tägätty paketti.
Mut FEMBase.jl:ään ja siitä sitten.

@jvaara:

struct Mamo
    params
    stress
    other
end

function Mamo()
    params = zeros(12)
    stress = reshape(view(params, 1:9), 3, 3)
    other = view(params, 10:12)
    return Mamo(params, stress, other)
end

Tämä muuten itse asiassa toimii. Eli muistia käytetään vain tuo 12 alkiota, mutta sulla on stress 3x3 matriisi joka ottaa parametrivektorista ensimmäiset 9 lukua ja other ottaa kolme viimeistä vektoriin. Kaikista voi päivittää ja kaikkia voi lukea. Tuo params voi sitten mennä epälineaariseen iteraatioon parametrivektorina. Tässä näin esimerkkinä mitenkä saa koodia sievemmäksi.

Joona Vaara
@jvaara
niin että integrointipistedataa (lähtötilanne iteraatiolle) olis viewillä otettu sinne material containeriin?
tai toisinpäin
Jukka Aho
@ahojukka5
Noo voisihan sen niinkin tehdä, hyvä havainto. Mutta ajattelin lähinnä, että kun sulla on se get_nonlinear_system_of_equations tmv, niin sä voit samaan dataan saada useampia esitysmuotoja jotka sitten helpottaa sitä käsittelyä
Todennäköisesti voi rakentaa jopa sellaisen viewin 6-pituinen vektori näkyy 3x3 symmetrisenä tensorina.
Joona Vaara
@jvaara
niin että lähettäisin sinne vaan pointterin sieltä integrate_material!-tasolta?
ajattelin refaktoroida sen chaboche.jl:n kunhan tajuan että kuinka mun pitäs toimia ton gitin kans :)
vektorinotaatioon laskenta jne turhat tensorit pois kun on harjoteltu ja on testi etc
Jukka Aho
@ahojukka5
Niin, tai sitten Tensors.jl.
Joona Vaara
@jvaara
vaihe kerrallaan
ihan mielenkiintosta nähdä kun benchmarkkaa että minkälaista nopeutusta tulee esim. siihen simulaattori testiin
Joona Vaara
@jvaara
hep, jos allokoin vektorin vektoreista näin: simulator.stresses = similar(strains)
niin sitten kun haluaisin alkaa täyttämään sinne tavaraa niin kun laitan simulator.stresses[1][:] .= copy(material.stress) niin tulee ERROR: UndefRefError: access to undefined refence
Jukka Aho
@ahojukka5
simulator.stresses = [zeros(6) for j in 1:length(strains)]
Joona Vaara
@jvaara
mjoo
Jukka Aho
@ahojukka5
Tässä tulee semmonen ongelma että esim. Poi1-elementteihin jotka laittaa reunaehtoja pitäis laittaa youngs modulus jos ne ovat samassa ongelmassa kuin minkä materiaalimalli tarvii ko. fieldiä.
set materiaalimalli pitänee määritellä problemissa
nyt on solverissa mutta sehän on täysin hassua.
vai pitäiskö määritellä malli elementissä. element.material_model = :IdealPlastic jne.
Joona Vaara
@jvaara
Integrointipiste on se loogisin paikka sille
Tai pienin yksikkö missä sitä myös kutsutaan
Joona Vaara
@jvaara
alotin tekee tuota yhden elementin simulaattoria
@ahojukka5
@ovainola voit sitten käyttää sitä testeissä kunhan saan sen valmiiksi
Jukka Aho
@ahojukka5
JuliaFEM/Materials.jl#29 tuolla se on jo tulossa. On vähän kesken vielä. Jostakin syystä ne tallennetut jutut on dtime:n verran väärässä ajassa.
Muutoin tuo on jo valmis.
Saa korjata.
ovainola
@ovainola
@jvaara roger
Tom Gustafsson
@kinnala
mielenkiintosta kohinaa ollu teillä tuolla kansainvälisellä puolella
on aina pitäny opetella tollasia inkrementaalisia plastisuusmalleja mutta ei oo oikein löytyny hyvää lähdeteosta tai tarpeeksi aikaa
toisaalta kiinnostaisi myös ne variaatioepäyhtälöt plastisuuteen liittyen
Joona Vaara
@jvaara
joo, me pidettiin hackatron viime viikonloppuna Jukan kanssa ja yritettiin saada tuo konsepti testattua. Nyt yritän saada rakenteen semmoseksi että kestäis päivänvaloa vähän pidempään :)
Jukka Aho
@ahojukka5
Tässä vaiheessa olisi hyvä lähteä opiskelemaan, kun kaikki on niin alussa. Nollasta tämä minullakin käytännössä lähti.
@ovainola onko sulla tehtynä joku koodi jolla voi generoida sitä materiaalin kiderakennetta.