Skip to content
Snippets Groups Projects
Commit d0cd6e50 authored by Adrien Crovato's avatar Adrien Crovato
Browse files

Merge branch 'adri' into 'master'

amfe v1.0.7

See merge request !11
parents 88d1502e c11ff6ee
No related branches found
No related tags found
1 merge request!11amfe v1.0.7
Pipeline #50487 passed
......@@ -23,7 +23,6 @@
#include "wLinearSolver.h"
#include <mkl_dss.h>
#include <Eigen/Sparse>
#include <limits>
namespace tbox
{
......@@ -48,7 +47,7 @@ public:
virtual void solve(Eigen::Map<Eigen::VectorXd> const &b, Eigen::Map<Eigen::VectorXd> &x) override;
virtual void compute(Eigen::SparseMatrix<double> const &A, Eigen::Map<Eigen::VectorXd> const &b, Eigen::Map<Eigen::VectorXd> &x) override;
virtual double getError() override { return std::numeric_limits<double>::epsilon(); }
virtual double getError() override { return -1.; }
virtual int getIterations() override { return 1; }
virtual void write(std::ostream &out) const override;
......
......@@ -23,7 +23,6 @@
#include "wLinearSolver.h"
#include <dmumps_c.h>
#include <Eigen/Sparse>
#include <limits>
namespace tbox
{
......@@ -61,7 +60,7 @@ public:
virtual void solve(Eigen::Map<Eigen::VectorXd> const &b, Eigen::Map<Eigen::VectorXd> &x) override;
virtual void compute(Eigen::SparseMatrix<double> const &A, Eigen::Map<Eigen::VectorXd> const &b, Eigen::Map<Eigen::VectorXd> &x) override;
virtual double getError() override { return std::numeric_limits<double>::epsilon(); }
virtual double getError() override { return -1.; }
virtual int getIterations() override { return 1; }
virtual void write(std::ostream &out) const override;
......
......@@ -22,7 +22,6 @@
#include "wLinearSolver.h"
#include <Eigen/PardisoSupport>
#include <limits>
namespace tbox
{
......@@ -46,7 +45,7 @@ public:
virtual void solve(Eigen::Map<Eigen::VectorXd> const &b, Eigen::Map<Eigen::VectorXd> &x) override;
virtual void compute(Eigen::SparseMatrix<double> const &A, Eigen::Map<Eigen::VectorXd> const &b, Eigen::Map<Eigen::VectorXd> &x) override;
virtual double getError() override { return std::numeric_limits<double>::epsilon(); }
virtual double getError() override { return -1.; }
virtual int getIterations() override { return 1; }
virtual void write(std::ostream &out) const override;
......
......@@ -20,7 +20,6 @@
#include "tbox.h"
#include "wLinearSolver.h"
#include <Eigen/Sparse>
#include <limits>
namespace tbox
{
......@@ -46,7 +45,7 @@ public:
virtual void solve(Eigen::Map<Eigen::VectorXd> const &b, Eigen::Map<Eigen::VectorXd> &x) override;
virtual void compute(Eigen::SparseMatrix<double> const &A, Eigen::Map<Eigen::VectorXd> const &b, Eigen::Map<Eigen::VectorXd> &x) override;
virtual double getError() override { return std::numeric_limits<double>::epsilon(); }
virtual double getError() override { return -1.; }
virtual int getIterations() override { return 1; }
virtual void write(std::ostream &out) const override;
......
......@@ -34,28 +34,25 @@ def myrange(start, stop, step):
def plot(x, y, cfg):
"""Plot using matplotlib
"""
from fwk.wutils import parseargs
args = parseargs()
if not args.nogui:
import matplotlib.pyplot as plt
# define font
font = {'family': 'serif', 'color': 'darkred', 'weight': 'normal', 'size': 16}
# plot results
plt.plot(x, y, 'b-', lw=2)
if 'xlabel' in cfg:
plt.xlabel(cfg['xlabel'], fontdict=font)
if 'ylabel' in cfg:
plt.ylabel(cfg['ylabel'], fontdict=font)
if 'title' in cfg:
plt.title(cfg['title'], fontdict=font)
if 'xlim' in cfg:
plt.xlim(cfg['xlim'])
if 'ylim' in cfg:
plt.ylim(cfg['ylim'])
if 'invert' in cfg and cfg['invert']:
plt.gca().invert_yaxis()
# display
plt.show()
import matplotlib.pyplot as plt
# define font
font = {'family': 'serif', 'color': 'darkred', 'weight': 'normal', 'size': 16}
# plot results
plt.plot(x, y, 'b-', lw=2)
if 'xlabel' in cfg:
plt.xlabel(cfg['xlabel'], fontdict=font)
if 'ylabel' in cfg:
plt.ylabel(cfg['ylabel'], fontdict=font)
if 'title' in cfg:
plt.title(cfg['title'], fontdict=font)
if 'xlim' in cfg:
plt.xlim(cfg['xlim'])
if 'ylim' in cfg:
plt.ylim(cfg['ylim'])
if 'invert' in cfg and cfg['invert']:
plt.gca().invert_yaxis()
# display
plt.show()
def sort(id, data):
"""Sort data array against id (line connectivity list)
......
......@@ -2,13 +2,13 @@
# -*- coding: utf-8 -*-
# Copyright 2020 University of Liège
#
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#
# http://www.apache.org/licenses/LICENSE-2.0
#
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
......@@ -29,13 +29,12 @@ class Cutter:
self.grid = _grid
def cut(self, tag, cutO, cutN, tag_name="tag"):
'''
Cut the physical group ided "tag" with a plane defined by point "cutO" and normal "cutN"
'''
import numpy as np
"""Cut the physical group ided "tag" with a plane defined by point "cutO" and normal "cutN"
"""
# create a threshold containing the physical group (tag) to cut
thresh = vtk.vtkThreshold()
thresh.ThresholdBetween(tag,tag)
thresh.SetLowerThreshold(tag)
thresh.SetUpperThreshold(tag)
thresh.SetInputConnection(self.grid)
thresh.SetInputArrayToProcess(0, 0, 0, vtk.vtkDataObject.FIELD_ASSOCIATION_CELLS, tag_name) # "tag" is the default name set in tboxVtk::VtkExport::save
thresh.Update()
......@@ -51,10 +50,9 @@ class Cutter:
return cutter.GetOutput()
def extract(self, cutData, tagDim, vname, atPoint = True):
'''
Extract points "pts", connectivity list "elems" and data "vals" named "vname" from cutting plane data "cutData".
"""Extract points "pts", connectivity list "elems" and data "vals" named "vname" from cutting plane data "cutData".
The physical group dimension is given by "tagDim" and "atPoint" is True if vname is defined at points.
'''
"""
import numpy as np
# transfer point coordinates
_pts = cutData.GetPoints()
......
......@@ -55,7 +55,8 @@ class LineExtractor:
# create a threshold containing the physical group (tag) to cut
thresh = vtk.vtkThreshold()
thresh.ThresholdBetween(tag,tag)
thresh.SetLowerThreshold(tag)
thresh.SetUpperThreshold(tag)
thresh.SetInputConnection(self.grid)
thresh.SetInputArrayToProcess(0, 0, 0, vtk.vtkDataObject.FIELD_ASSOCIATION_CELLS, tag_name) # "tag" is the default name set in tboxVtk::VtkExport::save
thresh.Update()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment