Início Exemplos Capturas de ecrã Manual do utilizador Logótipo Bluesky YouTube
OghmaNano Simular células solares orgânicas/Perovskita, OFETs e OLEDs DESCARREGAR

O formato de arquivo do Oghma

1. O que é JSON?

OghmaNano sim.json file opened in the Firefox browser showing structured JSON parameters
Um exemplo de arquivo sim.json aberto no Firefox, mostrando a estrutura JSON subjacente de uma simulação do OghmaNano.

O OghmaNano armazena as informações da simulação em um arquivo JSON. JSON (JavaScript Object Notation) é um formato simples, baseado em texto, para armazenar e transmitir dados estruturados. Ele é amplamente usado em software científico porque é legível por humanos e analisável por máquinas. Você pode ver exemplos gerais de estruturas JSON em https://json.org/example.html.

Para ilustrar como o JSON funciona, abaixo está um exemplo simples. Um arquivo JSON é construído a partir de seções que começam e terminam com chaves { }. Cada seção contém tokens, ou rótulos, como "color_of_dog", "dog_age" ou "dogs_toys". Esses tokens devem sempre ser escritos entre aspas duplas e são seguidos por dois-pontos : e então pelo valor de dados associado. Valores de texto são colocados entre aspas duplas, enquanto números, como inteiros ou decimais, são escritos sem aspas. No OghmaNano, valores do tipo booleano são armazenados como as strings "true" ou "false". Para que o arquivo seja válido, todos os colchetes de abertura e fechamento devem estar alinhados corretamente. Itens dentro de uma seção são separados por vírgulas, exceto o item final, que não termina com vírgula. ??.


{
  "color_of_dog": "brown",
  "dog_age": 5,
  "dogs_toys":
  {
    "rabbit": "true",
    "stick": "false"
  }
}
Exemplo de uma estrutura JSON simples.

O OghmaNano usa os mesmos princípios de JSON para armazenar todos os dados de simulação. Essas informações estão contidas em um arquivo chamado sim.json, que contém todos os parâmetros do dispositivo, configurações da simulação e configuração de saída. Cada simulação terá seu próprio arquivo sim.json. Embora você possa abrir esse arquivo em qualquer editor de texto, frequentemente é mais fácil usar um visualizador JSON dedicado, pois ele formatará os dados em uma estrutura em árvore fácil de ler. O Firefox tem um visualizador JSON embutido muito bom. Um exemplo de um arquivo sim.json visualizado no Firefox é mostrado abaixo em ??

Um ponto final: embora sim.json seja o arquivo-chave de configuração, ele nem sempre é armazenado sozinho. Em vez disso, o OghmaNano frequentemente o empacota dentro de um arquivo sim.oghma, que é apenas um arquivo ZIP padrão — isso é feito para economizar espaço. Se você renomear sim.oghma para sim.zip, poderá abri-lo com o Windows Explorer ou qualquer visualizador de zip e extrair sim.json. Se você colocar uma cópia de sim.json no mesmo diretório da simulação e renomear o arquivo de volta para sim.oghma, OghmaNano irá ignorar a versão arquivada de sim.json e usará seu arquivo sim.json em texto puro. Esse recurso é extremamente útil para automação, pois você pode editar diretamente sim.json usando qualquer linguagem de programação sem precisar manipular arquivos zip.

2. O formato de arquivo do OghmaNano

O OghmaNano aplica exatamente esses princípios em seu arquivo de configuração de simulação, chamado sim.json. Esse arquivo contém tudo o que é necessário para descrever uma estrutura de dispositivo, definir as simulações a serem executadas e configurar os solvers. Cada diretório de simulação incluirá seu próprio sim.json. Embora você possa abrir esse arquivo em qualquer editor de texto, muitas vezes é mais conveniente usar um visualizador JSON, como o Firefox, que apresenta automaticamente os dados em uma visualização em árvore formatada.

No nível mais alto, sim.json está organizado em um pequeno número de seções de topo. Essas seções então se ramificam em subseções detalhadas, como varreduras JV, execuções de EQE ou definições de camadas do dispositivo. As principais seções de topo presentes no formato atual estão resumidas na tabela abaixo: ??.

Seções de topo atuais em sim.json
Seção Finalidade
simMetadados gerais (por exemplo, versão, modo de execução, notas)
simsTodas as definições de simulação (JV, Suns-Voc, EQE, PL, domínio do tempo, ray, FDTD etc.)
epitaxyEstrutura do dispositivo: camadas, contatos, geometria, materiais
mathConfigurações e tolerâncias do solver numérico
opticalModelos ópticos, fontes, detectores, malhas
dumpControles de saída: verbosidade, sondas, formatos de arquivo
serverExecução/paralelização (threads, GPU, limites de tempo)
Principais seções de topo detectadas neste sim.json.

3. Peculiaridades do formato json do OghmaNano

4. Codificação

Os arquivos .json lidos/escritos pelo OghmaNano são sempre armazenados em formato UTF-8. OghmaNano não consegue lidar com UTF-16 nem com quaisquer outros padrões de codificação de texto. Atualmente, o bloco de notas do Windows e a maioria dos outros aplicativos usam UTF-8 por padrão, então, se você não sabe o que são esses formatos de armazenamento de texto, provavelmente isso não importa. Isso só irá aparecer se você começar a gerar programaticamente arquivos .oghma em uma linguagem como C++ e estiver usando um idioma como chinês ou russo, com caracteres não latinos em seu alfabeto.

5. Compatibilidade futura/anterior do formato de arquivo

É feito um esforço significativo para garantir que novas versões do OghmaNano possam ler arquivos gerados em versões mais antigas. No entanto, versões antigas do OghmaNano podem não conseguir ler arquivos gerados em versões mais novas. Sempre que o usuário abre um arquivo sim.oghma usando a GUI, o formato do arquivo é verificado e, se ele diferir daquele usado na versão atual, o arquivo é atualizado e gravado novamente em disco. Se você estiver usando o OghmaNano em uma configuração headless chamando \(oghma\_core.exe\) diretamente, então, ao usar arquivos sim.oghma de versões antigas do modelo, antes de executar \(oghma\_core.exe\), certifique-se de tê-lo aberto primeiro na GUI para garantir que o arquivo esteja no formato correto.

6. Dicas

Se você não tiver certeza de onde um determinado parâmetro está armazenado no arquivo sim.json do OghmaNano, um método muito eficaz é comparar duas versões do arquivo e ver o que mudou. Uma forma de fazer isso é usar uma ferramenta de comparação de arquivos, como KDiff3.

O processo é simples:

  1. Abra sua simulação na interface de usuário do OghmaNano.
  2. Ajuste o parâmetro de interesse (por exemplo, altere a espessura da camada ativa ou uma configuração de tensão) e salve a simulação.
  3. Compare o novo arquivo sim.json com a versão anterior usando KDiff3 (ou outra ferramenta de diff).
  4. Procure pelas linhas que diferem: elas mostrarão exatamente onde, na estrutura JSON, esse parâmetro está armazenado.

Essa técnica é uma maneira rápida e confiável de localizar parâmetros no JSON se você não tiver certeza do caminho deles no arquivo. Ela é especialmente útil para simulações complexas com muitas seções aninhadas.

👉 Próximo passo: Agora continue para explorar a ferramenta Parameter Scan, onde você poderá aprender como variar sistematicamente parâmetros de simulação e analisar os resultados.