Project History
Este repositório tem como objetivo principal desenvolver testes e configurar uma nova versão do projeto myfempy (new version) baseando-se totalmente em programação orientada a objetos (OOP). Esta nova versão permitirá uma expansão da atual versão do myfempy para alta performance computacional (HPC), além de uma capacidade grande de leitura de dados, o que não é possível atualmente devido a sua complexidade de classes. Um avanço futuro, será de enviar dados para que o solver execute a solução em paralelo (multi-core) e também realizar a análise em multi-física (FSI, FTI, TMI).
Esta nova versão permite a inclusão de módulos e códigos escritos em C/Cython e os solvers avançados utilizando os pacotes PETSc e SLEPc, além da possibilidade de utilizar o JAX para computação de alta performance.
Após a nova implementação, foi feito um merge no repositório myfempy_dev (repositório oficial para desenvolvimento e testes), e após passar por todos os teste será feito o upload para o repositório principal myfempy do projeto.
Com o objetivo de deixar o projeto limpo e claro nesta jornada de desenvolvimento, será utilizado as normativas da clean archicteture e da bridge design pattern para códigos com OOP.
Etapas de desenvolvimento
-
Estudar as caracteristicas de um código FEM com OOP;
-
Extender as funcionalidades com OOP para o projeto myfempy;
-
Gerar um mapa UML das clases nas layers do código, disponibilizando estes mapas na documentação do User's Manual;
-
Usar bridge design pattern para escrerver as principais classes do sistema, assim como as suas feacture() e method();
-
Desenvolver um código OOP para o projeto myfempy;
-
Testar o programa para resolver o problema de elasticidade bidimensinal de placa (Modelo de Mindlin)/ casca (Plate+PlaneStress) retangular;
-
Implementar as seguintes soluções de análise:
- Estático:
- Linear
- [X] Elastico
- Non-linear
- [ ] Grande deslocamento
- [ ] Plasticidade
- [ ] Estabilidade (flambagem)
- [ ] Contato sem atrito??
- Linear
- Dinamica linear:
- Domínio frequência
- [X] Modal
- [X] Força harmônica
- Transiênte linear
- [ ] Algo. implicito
- [ ] Algo. explicito?
- Domínio frequência
- Multi-domínio:
- Multi-material
- [X] Interface de multi-material (multi E, v, ...)
- Acoplamento multi-físico
- [ ] FSI
- [ ] TMI
- [ ] Kratos/ openfoam?
- Multi-material
- Comportamento mecânico e material:
- [X] Plane stress
- [X] Plane strain
- [X] Solid isotropic
- [ ] Plate Kirchhoff
- [ ] Plate Reissner-Mindlin
- [ ] Cyclic symmetry boundary
- [ ] Homogeinização/ micro escala (tensor)
- Estático:
-
Validar a análise com a implementação seguintes tipos de elementos isoparametrico:
- [X] tria3 - triagular 3 nós
- [ ] tria6 - triagular 6 nós
- [X] quad4 - quadrilateral 4 nós
- [ ] quad8 - quadrilateral 8 nós
- [X] tetr4 - tetraedro 4 nós
- [ ] tetr10 - tetraedro 10 nós
- [X] hexa8 - hexaedro 8 nós
- [ ] hexa20 - hexaedro 20 nós
-
Desenvolver um gerador de malha interno utilizando o gmsh (pygmsh?) com leitor de malha .msh1 e .vtk;
-
Desenvolver a saida dos resultados por meio de arquivos .vtk;