Skip to content

Instantly share code, notes, and snippets.

View ddemidov's full-sized avatar

Denis Demidov ddemidov

View GitHub Profile
#include <iostream>
#include <Eigen/Sparse>
#include <Eigen/Dense>
#include <unsupported/Eigen/SparseExtra> // For reading MatrixMarket files
#include <amgcl/adapter/eigen.hpp>
#include <amgcl/adapter/block_matrix.hpp>
#include <amgcl/value_type/static_matrix.hpp>
#include <iostream>
#include <Eigen/Sparse>
#include <Eigen/Dense>
#include <unsupported/Eigen/SparseExtra> // For reading MatrixMarket files
#include <amgcl/adapter/eigen.hpp>
#include <amgcl/make_solver.hpp>
#include <amgcl/solver/bicgstab.hpp>
@ddemidov
ddemidov / Makefile
Last active September 12, 2020 06:32
mpi_amg: mpi_amg.cpp
mpic++ -o mpi_amg mpi_amg.cpp -I ~/work/amgcl -fopenmp -lboost_program_options
with c(id) as (select get_combinations((select array_agg(id order by id) from test), 4))
select id
from c
where array[1,2,3,4] = (select array_agg(i order by i) from test where array[id] <@ c.id);
create or replace function get_combinations(source anyarray, size int) returns setof anyarray as $$
with recursive combinations(combination, indices) as (
select source[i:i], array[i] from generate_subscripts(source, 1) i
union all
select c.combination || source[j], c.indices || j
@ddemidov
ddemidov / Makefile
Last active February 1, 2022 07:02
amgcl: amgcl.cpp
g++ -O3 -fopenmp -DNDEBUG -I$(HOME)/work/amgcl -o amgcl amgcl.cpp
cmake_minimum_required(VERSION 3.1)
project(hello)
find_package(amgcl)
add_executable(amgcl_mixed_precision amgcl_mixed_precision.cpp)
target_link_libraries(amgcl_mixed_precision amgcl::amgcl)
#!/usr/bin/env python3
import qt5reactor
import sys
from PyQt5 import QtWidgets, QtSvg
import argparse
import os
import sys
import threading
import graphviz as gv

Compilation problems on MareNostrum cluster

I'll keep the list updated as I go.

  1. The installed version of boost is 1.64, which has a bug in boost.serialization, resolved by this patch. An alternative solution is to do
    #include <boost/serialization/array_wrapper.hpp>
@peteristhegreat
peteristhegreat / freedesktop.org_icons_with_descriptions.txt
Last active December 26, 2023 19:28
QIcon::fromTheme, List of icons in gnome theme, in qt standardPixmaps and list on freedesktop.org
# https://specifications.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html, aggregate list from each section
address-book-new The icon used for the action to create a new address book.
application-exit The icon used for exiting an application. Typically this is seen in the application's menus as File->Quit.
appointment-new The icon used for the action to create a new appointment in a calendaring application.
call-start The icon used for initiating or accepting a call. Should be similar to the standard cellular call pickup icon, a green handset with ear and mouth pieces facing upward.
call-stop The icon used for stopping a current call. Should be similar to the standard cellular call hangup icon, a red handset with ear and mouth pieces facing downward.
contact-new The icon used for the action to create a new contact in an address book application.
document-new The icon used for the action to create a new document.
document-open The icon used for the action to open a document.
document-open-recent T
anonymous
anonymous / diagFEM.cpp
Created December 15, 2016 13:31
static void diag_MK_matrix(FLOAT_XX EM, FLOAT_XX mu, FLOAT_XX ro,
FLOAT_XX a, FLOAT_XX b, FLOAT_XX xx,
FLOAT_XX* poutM, FLOAT_XX* poutK) {
*poutM = 2 * a*b*Pi*ro*xx;
FLOAT_XX matrixK[8][8] = { List(8 * a*b*Pi*(EM / (32.*Power(b, 2)*(1 + mu)) - (-(EM*(1 - mu)) / (4.*a*(1 - 2 * mu)*(1 + mu)) + (EM*mu) / (4.*(1 - 2 * mu)*(1 + mu)*xx)) / (4.*a) + (-(EM*mu) / (4.*a*(1 - 2 * mu)*(1 + mu)) + (EM*(1 - mu)) / (4.*(1 - 2 * mu)*(1 + mu)*xx)) / (4.*xx))*xx, 8 * a*b*Pi*(EM / (32.*a*b*(1 + mu)) - (-(EM*mu) / (4.*a*(1 - 2 * mu)*(1 + mu)) + (EM*mu) / (4.*(1 - 2 * mu)*(1 + mu)*xx)) / (4.*b))*xx,
8 * a*b*Pi*(-EM / (32.*Power(b, 2)*(1 + mu)) - (-(EM*(1 - mu)) / (4.*a*(1 - 2 * mu)*(1 + mu)) + (EM*mu) / (4.*(1 - 2 * mu)*(1 + mu)*xx)) / (4.*a) + (-(EM*mu) / (4.*a*(1 - 2 * mu)*(1 + mu)) + (EM*(1 - mu)) / (4.*(1 - 2 * mu)*(1 + mu)*xx)) / (4.*xx))*xx, 8 * a*b*Pi*(EM / (32.*a*b*(1 + mu)) + (-(EM*mu) / (4.*a*(1 - 2 * mu)*(1 + mu)) + (EM*mu) / (4.*(1 - 2 * mu)*(1 + mu)*xx)) / (4.*b))*xx,
8 * a*b*Pi*(EM / (32.*Power(b, 2)*(1 +