2014/12/29
2014/12/24
sqlite
わがままな客のせいでシステムを組むハメになった。
ネットワークを介さない、standaloneなものだ。というかdeamon的なもの。
ライセンス的な問題から、sqlite3を使用することにした。あんまり、こういうの作ったことないからできるか不安。12月29日までにどうにかしないとまずいし。
ネットワークを介さない、standaloneなものだ。というかdeamon的なもの。
ライセンス的な問題から、sqlite3を使用することにした。あんまり、こういうの作ったことないからできるか不安。12月29日までにどうにかしないとまずいし。
2014/12/11
OpenFOAMで流体・固体の連成
これをみると結構簡単に実装できそうなのだが?
http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=7&ved=0CFEQFjAG&url=http%3A%2F%2Fdocphdpersonalstuff.googlecode.com%2Fsvn%2Ftrunk%2Fliterature%2FA%2520unified%2520formulation%2520for%2520continuum%2520mechanics%2520applied%2520to%2520fluid-structure%2520interaction%2520in%2520flexible%2520tubes.pdf&ei=jIWJVJOcLIi2mwX9rYDwCw&usg=AFQjCNEo1_Y_BC674Qfa_yvGhBhSetzleg&sig2=jdkTgr5wmJ-45PkwzOsgWw&bvm=bv.81456516,d.dGY&cad=rja
オラわくわくしてきたぞ。いっちょやってみっか。
http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=7&ved=0CFEQFjAG&url=http%3A%2F%2Fdocphdpersonalstuff.googlecode.com%2Fsvn%2Ftrunk%2Fliterature%2FA%2520unified%2520formulation%2520for%2520continuum%2520mechanics%2520applied%2520to%2520fluid-structure%2520interaction%2520in%2520flexible%2520tubes.pdf&ei=jIWJVJOcLIi2mwX9rYDwCw&usg=AFQjCNEo1_Y_BC674Qfa_yvGhBhSetzleg&sig2=jdkTgr5wmJ-45PkwzOsgWw&bvm=bv.81456516,d.dGY&cad=rja
オラわくわくしてきたぞ。いっちょやってみっか。
2014/11/16
2014/09/23
きょうもかいしゃだよー
休みなのに会社。
この会社に入社してから学んだスキル
あれ、あんまり会社から学んでいないような?
この会社に入社してから学んだスキル
- DB & SQL (独学)
- GNU autotools (独学) 使う方じゃなくてスクリプト書く方
- CMake (独学) 使う方じゃなくてスクリプト書く方
- ifort (独学) 初めて本格的に使った
- valgind (独学)
- openspeedshop (独学)
- svn 1時間だけ研修あった。GUIでみんな使っているが私はcommnd lineで使用するため、独学。
- FlexLM 社内のdocなどを結構参考にした。これは結構しっかりしていて良かった。
- AMG法のアルゴリズム (独学)
- 混相流 いろいろ教えてもらいながら学び中
- 無知な人に関わって自分の時間を消費しないこと
あれ、あんまり会社から学んでいないような?
2014/09/21
会社のレベルがやばすぎる
入社して6カ月たちました。普通ならば、ようやく一人で仕事を任せられるぐらいでしょうか?私は入社2日目でコード渡されてとこれに"AMG載せて"の一言でした。
気付いたのですが会社の技術力がやばすぎる
- Fortranは全て固定長
- doループをcontinueで回す人がいる
- F2003形式以降で書くとほとんどの人が読めない
- Fortranしか書けませんという人が多い(Makefile, Bashが書けない)
- "Cmake誰か使えませんか?"と技術部長からメールがきた
- -pgオプションとgprofは使えるとすごいらしい
- メモリバンド幅とCashのヒット率が高速化とどう関係しているかわかっていない人がほとんど、そんな人が某研究機関の並列計算機の高速化を行っている。
- svnを社内で使っているが、使える人は使ってくださいというルール、しかもみんなGUIじゃないと使えない
- コーディングルールはない
- 最新のgccビルドしたらすごい人扱いされた
- 文字コードをしらない。読めないコメントは壊れたと考え、コードから読んでいた。(スクリプト作ってあげました)
- 実装時のデータ構造とアルゴリズムを考えない。数千万要素でも線形サーチが載ってた。(Hash関数に変更した。あとでsplay treeを実装する)
- 赤字
もぅマヂ無理。。。
転職しょ。。。
2014/08/09
この会社どうして存在できるのだろう?
入社してまだ4ヶ月程度だがこの会社は杜撰すぎる。理由を淡々と述べていく
- ソースコードが汚い
- ソースコードの管理体制が適当
- 他社のコードが入っていた
- スキルが新入社員の私にも劣る人がほとんど
- スキル高い人ももう諦めている
- 経営陣の技術及び管理スキルが低い
- 自転車操業
もう転職考えてる
2014/05/04
2014/05/02
2014/04/29
2014/03/30
2014/03/29
母親が出席した結婚式
今起こったことをありのまま話すぜ。
1) 今日、母親が母親の職場の同僚の結婚式に出席した。
2) ついさっき、小中の同級生が本日結婚したことをfacebookで書いていた。ちなみにこの同級生は、母親の同僚。
3) 母親に聞く
4) 母、白状する。
5) 引き出物を父と食べる (゚Д゚)ウマー
正直、写真見てもあんまり思い出せない人なんだよね、facebookで繋がってもないし。一応お祝いのメッセージぐらい送っておくべきなのだろうか ?
1) 今日、母親が母親の職場の同僚の結婚式に出席した。
2) ついさっき、小中の同級生が本日結婚したことをfacebookで書いていた。ちなみにこの同級生は、母親の同僚。
3) 母親に聞く
4) 母、白状する。
5) 引き出物を父と食べる (゚Д゚)ウマー
正直、写真見てもあんまり思い出せない人なんだよね、facebookで繋がってもないし。一応お祝いのメッセージぐらい送っておくべきなのだろうか ?
installation of debian 7.4.0 to HP mini 2140
installation of debian 7.4.0 to HP mini 2140 has done.
Troubles I faced.
USB debian image was not detected by HP mini 2140. Use external CD/DVD drive.
broadcom 4233 wireless firmware was not installed by default. Install firmware-b43-installer
of just type
sudo apt-get install firmware-b43-installer
Troubles I faced.
USB debian image was not detected by HP mini 2140. Use external CD/DVD drive.
broadcom 4233 wireless firmware was not installed by default. Install firmware-b43-installer
of just type
sudo apt-get install firmware-b43-installer
ノートの再インストール
linux使い始めてかれこれ10年ぐらいにして初Debianにすることにした.
今CDを焼いてる. ノートにcent OS入れてみたけどwirelessのドライバーのビルドがどうしても出来なくて諦めた. やっぱ端末用にはcentは使えないのか ? 使用者の腕の問題という節もありますが.
慣れているUbuntuにしようとしたけど, 4月に新しいの出るし今クリーンインストールしてもバージョン上げるなり, もう一回クリーンインストールするの面倒くさいので, Debianでいんじゃね? と思って入れて見ることにした.
Ubuntuみたいにlinuxの標準dir構造を無視していないはずなので, configファイルとか探すのは楽そう.
ちなみに所有するゴミPCが増えた
iBook G4, power 7450
Sun Ultra 40, Opteron 280
自作 Intel Atom 510
増えたのが以下
友人からもらった (彼はMac教になりました)
HP mini 2140
研究室からぶんどった
Lenovo 2008 ぐらいのidea book
同じく研究室からぶんどった
Dell E4200
今CDを焼いてる. ノートにcent OS入れてみたけどwirelessのドライバーのビルドがどうしても出来なくて諦めた. やっぱ端末用にはcentは使えないのか ? 使用者の腕の問題という節もありますが.
慣れているUbuntuにしようとしたけど, 4月に新しいの出るし今クリーンインストールしてもバージョン上げるなり, もう一回クリーンインストールするの面倒くさいので, Debianでいんじゃね? と思って入れて見ることにした.
Ubuntuみたいにlinuxの標準dir構造を無視していないはずなので, configファイルとか探すのは楽そう.
ちなみに所有する
iBook G4, power 7450
Sun Ultra 40, Opteron 280
自作 Intel Atom 510
増えたのが以下
友人からもらった (彼はMac教になりました)
HP mini 2140
研究室からぶんどった
Lenovo 2008 ぐらいのidea book
同じく研究室からぶんどった
Dell E4200
2014/03/27
2014/03/16
GNU Privacy Guardの公開鍵の使いかた
医療画像と公開されていないコードなどを扱うので, 覚書しとく
秘密鍵と公開鍵の暗号化の方法が異なって半日ぐらい悩んだぜ.
公開鍵のほうがよく使うと思うので公開鍵の方法だけ
----------------------------------------------------------------------
送る側
----------------------------------------------------------------------
鍵の生成
gpg --gen-key
鍵の確認
gpg --list-keys
公開鍵の出力
gpg --export
暗号化 (公開鍵用)
gpg -c ${target_file}
----------------------------------------------------------------------
受け取る側
----------------------------------------------------------------------
鍵のインポート
gpg --import ${key}.pub
本当はtrustしたほうがいいがめんどくさいので省略
逆暗号化
gpg -d ${target_file}
秘密鍵と公開鍵の暗号化の方法が異なって半日ぐらい悩んだぜ.
公開鍵のほうがよく使うと思うので公開鍵の方法だけ
----------------------------------------------------------------------
送る側
----------------------------------------------------------------------
鍵の生成
gpg --gen-key
鍵の確認
gpg --list-keys
公開鍵の出力
gpg --export
暗号化 (公開鍵用)
gpg -c ${target_file}
----------------------------------------------------------------------
受け取る側
----------------------------------------------------------------------
鍵のインポート
gpg --import ${key}.pub
本当はtrustしたほうがいいがめんどくさいので省略
逆暗号化
gpg -d ${target_file}
2014/03/12
paraview-4.1.0
paraview-4.1.0のコンパイルに成功したのでconfigureの仕方からCMakeCacheも載せておく.
Qt-4.7.5以上が必要. Qtの5系には対応していないようだ. 私は4.8.5を使用した. Vtkは6.0.0を使用.
https://sites.google.com/site/cfdmemorandum/paraview/building_paraview-4-1-0
Qt-4.7.5以上が必要. Qtの5系には対応していないようだ. 私は4.8.5を使用した. Vtkは6.0.0を使用.
https://sites.google.com/site/cfdmemorandum/paraview/building_paraview-4-1-0
2014/02/12
gnuplotの小技
Times系のフォントが指定されている出版物が非常に多い.
こんなのを用意しておくと便利.
圧力波形出力用のやつ
-----------------------------------------------------------
pplot.sh
-----------------------------------------------------------
set grid
set key below
set tics font "Times New Roman"
set xlabel font "Times New Roman"
set ylabel font "Times New Roman"
set key font "Times New Roman"
set xlabel "Time / Second"
set ylabel "Pressure / Pascal"
gnuplotを起動して
gnuplot > load "pplot.sh"
でロードあとは普通にplotする. 画像出力まで自動でできるけど, 確認しながらグラフ作るとき便利.
こんなのを用意しておくと便利.
圧力波形出力用のやつ
-----------------------------------------------------------
pplot.sh
-----------------------------------------------------------
set grid
set key below
set tics font "Times New Roman"
set xlabel font "Times New Roman"
set ylabel font "Times New Roman"
set key font "Times New Roman"
set xlabel "Time / Second"
set ylabel "Pressure / Pascal"
gnuplotを起動して
gnuplot > load "pplot.sh"
でロードあとは普通にplotする. 画像出力まで自動でできるけど, 確認しながらグラフ作るとき便利.
2014/02/04
並列gmshのデータフォーマット
並列gmshのデータフォーマットを頑張って読解した.
赤: 要素の番号 (c/c++ユーザーは1から始まることに注意)
青: 要素のタイプgmshの reference見てくれ 4は四面体要素
茶: このタグのあとに続くタグの数
水色: 物理タグ, 境界認識のために自分で設定しているはずだ
黄色: メモリータグ, gmshの中で与えたメモリー番号
ピンク: 並列メッシュ形式にしかでない, このタグに続くタグの数
オレンジ: 要素の領域番号
緑: もし要素が他の領域と接しているなら, マイナスで隣り合う要素の番号が示される
群青: 要素の接点番号
赤: 要素の番号 (c/c++ユーザーは1から始まることに注意)
青: 要素のタイプgmshの reference見てくれ 4は四面体要素
茶: このタグのあとに続くタグの数
水色: 物理タグ, 境界認識のために自分で設定しているはずだ
黄色: メモリータグ, gmshの中で与えたメモリー番号
ピンク: 並列メッシュ形式にしかでない, このタグに続くタグの数
オレンジ: 要素の領域番号
緑: もし要素が他の領域と接しているなら, マイナスで隣り合う要素の番号が示される
群青: 要素の接点番号
2014/01/29
高次の形状関数
有限要素法の高次形状関数の実装は, 出来そうだ.
c++ならばtemplateをつかって再帰的に計算できる.
参考にしました.
http://www.colorado.edu/engineering/cas/courses.d/IFEM.d/IFEM.Ch18.d/IFEM.Ch18.pdf
高次のガウス積分の実装を今度は考えなくては.
c++ならばtemplateをつかって再帰的に計算できる.
参考にしました.
http://www.colorado.edu/engineering/cas/courses.d/IFEM.d/IFEM.Ch18.d/IFEM.Ch18.pdf
高次のガウス積分の実装を今度は考えなくては.
2014/01/27
static polymorphismとgcc
はてgccのバージョン4.8.2にしたら静的多様性を使ったコードがコンパイル出来なくなったぞい. なぜじゃ? 4.7.3でもでるな ???? なんかミスったか ?
c/c++, fortranとかは普通に作れるんだけど, meta化すると急にできなくなる.
c/c++, fortranとかは普通に作れるんだけど, meta化すると急にできなくなる.
2014/01/25
大量に作成しております
とある先進的な解析ソフトを見つけてコンパイルしようとしたら, どうもconfigすら通らない. いろいろ探ってみたのだけれども理由がわからず, mailing listに質問してみたら
"ごめん, ホームページ更新してなくて. 依存情報かなり古いんだと言われた"
おっさんは, その程度でめげる人ではないので,
gmp-5.1.3
mpfr-3.1.2
mpc-1.0.2
gcc-4.8.2
boost-1.55.0
openmpi-1.6.5
をつくった.
あとpetsc-3.4.3を作れば問題ないはず.
"ごめん, ホームページ更新してなくて. 依存情報かなり古いんだと言われた"
おっさんは, その程度でめげる人ではないので,
gmp-5.1.3
mpfr-3.1.2
mpc-1.0.2
gcc-4.8.2
boost-1.55.0
openmpi-1.6.5
をつくった.
あとpetsc-3.4.3を作れば問題ないはず.
2014/01/24
2014/01/22
c++ テンプレートメタプログラミング 3 静的多様性を用いた行列の足し算
いくつでも行列足し算できる奴も出来た. gcc-4.8.0で動作確認, 4.3.4ではコンパイル出来なかった.
元ネタ
http://itee.uq.edu.au/~conrad/misc/sanderson_templates_lecture_uqcomp7305.pdf
#include<iostream>
template< typename T1, typename T2 >
class Glue;
template< typename derived>
struct Base {
const derived & get_ref() const{
return static_cast<const derived&>(*this);
}
};
class Matrix : public Base < Matrix >{
public:
int rows;
int cols;
double *data;
Matrix(){}
Matrix( int in_rows, int in_cols ){
set_size( in_rows, in_cols );
}
void set_size( int in_rows, int in_cols ){
rows = in_rows;
cols = in_cols;
data = new double [rows*cols];
for( int i=0; i<rows*cols; i++ ) data[i] = 1.0;
}
Matrix( const Matrix & X );
const Matrix& operator=( const Matrix & X );
template< typename T1, typename T2 >
Matrix( const Glue<T1, T2> & X );
template< typename T1, typename T2 >
const Matrix & operator=( const Glue<T1, T2> & X );
};
template< typename T1, typename T2 >
class Glue : public Base< Glue<T1,T2> >{
public:
const T1 & A;
const T2 & B;
Glue( const T1 & in_A, const T2 & in_B ): A(in_A), B(in_B) {
}
};
template< typename T1, typename T2 >
inline const Glue< T1, T2 >
operator+( const Base<T1>&A, const Base<T2> & B ){
return Glue< T1, T2 >( A.get_ref(), B.get_ref() );
}
template< typename T1 >
struct depth_lhs{
static const int num = 0;
};
template< typename T1, typename T2 >
struct depth_lhs< Glue<T1, T2 > >{
static const int num = 1 + depth_lhs<T1>::num;
};
template< typename T1 >
struct mat_ptrs{
static const int num = 0;
inline static void
get_ptrs( const Matrix** ptrs, const T1 & X ){
{
ptrs[0] = reinterpret_cast<const Matrix*>(&X);
}
}
};
template< typename T1, typename T2 >
struct mat_ptrs< Glue<T1, T2> >
{
static const int num = 1 + mat_ptrs<T1>::num;
inline static void
get_ptrs( const Matrix** in_ptrs, const Glue<T1,T2>& X ){
mat_ptrs<T1>::get_ptrs(in_ptrs, X.A );
in_ptrs[num] = reinterpret_cast< const Matrix*>( & X.B );
}
};
template< typename T1, typename T2 >
const Matrix & Matrix::operator=( const Glue<T1,T2>& X ){
int i,j;
double sum;
int N = 1 + depth_lhs < Glue<T1,T2> >::num;
const Matrix* ptrs[N];
mat_ptrs< Glue<T1,T2> >::get_ptrs(ptrs,X);
int r = ptrs[0]->rows;
int c = ptrs[0]->cols;
set_size( r, c );
for( j=0; j<r*c; ++j ){
double sum = ptrs[0]->data[j];
for( i=1; i<N; ++i ){
sum += ptrs[i]->data[j];
}
data[j] = sum;
}
return *this;
}
int main(){
Matrix A(2,2);
Matrix B(2,2);
Matrix C(2,2);
Matrix D(2,2);
Matrix X(2,2);
X = A+B+C+D;
for( int i=0; i<4; i++ ) std::cout << X.data[i] << std::endl;
return 0;}
c++ テンプレートメタプログラミング 2 行列足し算
3つの行列を足し算する版できた.
元ネタ
http://itee.uq.edu.au/~conrad/misc/sanderson_templates_lecture_uqcomp7305.pdf
#include<iostream>
template < typename T1, typename T2 >
class Glue;
class Matrix {
public:
int rows;
int cols;
double *data;
Matrix(){}
Matrix( int in_row, int in_cols ){
set_size( in_row, in_cols );
}
void set_size( int in_rows, int in_cols ){
data = new double [ in_rows*in_cols ];
rows = in_rows;
cols = in_cols;
for( int i=0; i<rows*cols; i++ ) data[i]=1.0;
}
Matrix( const Matrix & X );
const Matrix operator=( const Matrix& X );
Matrix( const Glue<Matrix,Matrix> & X );
const Matrix & operator=( const Glue<Matrix,Matrix> & X );
Matrix( const Glue< Glue<Matrix,Matrix>, Matrix > & X );
const Matrix & operator=( const Glue< Glue<Matrix,Matrix>, Matrix > & X );
};
template < typename T1, typename T2 >
class Glue {
public:
const T1 & A;
const T2 & B;
Glue( const T1 & in_A, const T2 & in_B ): A(in_A), B(in_B){}
};
Matrix::Matrix( const Glue<Matrix,Matrix> & X ){
operator=(X);
}
const Matrix & Matrix::operator=( const Glue< Glue<Matrix,Matrix>, Matrix> & X ){
const Matrix & A = X.A.A;
const Matrix & B = X.A.B;
const Matrix & C = X.B;
set_size( A.rows, A.cols );
for( int i=0; i<A.rows * A.cols; i++ ){
data[i] = A.data[i] + B.data[i] + C.data[i];
}
return *this;
}
const Matrix & Matrix::operator=( const Glue<Matrix,Matrix> & X ){
const Matrix & A = X.A;
const Matrix & B = X.B;
set_size( A.rows, A.cols );
for( int i=0; i<A.rows * A.cols; i++ ){
data[i] = A.data[i] + B.data[i];
}
return *this;
}
const Glue<Matrix,Matrix> operator+( const Matrix & A, const Matrix & B ){
return Glue<Matrix, Matrix>(A,B);
}
const Glue< Glue<Matrix,Matrix> ,Matrix> operator+( const Glue<Matrix, Matrix> & P, const Matrix & Q ){
return Glue< Glue<Matrix,Matrix>, Matrix >(P,Q);
}
int main(){
Matrix A1(3,4);
Matrix B1(3,4);
Matrix C1(3,4);
Matrix X(3,4);
X = A1 + B1;
X = A1 + B1 + C1;
for( int i=0; i<X.rows*X.cols; i++ ) std::cout << X.data[i] << std::endl;
return 0;}
c++でテンプレートメタプログラミング
自作の有限要素ソルバーを, テンプレートメタプログラミングを使用して改造しようとしているがどこがどう早くなるのかよくわかっていない.
アセンブリにして吐いてみるとたしかに短くなってわいるのだけど, メタ化した部分か消えてるのかよくわからない.
アセンブリ言語読めるようになるしかないのか.
コンパイル時に計算するらしいけど, 行列式の解などは計算されると困る. 並列計算機を使ってもものすごく時間のかかる箇所なので, コンパイラーなどにやらせたら一生終わらんだろう.
そういや昔こんなの書いたね
http://a-daily-life-in-the-office.blogspot.jp/2013/02/c.html
アセンブリにして吐いてみるとたしかに短くなってわいるのだけど, メタ化した部分か消えてるのかよくわからない.
アセンブリ言語読めるようになるしかないのか.
コンパイル時に計算するらしいけど, 行列式の解などは計算されると困る. 並列計算機を使ってもものすごく時間のかかる箇所なので, コンパイラーなどにやらせたら一生終わらんだろう.
そういや昔こんなの書いたね
http://a-daily-life-in-the-office.blogspot.jp/2013/02/c.html
2014/01/21
2014/01/20
2014/01/19
研究室
今所属している研究室は, 3月で教員が定年退官の為閉鎖になる. 同じ部屋に他分野の研究津市があり, 2つの分野の学生が1部屋にいる.
私ともう一人の同僚が, この研究室からの最後の博士後期課程の卒業生. そして, 後三年後に部屋をシェアしている研究室から最初の博士が出る予定.
私ともう一人の同僚が, この研究室からの最後の博士後期課程の卒業生. そして, 後三年後に部屋をシェアしている研究室から最初の博士が出る予定.
2014/01/17
c++の二重クラス
c++のレベルがまた上がった, というかこの程度のことが知らなかったのが恥ずかしい.
二重クラスの定義
なるほど大規模なソフトでよく見る奴はこうしてたのか. 静的多様化をつかってメタ化できるかな ? ちょっとやってみる.
やってみたらあっさり出来た. これはとっても便利だ.
二重クラスの定義
class MainClass{
public:
MainClass();
~MainClass();
class SubClass {
public:
SubClass();
~SubClass(){}
};
};
MainClass::MainClass(){
SubClass subclass;
}
MainClass::~MainClass(){
}
MainClass::SubClass::SubClass(){
}
int main(){
MainClass mainclass;
MainClass::SubClass subclass;
return 0;}
なるほど大規模なソフトでよく見る奴はこうしてたのか. 静的多様化をつかってメタ化できるかな ? ちょっとやってみる.
追記
やってみたらあっさり出来た. これはとっても便利だ.
#include<iostream>
template< typename DerivedMainClass >
class MainClass{
public:
MainClass(){};
~MainClass(){};
bool CallFunc(){
return static_cast<DerivedMainClass*>(this)->CallMainFuncImple();
}
template< typename DerivedSubClass >
class SubClass {
public:
bool CallFunc (){
return static_cast<DerivedSubClass*>(this)->CallSubFuncImple();
}
SubClass(){};
~SubClass(){}
};
};
class MainClassDerived : public MainClass <MainClassDerived>{
friend class MainClass < MainClassDerived >;
bool CallMainFuncImple(){
std::cout << "Derived main Class" << std::endl;
}
};
class SubClassDerived : public MainClass<MainClassDerived>::SubClass <SubClassDerived> {
friend class SubClass < SubClassDerived >;
bool CallSubFuncImple(){
std::cout << "Derived sub Class" << std::endl;
}
};
int main(){
MainClass<MainClassDerived> *mainclass = new MainClassDerived();
MainClass<MainClassDerived>::SubClass<SubClassDerived> *subclass = new SubClassDerived();
mainclass->CallFunc();
subclass->CallFunc();
return 0;}
2014/01/16
Kaveriの姫野ベンチ
Kaveriの姫野ベンチが乗ってる, やっぱりintelより出てない.
NAS parallelもsandy bridge i5に負けてる.
http://juanrga.com/en/AMD-kaveri-benchmark.html
NAS parallelもsandy bridge i5に負けてる.
http://juanrga.com/en/AMD-kaveri-benchmark.html
2014/01/14
2014/01/13
雪が凄いんですけど
雪が10cmぐらい積もっている中, 食料が尽きたので頑張って買い物に行ってきたよ.
寒かった.
長年履いていたブーツはボロボロで水がすぐしみてくるので, 中古だけど年末に新しいのをかいました. Ceder Crestを5900円で.
やっぱり新しいのはいい. 靴下が全然濡れなかった.
Gmshを使用し領域分割した高次要素を出力する方法
キーワード: 領域分割, 高次元要素(5次要素まで)
Gmshを使用して領域分割された要素と, 高次元要素の出力の仕方を載せる.
1. なんか適当に形状を作る. tutorialからでも取ってくるといい.
2. Mesh > 3D (カーソルが乗ってるヤツ) を選択し. 普通に1次のメッシュを作成する. 一時要素のまま領域分割を行いたい場合は, このまま6に飛ぶ.
3. Set Orderを選ぶ(カーソルが乗ってるヤツ).
4. 次数を選択. 3にしてみた.
5. これでOK. した三行に高次節点の情報が出てくる.
6. 今度は領域分割をする. Meshを選択しなおし, Partitionを選ぶ.
7. Ubuntuのbinaryはライセンスの問題上Metisが使えないのでchacoを使いましょ. Partitionerを'chaco', number of partitionsを4にした. でpartitionを押す.
8. File > Save ASを選ぶ.
9. Msh形式ならば出力時にoptionを聞いてくるので、好きなのを選ぶ. 此処ではASCIIと領域ごとに分割してメッシュファイルを出力する(三番目のoption)を選んだ.
10. メッセージで確認する. test_box.msh_000001-4が出力されている.
分割して出力できるの知らなくて, 自分で分割のコード書いてたよ. ちなみに公式マニュアルに説明ない無い.
2014/01/12
OpenFVMをビルド
openFVM 1.1をビルドしが, どうやらgmshの2.0形式に対応していない.
IOを書きなおすのめんどくさい.
追記 13/Jan/2014
Gmshのversion 1.0形式で出力することに成功したがセルを認識されない.
原因不明
2014/01/10
登録:
投稿 (Atom)