diff --git a/.github/workflows/python-app.yml b/.github/workflows/python-app.yml index a10c876..bdaf644 100644 --- a/.github/workflows/python-app.yml +++ b/.github/workflows/python-app.yml @@ -33,3 +33,6 @@ jobs: flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics + - name: Test with pytest + run: | + pytest diff --git a/.gitignore b/.gitignore index 0593b23..e058794 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ -__pycache__ \ No newline at end of file +__pycache__ +.vscode +.pytest_cache \ No newline at end of file diff --git a/README.md b/README.md index 89988ad..58f2249 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,17 @@ # PIBITI - SIMULACOES -Repositório para armazenar as simulações do projeto de PIBITI focado em simulações termodinâmicas em estruturas nanomoleculares. +Repositório com as simulações do projeto de PIBITI focado em simulações termodinâmicas em estruturas nanomoleculares. + +### Título do projeto : Propriedades Físicas de Sistemas Nanoestruturados na Presença de Defeitos + +- ### Início: Setembro 2023 +- ### Fim: Setembro 2024 ## Objetivos: - Criar a célula unitário do R10-Graphene em arquivo .xyz - Gerar a estrutura padrão de uma folha de R10-Grapehene com um script genético -- Gerar estruturas com rasgos +- Gerar estruturas com rasgos (nanocracks) ## Configurações iniciais @@ -28,14 +33,14 @@ Subistituir `$PWD` pelo caminho até o repositorio. Exemplo: `/home/my_user/.../ ## Como rodar o arquivo genético: -Em src/scripts/replicate.py altere número de replicações em cada direção mudando o valor das variáveis `n_replications_x` e `n_replications_y`. +Em src/scripts/replicate.py altere número de replicações em cada direção mudando o valor das variáveis `n_replications_x` e `n_replications_y`: ``` n_replications_x = 17 # alterar replicações na direção x n_replications_y = 19 # alterar replicações na direção y ``` -Acessar a pasta e executar o arquivo replicate.py +Acessar a pasta e executar o arquivo replicate.py: ``` python3 replicate.py @@ -43,20 +48,20 @@ python3 replicate.py ## Como rodar os arquivos com rasgos: -Em src/scripts acesse os arquivos n1_nanocrack e n2_nanocrack e altere número de replicações em cada direção mudando o valor das variáveis `n_replications_x` e `n_replications_y`. +Em src/scripts acesse os arquivos n1_nanocrack e n2_nanocrack e altere número de replicações em cada direção mudando o valor das variáveis `n_replications_x` e `n_replications_y`: ``` n_replications_x = 17 # alterar replicações na direção x n_replications_y = 19 # alterar replicações na direção y ``` -Para mudar o tamanho do rasgo central altere o valor da varíavel `crack_size` +Para mudar o tamanho do rasgo central altere o valor da varíavel `crack_size`: ``` crack_size = 9 # alterar o tamanho do rasgo ``` -Acessar a pasta e executar o arquivo com a simulação do rasgo +Acessar a pasta e executar o arquivo com a simulação do rasgo: ``` python3 .py diff --git a/pytest.ini b/pytest.ini new file mode 100644 index 0000000..b042f06 --- /dev/null +++ b/pytest.ini @@ -0,0 +1,2 @@ +[pytest] +pythonpath = . src \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 296b615..60b488d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,3 @@ flake8 -autopep8 \ No newline at end of file +autopep8 +pytest \ No newline at end of file diff --git a/src/scripts/n1_nanocrack.py b/src/scripts/n1_nanocrack.py index 7397b1f..4db88cf 100644 --- a/src/scripts/n1_nanocrack.py +++ b/src/scripts/n1_nanocrack.py @@ -1,7 +1,6 @@ -import sys -sys.path.append('./src/utils') -from utils import * + +from my_utils import read_xyz,write_xyz from n1_crack import center_crack diff --git a/src/scripts/n2_nanocrack.py b/src/scripts/n2_nanocrack.py index e12b20f..8778a3e 100644 --- a/src/scripts/n2_nanocrack.py +++ b/src/scripts/n2_nanocrack.py @@ -1,9 +1,7 @@ -import sys -sys.path.append('./src/utils') -from utils import read_xyz,write_xyz -from n2_crack import * +from my_utils import read_xyz,write_xyz +from n2_crack import left_crack,center_crack,right_crack # Replicar a célula unitária com os nanocracks lineares (n2) def replicate_cell(atoms, lattice_constants, n_replications_x, n_replications_y, crack_size): diff --git a/src/scripts/replicate_cell.py b/src/scripts/replicate_cell.py index da01776..de8ce73 100644 --- a/src/scripts/replicate_cell.py +++ b/src/scripts/replicate_cell.py @@ -1,7 +1,8 @@ -from utils import read_xyz, write_xyz + import sys sys.path.append('./src/utils') +from utils import read_xyz, write_xyz # Replicar a célula unitária diff --git a/src/tests/cracks/n2_crack.py b/src/tests/cracks/n2_crack.py deleted file mode 100644 index 0eb1c79..0000000 --- a/src/tests/cracks/n2_crack.py +++ /dev/null @@ -1 +0,0 @@ -from ...scripts import replicate_cell diff --git a/src/utils/__init__.py b/src/utils/__init__.py index 2e07cfd..be290b7 100644 --- a/src/utils/__init__.py +++ b/src/utils/__init__.py @@ -1,5 +1,3 @@ -__all__ = [ - 'n1_crack', - 'n2_crack', - 'utils' - ] \ No newline at end of file +__all___ = [ + 'my_utils' +] \ No newline at end of file diff --git a/src/utils/utils.py b/src/utils/my_utils.py similarity index 100% rename from src/utils/utils.py rename to src/utils/my_utils.py diff --git a/src/utils/n1_crack.py b/src/utils/n1_crack.py index 54fb0c1..6789380 100644 --- a/src/utils/n1_crack.py +++ b/src/utils/n1_crack.py @@ -1,4 +1,5 @@ + def center_crack(y_index, atom, n_replications_y, crack_size, atom_index, new_position): floor = int(n_replications_y//2 - ((crack_size - 1)/2)) ceiling = int(n_replications_y//2 + ((crack_size - 1)/2)) diff --git a/src/tests/replicate.py b/tests/ __init__.py similarity index 100% rename from src/tests/replicate.py rename to tests/ __init__.py diff --git a/tests/replicate_test.py b/tests/replicate_test.py new file mode 100644 index 0000000..ea58ecf --- /dev/null +++ b/tests/replicate_test.py @@ -0,0 +1,24 @@ + + +import pytest + +from utils.my_utils import read_xyz + +class TestReplicate(): + def test_read(): + test_file = 'tests/test_read.xyz' + number_of_atoms, comment, atom_list = read_xyz(test_file) + assert number_of_atoms == 10 + assert comment == 'a = 6.3028 Å and b = 4.9302 Å\n' + assert atom_list == [ + ('C', [1.7314000000000003, 0.7510083707151027, 0.0]), + ('C', [3.1514, 0.7510083707151027, 0.0]), + ('C', [4.571400000000001, 0.7510083707151027, 0.0]), + ('C', [5.5754916292848975, 1.7551, 0.0]), + ('C', [5.5754916292848975, 3.1751, 0.0]), + ('C', [4.571400000000001, 4.179191629284897, 0.0]), + ('C', [3.1514, 4.179191629284897, 0.0]), + ('C', [1.7314000000000003, 4.179191629284897, 0.0]), + ('C', [0.7273083707151029, 3.1751, 0.0]), + ('C', [0.7273083707151029, 1.7551, 0.0])] + diff --git a/tests/test_read.xyz b/tests/test_read.xyz new file mode 100644 index 0000000..275f86d --- /dev/null +++ b/tests/test_read.xyz @@ -0,0 +1,12 @@ +10 +a = 6.3028 Å and b = 4.9302 Å +C 1.7314000000000003 0.7510083707151027 0.0000000000000000 +C 3.1514000000000002 0.7510083707151027 0.0000000000000000 +C 4.5714000000000006 0.7510083707151027 0.0000000000000000 +C 5.5754916292848975 1.7551000000000001 0.0000000000000000 +C 5.5754916292848975 3.1751000000000000 0.0000000000000000 +C 4.5714000000000006 4.1791916292848974 0.0000000000000000 +C 3.1514000000000002 4.1791916292848974 0.0000000000000000 +C 1.7314000000000003 4.1791916292848974 0.0000000000000000 +C 0.7273083707151029 3.1751000000000000 0.0000000000000000 +C 0.7273083707151029 1.7551000000000001 0.0000000000000000