kirk0830 / ABACUS-Pseudopot-Nao-Square

Enpower ABACUS calculation, for high efficiency, for high precision. Pseudopotential and Numerical Atomic Orbital library (developing)
https://kirk0830.github.io/ABACUS-Pseudopot-Nao-Square/
GNU Lesser General Public License v3.0
5 stars 3 forks source link

Refactor: for compatiblility of eos test - apns 2.0 #78

Closed kirk0830 closed 2 months ago

kirk0830 commented 2 months ago

Summary by CodeRabbit

coderabbitai[bot] commented 2 months ago

Walkthrough

The changes encompass various modifications across multiple Python files and a JSON configuration. Key updates include alterations to function implementations for improved data handling, output formatting, and error management. Significant enhancements were made to the structure of pseudopotential test cases and the handling of computational parameters in the JSON file, reflecting a shift in focus towards more dynamic and robust processing.

Changes

Files Change Summary
apns/analysis/apns1_eos_abacus.py Modified the plot function to unpack return values from convert_fpp_to_ppid, simplifying control flow.
apns/analysis/apns2_ecut_abacus.py, apns/analysis/apns2_ecut_qespresso.py, apns/analysis/apns2_eos_qespresso.py Updated collect functions to change how ppids are constructed, enhancing output readability by formatting identifiers as strings with separators.
apns/analysis/apns2_ecut_utils.py Adjusted the pp method to return pseudopotential strings in a clearer "key: value" format when as_list is False.
apns/analysis/apns2_eos_abacus.py Enhanced is_outdir and collect functions with clearer documentation and logic, introduced a new fit function for EOS processing.
apns/analysis/apns2_eos_utils.py Renamed constants, updated functions to use new constants, added error handling in fit_birch_murnaghan, and improved class and method definitions for clarity.
apns/analysis/apns2_utils.py Updated handle_* functions to extract elements dynamically from filenames and modified return values to include additional extracted data.
apns/orbgen/postdft_eos.py, apns/orbgen/postdft_eta.py Modified functions to improve data handling and output formatting for pseudopotential cases.
apns/test/abacustest.py Added command to prevent core dumps and updated parameters in write_abacustest_param for job file compression.
apns/test/bravis_and_molecule.py Refined regex patterns for bravis input validation and updated logic for handling phase and token.
apns/test/main.py Enhanced handling of ecutwfc parameter in write_abacus function for better default value management.
example.json Significant updates to computational parameters, including changes to out_dir, calculation type, and material elements, reflecting a reconfiguration of the setup.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant FunctionA as collect()
    participant FunctionB as fit()
    participant FunctionC as is_outdir()

    User->>FunctionA: Call collect()
    FunctionA->>FunctionC: Check directory validity
    FunctionC-->>FunctionA: Return validity
    FunctionA-->>User: Return collected data
    User->>FunctionB: Call fit()
    FunctionB-->>User: Return fitted data

🐇 In the meadow, I hop with glee,
Changes abound, oh what a spree!
Functions refined, outputs so bright,
Data flows smoothly, a joyous sight!
With each little tweak, we dance and play,
Celebrating progress, hip-hip-hooray! 🌼


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

Share - [X](https://twitter.com/intent/tweet?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A&url=https%3A//coderabbit.ai) - [Mastodon](https://mastodon.social/share?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A%20https%3A%2F%2Fcoderabbit.ai) - [Reddit](https://www.reddit.com/submit?title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&text=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code.%20Check%20it%20out%3A%20https%3A//coderabbit.ai) - [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcoderabbit.ai&mini=true&title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&summary=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code)
Tips ### Chat There are 3 ways to chat with [CodeRabbit](https://coderabbit.ai): - Review comments: Directly reply to a review comment made by CodeRabbit. Example: - `I pushed a fix in commit .` - `Generate unit testing code for this file.` - `Open a follow-up GitHub issue for this discussion.` - Files and specific lines of code (under the "Files changed" tab): Tag `@coderabbitai` in a new review comment at the desired location with your query. Examples: - `@coderabbitai generate unit testing code for this file.` - `@coderabbitai modularize this function.` - PR comments: Tag `@coderabbitai` in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples: - `@coderabbitai generate interesting stats about this repository and render them as a table.` - `@coderabbitai show all the console.log statements in this repository.` - `@coderabbitai read src/utils.ts and generate unit testing code.` - `@coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.` - `@coderabbitai help me debug CodeRabbit configuration file.` Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. ### CodeRabbit Commands (Invoked using PR comments) - `@coderabbitai pause` to pause the reviews on a PR. - `@coderabbitai resume` to resume the paused reviews. - `@coderabbitai review` to trigger an incremental review. This is useful when automatic reviews are disabled for the repository. - `@coderabbitai full review` to do a full review from scratch and review all the files again. - `@coderabbitai summary` to regenerate the summary of the PR. - `@coderabbitai resolve` resolve all the CodeRabbit review comments. - `@coderabbitai configuration` to show the current CodeRabbit configuration for the repository. - `@coderabbitai help` to get help. ### Other keywords and placeholders - Add `@coderabbitai ignore` anywhere in the PR description to prevent this PR from being reviewed. - Add `@coderabbitai summary` to generate the high-level summary at a specific location in the PR description. - Add `@coderabbitai` anywhere in the PR title to generate the title automatically. ### CodeRabbit Configuration File (`.coderabbit.yaml`) - You can programmatically configure CodeRabbit by adding a `.coderabbit.yaml` file to the root of your repository. - Please see the [configuration documentation](https://docs.coderabbit.ai/guides/configure-coderabbit) for more information. - If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: `# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json` ### Documentation and Community - Visit our [Documentation](https://coderabbit.ai/docs) for detailed information on how to use CodeRabbit. - Join our [Discord Community](https://discord.com/invite/GsXnASn26c) to get help, request features, and share feedback. - Follow us on [X/Twitter](https://twitter.com/coderabbitai) for updates and announcements.
Early access features: disabled We are currently testing the following features in early access: - **Anthropic `claude-3-5-sonnet` for code reviews**: Anthropic claims that the new Claude model has stronger code understanding and code generation capabilities than their previous models. Note: Our default code review model was also updated late last week. Please compare the quality of the reviews between the two models by toggling the early access feature. Note: - You can enable or disable early access features from the CodeRabbit UI or by updating the CodeRabbit configuration file. - Please join our [Discord Community](https://discord.com/invite/GsXnASn26c) to provide feedback and report issues on the [discussion post](https://discordapp.com/channels/1134356397673414807/1279579842131787838).