Compare commits

...

12 Commits

Author SHA1 Message Date
cbe56092a2 tmp 2025-08-18 11:31:28 +08:00
2d2b39d5c1 v2.1 2025-08-18 10:17:35 +08:00
3b9dee6900 tmp 2025-07-25 12:18:28 +08:00
a455a10150 tmp 2025-07-19 15:38:41 +08:00
1c9e757d63 tmp 2025-07-19 14:39:42 +08:00
54b195442d update to gctl v2.0.6 2025-07-18 12:48:32 +08:00
fe798288b3 update 2025-07-14 15:01:18 +08:00
9155e7422a update dockerfile 2025-07-07 10:06:22 +08:00
615076fd36 update dockerfile 2025-07-07 06:37:07 +08:00
0d7d8311d0 edit Dockerfile 2025-05-22 11:20:55 +08:00
96793dc190 update dockerfile 2025-05-16 10:53:30 +08:00
bfa8429b54 update dockerfile 2025-05-13 16:44:42 +08:00
9 changed files with 71 additions and 40 deletions

View File

@@ -1,6 +1,6 @@
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")
# ExprTK库在macOS 15.4中编译会有错误 添加以下命令对应检查项

View File

@@ -1,35 +1,51 @@
# 导入代码库镜像 视包含的代码库多少编译后的镜像可包含部分至全部GCTL代码库内容
FROM gctl:2.0 AS gctl_library
FROM gctl_mesh:2.0 AS gctl_mesh_library
FROM gctl_optimization:2.0 AS gctl_optimization_library
FROM gctl_ai:2.0 AS gctl_ai_library
FROM gctl_potential:2.0 AS gctl_potential_library
FROM gctl_seismic:2.0 AS gctl_seismic_library
FROM gctl_elecmag:2.0 AS gctl_elecmag_library
FROM gctl:2.1 AS gctl_library
FROM gctl_mesh:2.1 AS gctl_mesh_library
FROM gctl_optimization:2.1 AS gctl_optimization_library
FROM gctl_ai:2.1 AS gctl_ai_library
FROM gctl_potential:2.1 AS gctl_potential_library
FROM gctl_seismic:2.1 AS gctl_seismic_library
FROM gctl_elecmag:2.1 AS gctl_elecmag_library
# 编译平台
FROM ubuntu:20.04 AS builder
# 从代码库镜像中复制库文件和头文件
COPY --from=gctl_library /usr/local/lib /usr/local/lib
COPY --from=gctl_library /usr/local/include /usr/local/include
COPY --from=gctl_potential_library /usr/local/lib /usr/local/lib
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/include /usr/local/include
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_ai_library /usr/local/lib /usr/local/lib
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_potential_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
COPY --from=gctl_elecmag_library /usr/local/include /usr/local/include
COPY --from=gctl_library /usr/local/lib /usr/local/lib
COPY --from=gctl_library /usr/local/include /usr/local/include
# 避免交互提示
ENV DEBIAN_FRONTEND=noninteractive
# 安装编译工具和依赖
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
@@ -80,15 +96,28 @@ RUN mkdir build && cd build && cmake .. && make && make install
# 运行平台
FROM ubuntu:20.04
# 设置非交互式安装
ENV DEBIAN_FRONTEND=noninteractive
# 安装运行时必要依赖
RUN apt-get update && apt-get install -y libstdc++6
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 gnuplot
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 \
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/include /usr/local/include
COPY --from=builder /usr/local/sbin /usr/local/sbin
# 设置可执行文件列表
ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
ENV PATH=$PATH:/usr/local/sbin
ENV LD_LIBRARY_PATH=${LD_LIBRARY_PATH:-}:/usr/local/lib
ENV PATH=${PATH:-}:/usr/local/sbin

View File

@@ -55,7 +55,7 @@ int ADDNOSIE::Addnoise(std::string infilename, std::string outfilename, int orde
int data_num = in_data_.size();
double tmp_dou;
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++)
{
tmp_dou = in_data_.at(i).at(order) + noises.at(i);

View File

@@ -389,8 +389,8 @@ void statistic(const std::vector<std::string> &cmd_units)
{
tc.get_column(data, cmd_units[i]);
std::clog << "column: " << cmd_units[i]
<< " | " << data.min() << "/" << data.mean() << "/" << data.max()
<< " | STD: " << data.std() << "\n";
<< " | " << min(data) << "/" << mean(data) << "/" << max(data)
<< " | STD: " << gctl::std(data) << "\n";
}
return;
}
@@ -476,7 +476,7 @@ void rand_data(const std::vector<std::string> &cmd_units)
double p1 = atof(cmd_units[2].c_str());
double p2 = atof(cmd_units[3].c_str());
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);
else

View File

@@ -29,6 +29,7 @@
#define GCTL_DSVIEWER_H
#include <regex>
#include "gctl/core/array_algorithm.h"
#include "gctl/io.h"
using namespace gctl;

View File

@@ -201,7 +201,7 @@ void LBSI::Routine(std::string in_name, std::string tar_name,
{
bar.progressed(i);
Kernel.assign_all(0.0);
Kernel.assign(0.0);
CalKernel(TargNodes[i]);
for (size_t s = 0; s < ValSize; s++)

View File

@@ -25,6 +25,7 @@
* Also add information on how to contact you by electronic and paper mail.
******************************************************/
#include "gctl/core/array_algorithm.h"
#include "gctl/optimization/lgd.h"
class levy_planner : public gctl::lgd_solver
@@ -64,17 +65,17 @@ int main(int argc, char *argv[]) try
dist[i] *= alpha;
}
double mean = dist.mean();
double std = dist.std();
double d_mean = mean(dist);
double d_std = gctl::std(dist);
double cnt = 0.0;
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 STD = " << std << "\n";
std::cout << "Step Avg. = " << d_mean << "\n";
std::cout << "Step STD = " << d_std << "\n";
std::cout << "Large Ones = " << cnt/1000.0 << "%\n";
return 0;
}

View File

@@ -186,7 +186,7 @@ void LKI::Routine(std::string inname, std::string tarname, std::string outname,
{
bar.progressed(i);
Kernel.assign_all(0.0);
Kernel.assign(0.0);
Wgts.assign(0.0);
CalKernel(TargNodes[i]);

View File

@@ -188,7 +188,7 @@ void LBSI::Routine(std::string in_name, std::string tar_name,
{
bar.progressed(i);
Kernel.assign_all(0.0);
Kernel.assign(0.0);
CalKernel(TargNodes[i]);
for (size_t s = 0; s < ValSize; s++)