Compare commits
12 Commits
62e7fc7cba
...
dev_yi
| Author | SHA1 | Date | |
|---|---|---|---|
| cbe56092a2 | |||
| 2d2b39d5c1 | |||
| 3b9dee6900 | |||
| a455a10150 | |||
| 1c9e757d63 | |||
| 54b195442d | |||
| fe798288b3 | |||
| 9155e7422a | |||
| 615076fd36 | |||
| 0d7d8311d0 | |||
| 96793dc190 | |||
| bfa8429b54 |
@@ -1,6 +1,6 @@
|
|||||||
cmake_minimum_required(VERSION 3.15.2)
|
cmake_minimum_required(VERSION 3.15.2)
|
||||||
|
|
||||||
project(GCTL_TOOLKITS VERSION 2.0)
|
project(GCTL_TOOLKITS VERSION 2.1.0)
|
||||||
|
|
||||||
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
|
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
|
||||||
# ExprTK库在macOS 15.4中编译会有错误 添加以下命令对应检查项
|
# ExprTK库在macOS 15.4中编译会有错误 添加以下命令对应检查项
|
||||||
|
|||||||
83
Dockerfile
83
Dockerfile
@@ -1,35 +1,51 @@
|
|||||||
# 导入代码库镜像 视包含的代码库多少编译后的镜像可包含部分至全部GCTL代码库内容
|
# 导入代码库镜像 视包含的代码库多少编译后的镜像可包含部分至全部GCTL代码库内容
|
||||||
FROM gctl:2.0 AS gctl_library
|
FROM gctl:2.1 AS gctl_library
|
||||||
FROM gctl_mesh:2.0 AS gctl_mesh_library
|
FROM gctl_mesh:2.1 AS gctl_mesh_library
|
||||||
FROM gctl_optimization:2.0 AS gctl_optimization_library
|
FROM gctl_optimization:2.1 AS gctl_optimization_library
|
||||||
FROM gctl_ai:2.0 AS gctl_ai_library
|
FROM gctl_ai:2.1 AS gctl_ai_library
|
||||||
FROM gctl_potential:2.0 AS gctl_potential_library
|
FROM gctl_potential:2.1 AS gctl_potential_library
|
||||||
FROM gctl_seismic:2.0 AS gctl_seismic_library
|
FROM gctl_seismic:2.1 AS gctl_seismic_library
|
||||||
FROM gctl_elecmag:2.0 AS gctl_elecmag_library
|
FROM gctl_elecmag:2.1 AS gctl_elecmag_library
|
||||||
# 编译平台
|
# 编译平台
|
||||||
FROM ubuntu:20.04 AS builder
|
FROM ubuntu:20.04 AS builder
|
||||||
# 从代码库镜像中复制库文件和头文件
|
# 从代码库镜像中复制库文件和头文件
|
||||||
COPY --from=gctl_library /usr/local/lib /usr/local/lib
|
COPY --from=gctl_potential_library /usr/local/lib /usr/local/lib
|
||||||
COPY --from=gctl_library /usr/local/include /usr/local/include
|
COPY --from=gctl_potential_library /usr/local/include /usr/local/include
|
||||||
|
COPY --from=gctl_elecmag_library /usr/local/lib /usr/local/lib
|
||||||
|
COPY --from=gctl_elecmag_library /usr/local/include /usr/local/include
|
||||||
|
COPY --from=gctl_seismic_library /usr/local/lib /usr/local/lib
|
||||||
|
COPY --from=gctl_seismic_library /usr/local/include /usr/local/include
|
||||||
COPY --from=gctl_mesh_library /usr/local/lib /usr/local/lib
|
COPY --from=gctl_mesh_library /usr/local/lib /usr/local/lib
|
||||||
COPY --from=gctl_mesh_library /usr/local/include /usr/local/include
|
COPY --from=gctl_mesh_library /usr/local/include /usr/local/include
|
||||||
COPY --from=gctl_optimization_library /usr/local/lib /usr/local/lib
|
COPY --from=gctl_optimization_library /usr/local/lib /usr/local/lib
|
||||||
COPY --from=gctl_optimization_library /usr/local/include /usr/local/include
|
COPY --from=gctl_optimization_library /usr/local/include /usr/local/include
|
||||||
COPY --from=gctl_ai_library /usr/local/lib /usr/local/lib
|
COPY --from=gctl_ai_library /usr/local/lib /usr/local/lib
|
||||||
COPY --from=gctl_ai_library /usr/local/include /usr/local/include
|
COPY --from=gctl_ai_library /usr/local/include /usr/local/include
|
||||||
COPY --from=gctl_potential_library /usr/local/lib /usr/local/lib
|
COPY --from=gctl_library /usr/local/lib /usr/local/lib
|
||||||
COPY --from=gctl_potential_library /usr/local/include /usr/local/include
|
COPY --from=gctl_library /usr/local/include /usr/local/include
|
||||||
COPY --from=gctl_seismic_library /usr/local/lib /usr/local/lib
|
|
||||||
COPY --from=gctl_seismic_library /usr/local/include /usr/local/include
|
# 避免交互提示
|
||||||
COPY --from=gctl_elecmag_library /usr/local/lib /usr/local/lib
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
COPY --from=gctl_elecmag_library /usr/local/include /usr/local/include
|
|
||||||
|
# 安装编译工具和依赖
|
||||||
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
|
g++ \
|
||||||
|
make \
|
||||||
|
cmake \
|
||||||
|
libfftw3-dev \
|
||||||
|
libnetcdf-dev \
|
||||||
|
gmt \
|
||||||
|
libgmt-dev \
|
||||||
|
libgsl-dev \
|
||||||
|
libncurses-dev \
|
||||||
|
libopenblas-dev \
|
||||||
|
liblapacke-dev \
|
||||||
|
libeigen3-dev \
|
||||||
|
pkg-config \
|
||||||
|
autoconf \
|
||||||
|
automake \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
# 安装编译工具
|
|
||||||
RUN apt-get update && apt-get install -y g++ make cmake
|
|
||||||
# 安装依赖库
|
|
||||||
RUN apt-get install -y --no-install-recommends libfftw3-dev libnetcdf-dev gmt libgmt-dev libgsl-dev libncurses-dev
|
|
||||||
RUN apt-get install -y --no-install-recommends libopenblas-dev libeigen3-dev
|
|
||||||
RUN apt-get install -y pkg-config
|
|
||||||
# 创建工作目录
|
# 创建工作目录
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
@@ -80,15 +96,28 @@ RUN mkdir build && cd build && cmake .. && make && make install
|
|||||||
|
|
||||||
# 运行平台
|
# 运行平台
|
||||||
FROM ubuntu:20.04
|
FROM ubuntu:20.04
|
||||||
|
# 设置非交互式安装
|
||||||
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
# 安装运行时必要依赖
|
# 安装运行时必要依赖
|
||||||
RUN apt-get update && apt-get install -y libstdc++6
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
RUN apt-get install -y --no-install-recommends libfftw3-dev libnetcdf-dev gmt libgmt-dev libgsl-dev libncurses-dev
|
g++ make cmake \
|
||||||
RUN apt-get install -y --no-install-recommends libopenblas-dev libeigen3-dev
|
libfftw3-dev \
|
||||||
RUN apt-get install -y gnuplot
|
libnetcdf-dev \
|
||||||
|
gmt libgmt-dev \
|
||||||
|
libgsl-dev \
|
||||||
|
libncurses-dev \
|
||||||
|
libopenblas-dev liblapacke-dev libeigen3-dev \
|
||||||
|
gnuplot \
|
||||||
|
pkg-config \
|
||||||
|
autoconf automake \
|
||||||
|
ghostscript \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
# 从构建阶段复制编译后的库和头文件
|
# 从构建阶段复制编译后的库和头文件
|
||||||
COPY --from=builder /usr/local/lib /usr/local/lib
|
COPY --from=builder /usr/local/lib /usr/local/lib
|
||||||
COPY --from=builder /usr/local/include /usr/local/include
|
COPY --from=builder /usr/local/include /usr/local/include
|
||||||
COPY --from=builder /usr/local/sbin /usr/local/sbin
|
COPY --from=builder /usr/local/sbin /usr/local/sbin
|
||||||
# 设置可执行文件列表
|
# 设置可执行文件列表
|
||||||
ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
|
ENV LD_LIBRARY_PATH=${LD_LIBRARY_PATH:-}:/usr/local/lib
|
||||||
ENV PATH=$PATH:/usr/local/sbin
|
ENV PATH=${PATH:-}:/usr/local/sbin
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ int ADDNOSIE::Addnoise(std::string infilename, std::string outfilename, int orde
|
|||||||
int data_num = in_data_.size();
|
int data_num = in_data_.size();
|
||||||
double tmp_dou;
|
double tmp_dou;
|
||||||
gctl::array<double> noises(data_num);
|
gctl::array<double> noises(data_num);
|
||||||
noises.random_float(noise_mean_, noise_dev_);
|
random_float(noises, noise_mean_, noise_dev_);
|
||||||
for (int i = 0; i < data_num; i++)
|
for (int i = 0; i < data_num; i++)
|
||||||
{
|
{
|
||||||
tmp_dou = in_data_.at(i).at(order) + noises.at(i);
|
tmp_dou = in_data_.at(i).at(order) + noises.at(i);
|
||||||
|
|||||||
@@ -389,8 +389,8 @@ void statistic(const std::vector<std::string> &cmd_units)
|
|||||||
{
|
{
|
||||||
tc.get_column(data, cmd_units[i]);
|
tc.get_column(data, cmd_units[i]);
|
||||||
std::clog << "column: " << cmd_units[i]
|
std::clog << "column: " << cmd_units[i]
|
||||||
<< " | " << data.min() << "/" << data.mean() << "/" << data.max()
|
<< " | " << min(data) << "/" << mean(data) << "/" << max(data)
|
||||||
<< " | STD: " << data.std() << "\n";
|
<< " | STD: " << gctl::std(data) << "\n";
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -476,7 +476,7 @@ void rand_data(const std::vector<std::string> &cmd_units)
|
|||||||
double p1 = atof(cmd_units[2].c_str());
|
double p1 = atof(cmd_units[2].c_str());
|
||||||
double p2 = atof(cmd_units[3].c_str());
|
double p2 = atof(cmd_units[3].c_str());
|
||||||
array<double> rd_data(tc.row_number());
|
array<double> rd_data(tc.row_number());
|
||||||
rd_data.random_float(p1, p2, rd_type);
|
random_float(rd_data, p1, p2, rd_type);
|
||||||
|
|
||||||
if (cmd_units.size() >= 5) tc.fill_column(rd_data, cmd_units[4], 12);
|
if (cmd_units.size() >= 5) tc.fill_column(rd_data, cmd_units[4], 12);
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -29,6 +29,7 @@
|
|||||||
#define GCTL_DSVIEWER_H
|
#define GCTL_DSVIEWER_H
|
||||||
|
|
||||||
#include <regex>
|
#include <regex>
|
||||||
|
#include "gctl/core/array_algorithm.h"
|
||||||
#include "gctl/io.h"
|
#include "gctl/io.h"
|
||||||
|
|
||||||
using namespace gctl;
|
using namespace gctl;
|
||||||
|
|||||||
@@ -201,7 +201,7 @@ void LBSI::Routine(std::string in_name, std::string tar_name,
|
|||||||
{
|
{
|
||||||
bar.progressed(i);
|
bar.progressed(i);
|
||||||
|
|
||||||
Kernel.assign_all(0.0);
|
Kernel.assign(0.0);
|
||||||
CalKernel(TargNodes[i]);
|
CalKernel(TargNodes[i]);
|
||||||
|
|
||||||
for (size_t s = 0; s < ValSize; s++)
|
for (size_t s = 0; s < ValSize; s++)
|
||||||
|
|||||||
@@ -25,6 +25,7 @@
|
|||||||
* Also add information on how to contact you by electronic and paper mail.
|
* Also add information on how to contact you by electronic and paper mail.
|
||||||
******************************************************/
|
******************************************************/
|
||||||
|
|
||||||
|
#include "gctl/core/array_algorithm.h"
|
||||||
#include "gctl/optimization/lgd.h"
|
#include "gctl/optimization/lgd.h"
|
||||||
|
|
||||||
class levy_planner : public gctl::lgd_solver
|
class levy_planner : public gctl::lgd_solver
|
||||||
@@ -64,17 +65,17 @@ int main(int argc, char *argv[]) try
|
|||||||
dist[i] *= alpha;
|
dist[i] *= alpha;
|
||||||
}
|
}
|
||||||
|
|
||||||
double mean = dist.mean();
|
double d_mean = mean(dist);
|
||||||
double std = dist.std();
|
double d_std = gctl::std(dist);
|
||||||
double cnt = 0.0;
|
double cnt = 0.0;
|
||||||
|
|
||||||
for (size_t i = 0; i < dist.size(); i++)
|
for (size_t i = 0; i < dist.size(); i++)
|
||||||
{
|
{
|
||||||
if (fabs(dist[i] - mean) > 3.0*std) cnt += 1.0;
|
if (fabs(dist[i] - d_mean) > 3.0*d_std) cnt += 1.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::cout << "Step Avg. = " << mean << "\n";
|
std::cout << "Step Avg. = " << d_mean << "\n";
|
||||||
std::cout << "Step STD = " << std << "\n";
|
std::cout << "Step STD = " << d_std << "\n";
|
||||||
std::cout << "Large Ones = " << cnt/1000.0 << "%\n";
|
std::cout << "Large Ones = " << cnt/1000.0 << "%\n";
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -186,7 +186,7 @@ void LKI::Routine(std::string inname, std::string tarname, std::string outname,
|
|||||||
{
|
{
|
||||||
bar.progressed(i);
|
bar.progressed(i);
|
||||||
|
|
||||||
Kernel.assign_all(0.0);
|
Kernel.assign(0.0);
|
||||||
Wgts.assign(0.0);
|
Wgts.assign(0.0);
|
||||||
|
|
||||||
CalKernel(TargNodes[i]);
|
CalKernel(TargNodes[i]);
|
||||||
|
|||||||
@@ -188,7 +188,7 @@ void LBSI::Routine(std::string in_name, std::string tar_name,
|
|||||||
{
|
{
|
||||||
bar.progressed(i);
|
bar.progressed(i);
|
||||||
|
|
||||||
Kernel.assign_all(0.0);
|
Kernel.assign(0.0);
|
||||||
CalKernel(TargNodes[i]);
|
CalKernel(TargNodes[i]);
|
||||||
|
|
||||||
for (size_t s = 0; s < ValSize; s++)
|
for (size_t s = 0; s < ValSize; s++)
|
||||||
|
|||||||
Reference in New Issue
Block a user