自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(57)
  • 收藏
  • 关注

原创 工作总结6-25

1. 确定3带拟合的核心思想,但是要将Hr.dat文件全部读进去。2. 通用Python程序用于读取Hr.dat用于计算沿着线能带,和平行四边形区域内能量值,但性能不高。3. 平行四边形区域能带,平移画费米面,(对于三维平面,需要旋转到二维,还没有完成)4. 完成基于高对称线画计算磁化率实部分和虚部的程序,以及画图脚本。解决Hr.dat生成后处理问题,进一步需要得到高质量的Hr.dat...

2021-06-25 15:54:14 102

原创 情况分析6-25

1. Python Wannier Tight-Binding程序沿着两个倒格矢构成的平行四边形区域均匀打点300 x 300,所需要的时间很长,考虑优化为C++程序加速,打更多的点。2. 已经完成沿着高对称线计算磁化率实部和虚部的程序,在1的基础上,可以计算磁化率。300 x 300的点精度是够的。3. 需要重新做LDA计算,为了让费米面拟合的比较准确。(我觉得意义不大)4. 还需要开发费米面画图的一套工具。从别人的工作来看,这个东西意义不大,先把费米面数据找出来,如果实验

2021-06-25 15:46:53 111

原创 C++ 沿着高对称线计算磁化率实部和虚部

对于模型哈密顿量来说,只要点取得精度足够,磁化率在哪一点发散是很明确得。但是对于从第一型原理拟合出来的Tight-Binding来说,峰值的位置高度依赖于费米面的形状。#include <iostream>#include <cmath>#include <vector>#include <fstream>#include <iomanip>#include <complex>#include <ctime&gt

2021-06-25 15:34:42 367

原创 沿高对称线计算磁化率画图Python代码

import numpy as npimport matplotlib.pyplot as pltchi = np.loadtxt("chi0.txt")Nk = chi.sizeKPoints = [0, Nk/4, Nk/2, 3/5 * Nk, 2*Nk/3, 4/5*Nk, Nk]Q= [Nk/4]plt.plot(chi, color = 'black')plt.xticks(KPoints, (r'${\Gamma}$', 'q1', 'M', 'q2', 'K', 'q3',.

2021-06-25 14:50:44 175

原创 科研情况分析6-25

1. 完成通用的高对称线磁化率计算程序接下来完成峰值标注工作。2. Wannier90能带计算程序,用C++提速3. 费米面的计算(将坐标轴旋转回来,放到平面上)4. 只要把通用工具打磨好,后面再算就很快。结构优化计算肯定不做了。...

2021-06-25 03:30:37 349

原创 三角格子沿着高对称线计算磁化率

充分利用三角格子高对称点的特征,选取最有效的整数点计算,代码可以进一步优化#include <iostream>#include <cmath>#include <vector>#include <fstream>#include <iomanip>#include <complex>#include <ctime>using namespace std;#define PI 3.1415926co

2021-06-25 03:19:22 134

原创 读入Wannier90输出文件hr.dat构建实空间哈密顿量计算费米面

def get_uniformity_kpoint(n): kPoints = [] for i in range(n): for j in range(n): kPoints.append(i/n * rec[0] + j/n * rec[1]) np.save("kPoints.npy", np.array(kPoints)) return kPoints沿倒格式平行四边形均匀取点。进行前面计算。通过平移的方法,还原出整个.

2021-06-24 02:48:47 1240 5

原创 科研情况6-24

1.The electronic structure calculations are performed with the generalized gradient approximation for the exchangecorrelation functional as implemented in the Quantum ESPRESSO package [53] based on the density-functional theory2. 由于具有八面体晶体场,基于最大局域Wann.

2021-06-24 02:16:54 115

原创 读入Wannier90输出文件hr.dat构建实空间哈密顿量沿高对称线计算能带

以下例子是通用的三维Python程序,可以进一步优化。其中用户给定实空间晶格矢量,以及K空间高对称点路径。即可开始计算,该程序可以进一步优化为从用户定义的输入文件中读取这些数据。然后计算的通用脚本。import numpy as npfrom numpy import linalg as LAimport timenum_wan = 3basis_vector = [[1.37287871,1.37287871,-2.74575742],[-2.74575742,1.3728787.

2021-06-23 23:30:11 1298

原创 2021-06-23科研进展

1. 成功用三带dxy,dyz,dxz以及Wannier90拟合出能带,可以再次基础上做更精确的计算。2. 再次基础上算下费米面,磁化率看一下。3. 修改文章描述。

2021-06-23 02:37:25 131

原创 Wannier90读取整个hr.dat文件,数值构建Hamiltonian计算能带

传入晶格矢量,可以计算出倒格矢。传入高对称点,用于沿着高对称线计算能带。读取整个hr.dat文件,提取实空间位置信息以及hopping信息。通过固定公式计算高对称能带。整个过程全数值完成,维度固定为三维。此时没有最近邻,次近邻概念,一视同仁在数值上处理。import numpy as npimport matplotlib.pyplot as pltimport timestart_time = time.process_time()num_wan = 3basis_v

2021-06-23 02:30:47 2492 1

原创 Python Tight-binding单带拟合 (直接在高对称线上使用优化算法拟合参数)

import numpy as npimport matplotlib.pylab as pltfrom numpy import sqrt, sin, cos, pifrom scipy.optimize import curve_fiteig_vbm= -1.3286 # fermi energy level in scf output for metalsEks_DFT = np.load('eig.npy') - eig_vbmE.

2021-06-22 22:27:08 346

原创 Python Tight-Binding三角格子单带五近邻解析拟合

0 0 0 1 1 -1.342598 0.000000 0 1 0 1 1 -0.034210 0.000000 2 1 0 1 1 0.095418 0 2 0 1 1 -0.066211 -0.000000 0 3 0 1 1 -0.025817 0.000000 0 4...

2021-06-22 19:00:03 146

原创 情况分析6-22

实验:1. 重新fit一下Gap数据2. 重新调STM数据3. 补一个Leed 数据问题:1. 如何确定是否识别到,只用回答2.3.4.重新用matlab 非线性拟合拟合单带tight-binding模型,在此基础上重新做一些计算。...

2021-06-22 14:47:57 83

原创 Leetcode 401. 二进制手表 (二进制枚举)

我们采用二进制枚举的方法,1代表灯亮,0代表灯灭,分针的恰好有低6位对应,时针对应高4位,对于一个数字i,将其移动6位后 ,可以将时针刻度取出来,对其取低六位。采用二进制枚举方法。class Solution {public: vector<string> readBinaryWatch(int turnedOn) { vector<string> res; for (int i = 0; i < 1024; ...

2021-06-21 22:00:31 124

原创 Leetcode 1600. 皇位继承顺序 (使用hashmap实现N叉树)

仅仅只调用10次get获取顺序,说明顺序可以每次调用的时候现算出来。一个国王可有有N个孩子,这里表示这种关系的数据结构是N叉树,这里我们不需要去用指针实现一颗N二叉树,可以用hashmap邻接表的方法实现N叉树(类似于图),同时涉及到dead,我们也不需要删除节点,只需要维护一个set软删除。获得顺序即是一次dfs即可。代码:class ThroneInheritance {private: unordered_map<string, vector<stri...

2021-06-20 02:20:49 149

原创 Leetcode 两道简单的数学贪心题目

数学:

2021-06-19 19:34:37 98

原创 2004年高考数学压轴题(利用对数齐次化或主元法解决)

建议采用齐次化方法解决,如果不能齐次化,再用主元法。主元法有可能不能直接证明该不等式。

2021-06-19 02:11:00 272

原创 Leetcode 1239. 串联字符串的最大长度 (暴搜,BitMap状态压缩)

通过数据范围想到回溯暴搜,每个字符串可以选和不选。所以直接用回溯法解决,在选的时候,需要先判断一下是否能选,最直观的想法是用一个26长度的数组第一个版本的代码:class Solution {public: int maxLength(vector<string>& arr) { vector<int> hashmap(26); dfs(arr, 0, 0, hashmap); return res;...

2021-06-19 01:57:11 195

原创 今日计划6-18

1. 将最大纠缠熵的色散和能带色散合并到一张图上,图上刻度[0,pi/6,pi/3, pi,4/3pi, 5/6pi,2pi]nk = 1024.2.

2021-06-18 03:20:28 261

原创 Python Matploblib绘制SCI要求的图片

# -*- coding: utf-8 -*-import numpy as npimport matplotlib.pyplot as pltplt.rcParams['font.sans-serif']=['Arial'] #如果要显示中文字体,则在此处设为:SimHeiplt.rcParams['axes.unicode_minus']=False #显示负号 x = np.array([3,5,7,9,11,13,15,17,19,21])A = np.array([0.9708.

2021-06-18 01:23:04 1281

原创 Lintcode 2427 · 实现推文模型 (练习根据业务创建Model)

这就是标准的根据业务描述建立数据模型和索引的操作。from django.db import modelsfrom django.contrib.auth.models import Userfrom tweets.models import Tweetclass Comment(models.Model): # write your code here user = models.ForeignKey(User, on_delete=models.SET_NULL, ...

2021-06-17 18:19:12 95

原创 Leetcode 887. 鸡蛋掉落 (非常经典的动态规划)

2个鸡蛋,六层楼,可以通过递归的方法来解决,由于有重复子问题,将这些子问题记录下来。利用记忆话递归来解决(Python):class Solution: def superEggDrop(self, K: int, N: int) -> int: @lru_cache(None) def dp(k, n): if k == 0: return 0 if k == 1: return n ...

2021-06-17 16:28:08 221

原创 Leetcode 1884. 鸡蛋掉落-两枚鸡蛋 (经典动态规划数学题)

如果只有一个鸡蛋,要确定N层楼,只能从第一层确定到第N层。对于两个鸡蛋,可以先用第一个鸡蛋,确定一个大致范围,如果第一个鸡蛋碎了,第二个鸡蛋要从第一个鸡蛋没碎的层,试到第一个鸡蛋碎了的层。比如100层第一个鸡蛋分别从10层,20层,30层,。。。扔到100层如果10层碎了, 1 + 9 = 10如果20层碎了, 2 + 9 = 11如果100层碎了, 10 + 9 = 19次因此这样最坏情况需要19次如果x层碎了, 1 + x - 1 = xx...

2021-06-17 14:55:15 723

原创 Leetcode 393. UTF-8 编码验证 (有限状态机通法)

很容易直观想到状态以及转移关系:6个状态,状态之间通过Type转移。Java实现class Solution { // input types: determined by most significant 1 ~ 5 bits static final int TYPE_0 = 0b00000000; static final int TYPE_1 = 0b10000000; static final int TYPE_2 = 0b1100000...

2021-06-17 02:56:44 383

原创 Leetcode 65. 有效数字(解析字符串浮点数,利用有限状态机DFA通法解决)

注意: 该例子如果在面试中出现,首先应该通过模拟写出几个case,在有限时间内,想要理清楚DFA的状态以及转移是不容易的。因此这里仅仅作为一个DFA示例,说明DFA是如何work的。先分析状态: /* 0. 初始状态 1. 符号位 2. 整数部分 3. 左侧有整数的小数点 4. 左侧无整数的小数点(根据前面的第二条额外规则,需要对左侧有无整数的两种小数点做区分) 5. 小数部分 6. 字符 \text{e}e 7. 指数部分

2021-06-17 02:06:13 746

原创 Lintcode 2153 /2156· 实现查询用户登陆状态的接口 (通过Django判断用户是否登陆,然后返回指定的JSON)实现登出

@action(methods=['GET'], detail=False) def login_status(self, request): data = {'has_logged_in': request.user.is_authenticated} if request.user.is_authenticated: data["user"] = UserSerializer(request.user).data ...

2021-06-17 01:39:55 175

原创 Lintcode 2197 Django Model执行条件查询操作

from django.db.models import QuerySetfrom teachers.models import Teacherclass TeacherService(object): @classmethod def get_teachers_info(cls, age__gt: int, country: str) -> QuerySet: ''' :param age__gt: a limit not greate...

2021-06-16 17:44:50 85

原创 LintCode 2434 · 定义联合索引和默认的排序规则 (Django Model定义)

from django.db import modelsfrom django.contrib.auth.models import Userclass Tweet(models.Model): user = models.ForeignKey(User, on_delete=models.SET_NULL, null=True) content = models.CharField(max_length=140) created_at = models.Date...

2021-06-16 17:08:41 144

原创 Lintcode 2147 · 实现获取 User 信息的 API (Django REST 框架练习)

学习官方文档,写出如下代码:serializers.pyfrom rest_framework import serializersfrom django.contrib.auth.models import User# -- write you code here --class UserSerializer(serializers.ModelSerializer): # -- write your code here -- class Meta: ..

2021-06-16 17:01:38 96

原创 Lintcode Django 题目 · 查询国籍不为某些国家的同时年龄大于等于且小于区间的老师

使用Django

2021-06-16 00:57:08 128

原创 Leetcode 877. 石子游戏 (双方对称博弈,定义好状态,等价于区间DP)

class Solution {public: bool stoneGame(vector<int>& piles) { // f[i][j] 表示区间i到j当前玩家手上的石子与对手玩家手上的石子的得分之差 // f[i][j] = max(piles[i] - f[i+1][j], pils[j] - f[i][j-1]] int n = piles.size(); vector<vector...

2021-06-16 00:26:12 123

原创 Leetcode 640. 求解方程 (Parse解析字符串一元方程)

比较考验基本功class Solution {public: string solveEquation(string equation) { int k = equation.find("="); auto [a1, a0] = work(equation.substr(0, k)); auto [b1, b0] = work(equation.substr(k + 1)); //cout << a1 <&..

2021-06-15 22:14:15 157

原创 Leetcode 592. 分数加减运算 (字符串Parse,分数类运算)

这里使用一般的Parse方法,由于分数只有一位,也可以使用定长Parse或者sscanf的方法。class Fraction {private: int numerator; int denominator;public: Fraction(int n, int d):numerator(n), denominator(d) {}; Fraction operator += (const Fraction &a) { int n =..

2021-06-15 17:11:39 115 1

原创 浅谈极值点偏移(化为单变量以及ALG不等式)

给一个han

2021-06-15 15:07:05 4186 3

原创 高考数学2021选择题12题(裸的泰勒级数估算数值应用)

思考一下为什么可以这么展开。进一步思考一下如何利用泰勒级数估算ln2,和上面的例子还相同吗?

2021-06-15 02:52:54 514 1

原创 Leetcode 1449. 数位成本和为目标值的最大数字(从暴力搜索到记忆话到DP)

从第一个例子可以知道,贪心是不对的,因此考虑动态规划。最简单是递归考虑,f(i)表示cost为i对应的最大数字,因此不难写出以下递归代码class Solution: def largestNumber(self, cost: List[int], target: int) -> str: @lru_cache(None) def maxNum(i): if i == 0 : return 0...

2021-06-12 02:25:42 444 1

原创 Leetcode 完全平方数(动态规划)

从di

2021-06-11 01:28:57 161

原创 Leetcode 518 零钱兑换 II (dp背包方案数)

dp方程的推导过程如下://dp[i][j]=dp[i-1][j]+dp[i-1][j-coins[i]]+dp[i-1][j-2coins[i]]+...//dp[i][j-coins[i]]=dp[i-1][j-coins[i]]+...+//dp[i][j]=dp[i-1][j]+dp[i][j-coins[i]]class Solution {public: int change...

2021-06-10 02:40:51 104

原创 严格投影对角化使用(传入解析形式的波函数)

def get_V_infinite(nk): V = np.zeros((6, nk), dtype = np.complex128) V[:, 0] = np.array([1,-sqrt(3)/2,-sqrt(3)/2,1/2,-1/2,0]) V[:, 0] /= LA.norm(V[:, 0]) for i in range(1, nk): k = i * 2 * pi / nk x = np.exp(-1j*k) .

2021-06-09 19:44:31 144

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除